Merge origin/main (v1.91.7.0) into test-audit-reduction

Keep both intents: v1.91.7.0's functional QA, docsync and exploratory
paid cases and their free owners stay; this branch's deletions stay
deleted. main's new paid keys follow the derived-closure touchfile rule
(free *.test.ts paths dropped, static helper/fixture closure added), its
new helper-only tests join the ratchet baseline, and its free selection
examples that named free test files now assert the derived selection.

Periodic CI keeps seven slices without the retired Autoplan slice; the
gate census keeps seven single-worker slices with --skip-judges. Wall
and census literals are recomputed from the merged planner, durations
are re-recorded on Ubicloud, and VERSION stays 1.91.8.0 above 1.91.7.0.
This commit is contained in:
garrytan committed 2026-09-29 13:48:02 +00:00
commit b421bba2c9
325 files changed
+42569 -8257

No files matched your search

+11 -10
View File
@@ -40,7 +40,7 @@ test('every host expands its real bootstrap after the mandatory entry gate', ()
});
test('entry binds a current target and delays bootstrap until scope resolves', () => {
expect(scope).toContain('Before tools or preamble, resolve from provided messages, listed tools and explicit host metadata only');
expect(scope).toContain('Before discovery tools or preamble, check provided messages, listed tools and explicit host metadata for a target');
expect(scope).toContain('Do not probe for session state');
expect(scope).toContain('When no exception above applied:');
expect(scope).toContain('First tool call = AskUserQuestion (tool_use). Send this exact menu and wait');
@@ -116,11 +116,11 @@ test('the full evaluated bundle routes startup into ordered preparation before s
expect(startup).toContain('Defer Operational Self-Improvement, Telemetry and Plan Status Footer to finish');
expect(startup).toContain('format/transport rules apply throughout');
expect(startup).toContain('full section Read → **Review preparation** → **Scope Challenge**');
const preparation = section.slice(section.indexOf('## Review preparation'), section.indexOf('## Review record'));
const stages = ['1. Select the report file and permissions under **Review record and write policy**',
'2. Run **Prior Learnings**', '3. Run **Retrospective learning**',
'4. Read **Confidence Calibration**', '**Decision procedure**',
'**Scope Challenge A → B → C**', 'Sections 1–4 in order'];
const preparation = section.slice(section.indexOf('## Review preparation'));
expect(preparation).toContain('Follow the blocks below in order after startup');
const stages = ['## Review record and write policy', '## Prior Learnings',
'## Retrospective learning', '## Confidence Calibration', '## Decision procedure',
'## Scope Challenge', '## Review Sections'];
const positions = stages.map(stage=>preparation.indexOf(stage));
expect(positions.every(position=>position>=0)).toBe(true);
expect(positions).toEqual([...positions].sort((a,b)=>a-b));
@@ -150,7 +150,7 @@ test('both complexity paths join findings without bypassing answers or persisten
expect(positions.every(position => position >= 0)).toBe(true);
expect(positions).toEqual([...positions].sort((a, b) => a - b));
expect(challenge).toContain('Complete these checks before the complexity decision in B');
expect(challenge).toContain("Below both thresholds, skip B's questions and go directly to **C. Resolve findings**");
expect(challenge.replace(/\s+/g, ' ')).toContain("With fewer than 8 files AND fewer than 2 new classes/services, skip B's questions and go directly to **C. Resolve findings**");
expect(challenge).toContain('At 8+ files or 2+ new classes/services, STOP before Section 1');
expect(challenge).toContain('After verification, apply only accepted scope changes');
expect(challenge).toContain('Run C whether B was completed or skipped');
@@ -160,12 +160,13 @@ test('both complexity paths join findings without bypassing answers or persisten
expect(challenge).toContain('A failed save or Read blocks advancement');
expect(challenge).toContain('Findings and scope answers approve no remedies');
expect(challenge).toContain('Continue to Section 1 only when no answer is pending');
expect(section).toContain('One question for one choice per AskUserQuestion call');
expect(section).toContain('Compare every native field with `currentDecision` and the whole grid with step 3');
expect(section.replace(/\s+/g, ' ')).toContain('Send one question object for one choice; other IDs wait');
expect(section.replace(/\s+/g, ' ')).toContain('Compare every native field with `currentDecision` and the whole saved grid with the prepared comparison');
expect(section).toContain('Repair any difference and repeat the complete Read before asking');
expect(section).toContain('Read the selected saved label, full description and grid column together');
expect(section).toContain('Check the save result, then Read the entire resolution block, including State');
expect(section).toContain('Entrypoint: **Paused question** for pending answers; **Blocked outcome** for missing work or failed recovery');
expect(section).toContain('**STOP until the actual answer arrives.**');
expect(section.replace(/\s+/g, ' ')).toContain('unreadable or unverifiable records use **Recovery routing**');
expect(template).toContain('**Paused question:** Wait for its actual answer without completion telemetry or ExitPlanMode');
expect(template).toContain('**Blocked outcome:** Stop the review and report `BLOCKED`');
});