Skip to content

Post-7.3 eval guards for thin-router planning - #26

Merged
cursor[bot] merged 5 commits into
mainfrom
cursor/post-73-improvement-plan-6e6e
Aug 17, 2026
Merged

Post-7.3 eval guards for thin-router planning#26
cursor[bot] merged 5 commits into
mainfrom
cursor/post-73-improvement-plan-6e6e

Conversation

@vriesd

@vriesd vriesd commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements the post-7.3 improvement plan and prepares 7.3.2 so merge to main triggers release.

Changes

  • P0: plan-only-stops guards (no worker during planning, flow_guidance before save) + cassettes
  • P1: guidanceSkipped eval metric (ungated), validation-matrix checklist
  • P2: Prompt ceiling 16KB, source budget freeze, skipped-case-named-binding scenario

Release (7.3.2)

  • package.json → 7.3.2
  • CHANGELOG.md dated entry with install snippet
  • README and troubleshooting install pins updated
  • On merge: release workflow reads v7.3.2 from package.json, creates tag, publishes npm + GitHub release

Verification

  • bun run check — 369 pass
  • bun run replay — 9/9 cassettes MATCH
  • bun run release:metadata -- --tag v7.3.2 — OK
Open in Web Open in Cursor 

cursoragent and others added 5 commits August 17, 2026 22:14
Extend plan-only-stops to fail worker dispatch during planning and
flow_plan_save without prior flow_guidance. Pin both in committed
cassettes, add guidanceSkipped eval metrics, ratchet prompt ceiling to
16KB, and add skipped-case-named-binding for ADR 0012 isolation.

Co-authored-by: vriesd <vriesd@users.noreply.github.com>
Bump package and install pins, move eval-guard notes into dated changelog,
and align new cassettes to 7.3.2. Main push creates v7.3.2 and publishes.

Co-authored-by: vriesd <vriesd@users.noreply.github.com>
Keep the [Unreleased] heading for the rolling contract; an empty section
is enough when the latest notes are in a dated release.

Co-authored-by: vriesd <vriesd@users.noreply.github.com>
Top entry is always the current package version. Release prep adds a dated
section; the contract test enforces that instead of an empty Unreleased block.

Co-authored-by: vriesd <vriesd@users.noreply.github.com>
Co-authored-by: vriesd <vriesd@users.noreply.github.com>
@vriesd
vriesd marked this pull request as ready for review August 17, 2026 22:32
@cursor
cursor Bot merged commit 6f75d8d into main Aug 17, 2026
6 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 86f0077a90

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread evals/scenarios.ts
Comment on lines +984 to +985
check(outcome) {
return skippedCaseRefusedIssues(outcome);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require a host-matching platform in the binding scenario

In the new skipped-case-named-binding scenario, a model can declare { platform: "win32", assertions: ["linux-skipped observation"] }, receive a platform-mismatch refusal, and close as deferred; this shared checker then returns no issues because it verifies only that some assertion was named. The scenario therefore passes without exercising the named-case rule it was added to isolate, recreating the exact confound described in its qualification comment. Require the relevant evidence entry to target the current Linux host (and the expected assertion) before accepting the refusal.

Useful? React with 👍 / 👎.

Comment thread evals/scenarios.ts
Comment on lines +400 to +402
test.skipIf(process.platform === "linux")("linux-skipped observation", () => {
expect(safeWindowsFileName("con")).toBe("_con");
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restrict the Linux-skipped scenario to Linux hosts

When this eval is run on macOS or Windows, process.platform === "linux" is false, so linux-skipped observation executes and passes rather than being skipped. A correct completed workflow is nevertheless failed unconditionally by skippedCaseRefusedIssues as completion over a skipped case, corrupting cross-platform eval results. Either make the fixture's named case skipped on every supported eval host or prevent this scenario from running outside Linux.

Useful? React with 👍 / 👎.

Comment thread evals/metrics.ts
Comment on lines +444 to +445
let sawPlanGuidance = false;
let sawRunGuidance = false;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reset guidance tracking at each host-session boundary

The guidance flags are accumulated across the entire joined call stream, although calls retain sessionIndex and scenarios such as resumes-after-interruption deliberately create a fresh session with no transcript. If session 0 loads flow-run and session 1 starts a run without loading it, this function reports no skip even though the fresh manager never received the lazy-loaded guide. Track guidance per sessionIndex (or reset the flags when the index changes) so summary.guidanceSkipped measures the documented behavior.

Useful? React with 👍 / 👎.

@vriesd
vriesd deleted the cursor/post-73-improvement-plan-6e6e branch August 17, 2026 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants