Repository navigation
Conversation
There was a problem hiding this comment.
Ladon verdict: Approve
Approve — clean version-translation consistency fix.
This PR removes two over-broad config.identity33 guards in create-adcp-server.ts so version translation (request upgrade, response downgrade, and stored get_task_status results) runs for older buyers on identity33 servers — closing a wire-fidelity bug where 3.3-only fields leaked un-stripped to 3.1/3.2 callers, aligning with the already-correct get_adcp_capabilities path. Ordering is preserved (validate/authorize on original params, then upgradeRequest before handler) and pinned by new tests. The src/lib/** change is accompanied by a defensible patch changeset, satisfying the changeset-vs-wire-impact rule.
Decision-table walk:
- Row 1: no critical/high findings → skip.
- Row 2: gated_paths is false → skip (review_decision REVIEW_REQUIRED is irrelevant when gated_paths is false).
- Row 3: high_risk false → skip.
- Rows 4–6: no medium findings, no prior escalation → skip.
- Row 7: no no-auto-approve team match → skip.
- Row 8: fewer than three medium findings (zero) → skip.
- Row 9: approve.
No blocking findings, no escalation triggers.
Enabling identity33 skips release translation for older callers. A 3.1 get_media_buy_delivery request can fail strict response validation because per-buy currency never moves to the required root field. Older task polls can also receive fields from a newer release.
Apply the existing converters regardless of identity33, while keeping capabilities on their separate projection path and preserving same-release behavior. Add regressions for 3.0/3.1 delivery responses, 3.2 and 3.3 controls, stored task results, translation callbacks, authorization denial, and dispatch-level 3.3 identity-field projection for a 3.2 buyer.
Validation: 22 focused tests pass. Seven fail with the upstream translation guards restored. Build, typecheck, lint, boundary lint and formatting pass. The fast lane has two CLI help failures reproduced on the unchanged baseline. The slow lane had one candidate-order failure; all 244 tests in that file subsequently passed on both baseline and patched code. Workspace tests pass, with one reporting-storage skip.
Fixes #3660.