Skip to content

fix: preserve scoped storyboard routing - #2547

Merged
bokelley merged 4 commits into
mainfrom
codex/upstream-storyboard-routing-fixes
Aug 16, 2026
Merged

fix: preserve scoped storyboard routing#2547
bokelley merged 4 commits into
mainfrom
codex/upstream-storyboard-routing-fixes

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • keep get_products storyboard discovery on the raw projection without forcing a legacy creative wire
  • propagate request-scoped capabilities into version-adapter selection
  • add regressions for canonical product discovery and stale cross-request capability caches

Validation

  • npm run build
  • node --test --test-timeout=60000 test/lib/storyboard-task-map-error.test.js test/lib/request-validation.test.js
  • npm run lint
  • npm run typecheck
  • pre-push validation

@bokelley
bokelley enabled auto-merge (squash) August 16, 2026 00:18
aao-secretariat[bot]
aao-secretariat Bot previously approved these changes Aug 16, 2026

@aao-secretariat aao-secretariat 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.

Ladon verdict: Approve

Approve — tightly-scoped bug fix with no blocking or medium findings.

Threads request-scoped capabilities into version-adapter selection so scoped-fetch (multi-tenant) requests no longer strip fields against a stale cross-request capability cache, and stops forcing the legacy creative wire on get_products storyboard discovery. Both adaptRequest call sites updated with no missed sites; regression tests are genuine (confirms the 3.0 adapter strips filters.pricing_currencies). Changeset present and correctly typed as patch. Aligns with the witness-not-translator principle.

Decision path: no critical/high findings (row 1 n/a); gated_paths=false (row 2 n/a); high_risk=false (rows 3, 5 n/a); no medium findings (rows 4, 8 n/a); no prior decision (row 6 n/a); no no-auto-approve team match (row 7 n/a). Falls through to row 9 → approve.

aao-secretariat[bot]
aao-secretariat Bot previously approved these changes Aug 16, 2026

@aao-secretariat aao-secretariat 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.

Re-approval: no reviewable delta since the prior approval; re-submitting after stale-review dismissal.

aao-secretariat[bot]
aao-secretariat Bot previously approved these changes Aug 16, 2026

@aao-secretariat aao-secretariat 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.

Ladon verdict: Approve

Approve.

Checked: the delta special-cases get_products to route through the raw-response projection (getProductsLegacy) during the migration window (agent version < 3.2), while preserving the requested canonical wire via withLegacyCreativeWireHint's short-circuit. This is consistent with witness-not-translator — it avoids the auto-augmentation getProducts applies so storyboards can grade dual legacy/canonical format declarations. Code comment, changeset text, and the updated test (storyboard-task-map-error.test.js:87-88) are in lockstep. Patch changeset is appropriate for a src/lib/testing storyboard-grading refinement (no removed/renamed export, no wire-shape change on the SDK's public output).

No critical/high/medium findings. Not high-risk, no gated paths, no author team gate. Prior decision was also approve with no findings; this run continues clean. Falls through to row 9.

@aao-secretariat aao-secretariat 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.

Ladon verdict: Approve

Approve.

Change replaces the intermediate get_products special-case with an explicit response_projection: 'raw' opt-in on storyboard steps. Net-vs-base is purely additive: forceRawProjection forces the legacy (raw) method while leaving callParams untouched, so dual-declaration storyboards grade the seller's default response without reshaping the request wire — consistent with the witness-not-translator rule (no fabrication/normalization at any seam). Additive optional field threaded through the runner, covered by both vitest and node tests. Changeset present and correctly scoped for the src/lib/** touch.

Checked against decision table:

  • No critical/high findings (row 1 n/a).
  • gated_paths: false (row 2 n/a).
  • high_risk: false (rows 3, 5 n/a).
  • No medium findings, none data-loss/schema/infra (rows 4, 8 n/a).
  • Prior decision was approve, so sticky escalation (row 6) does not apply.
  • No no-auto-approve team match (row 7 n/a).

Note: review_decision is REVIEW_REQUIRED, but that only forces escalation when gated_paths is true, which it is not here. Falls through to row 9 → approve.

@bokelley
bokelley merged commit 0149983 into main Aug 16, 2026
32 checks passed
@bokelley
bokelley deleted the codex/upstream-storyboard-routing-fixes branch August 16, 2026 00:34
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.

1 participant