Skip to content

Roadmap item 4: Add inactive Claude producer payload - #220

Merged
yihanzhu merged 6 commits into
mainfrom
codex/default-claude-code-producer-adapter-v1
Sep 2, 2026
Merged

Roadmap item 4: Add inactive Claude producer payload#220
yihanzhu merged 6 commits into
mainfrom
codex/default-claude-code-producer-adapter-v1

Conversation

@yihanzhu

@yihanzhu yihanzhu commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add an inactive, offline Claude Code producer normalizer payload.
  • Validate an untrusted producer snapshot against the caller-supplied request, resolved profile, manifest, target, package, config, prompt, skills, tools, model, effort, and execution boundary.
  • Require a caller-owned snapshot pair built only after canonical SHA-256 verification, then require the untrusted snapshot to equal that verified content.
  • Bind the expected attempt ID and number independently.
  • Require changed git-patch output to be present as text/x-diff.
  • Keep provider text as data and emit no authority, qualification, credential, network, target-write, publish, or activation effect.
  • Document the restore path and add the normalizer and focused test to the required-file manifest.

Scope

Tracks ROADMAP item 4 without closing an intake issue.

This is a payload-only unit. It intentionally ships no adapter manifest or default-profile binding. The focused test owns a synthetic manifest solely to prove that caller-manifest and binding-graph validation remains closed.

A later assembly PR must bind the normalizer from its durable squash-main identity, add the manifest, and wire the default profile.

Provenance boundary

jq does not hash the snapshot. The caller must canonicalize and verify the snapshot SHA-256 before constructing verified_snapshot: {content, sha256} in the trust context. The normalizer rejects any top-level snapshot that differs from that verified content and uses only the pair digest in output provenance. A bare digest claim is not accepted.

Proof

  • scripts/test/default-claude-code-producer-adapter.test.sh: 42/42 checks passed with pinned jq 1.6, including the static error path.
  • Regressions cover fixed-pair/moved-content rejection, bare-digest rejection, both attempt-identity mutations, valid text/x-diff, and invalid application/json for changed git-patch output.
  • bash -n scripts/test/default-claude-code-producer-adapter.test.sh
  • shellcheck -x -S style scripts/test/default-claude-code-producer-adapter.test.sh with ShellCheck 0.11.0
  • scripts/check-rename.sh
  • Exact diff, five-path scope, no-manifest, required-file, and preserved caller-manifest/binding checks passed.

The branch merged current main at 4dcd5121323bd4557d93e6a693760e97c0ca2fee without rebasing or force-pushing.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 2, 2026

Copy link
Copy Markdown

Deploying ystack with  Cloudflare Pages  Cloudflare Pages

Latest commit: be7ab52
Status: ✅  Deploy successful!
Preview URL: https://9d5d8b02.fabrica-6yx.pages.dev
Branch Preview URL: https://codex-default-claude-code-pr.fabrica-6yx.pages.dev

View logs

yihanzhu commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Codex reviewer (cross-vendor, read-only)

Reviewed-head: be7ab52
Reviewed-base: 4dcd512
reviewer: review_claude_payload_220 @ high

Bugs

No Important findings. Fresh review confirmed the caller-owned verified snapshot pair is exact-equal to the untrusted snapshot, bare digests reject, and output provenance uses the verified pair SHA. Expected attempt ID and number bind independently. Changed git-patch requests require a present text/x-diff output. State precedence and request/profile/target/package/config/prompt/skill/tool/model/principal/boundary relations remain fail closed.

Security

No Important findings. Canonicalization and SHA-256 verification are explicitly caller-owned before trust-context construction; the jq normalizer does not claim to perform hashing. Provider text remains opaque. The payload exposes no authority, qualification, effects, credentials, network, execution, target write, publishing, install, or activation surface.

Compliance

No Important findings. The exact diff remains the five authorized payload/test/docs/restore-manifest paths, with no manifest, constitution, workflow, live, or process change. Required CI run 33675932544, check 100400470384, app 15368 succeeded on the exact reviewed head. Focused proof passed 42/42 and the final worktree remained clean.

Final review: clean, with zero unresolved Important findings.

@yihanzhu
yihanzhu merged commit 3c0d4ed into main Sep 2, 2026
2 checks passed
@yihanzhu
yihanzhu deleted the codex/default-claude-code-producer-adapter-v1 branch September 2, 2026 20:26

yihanzhu commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Construction receipt

  • reviewed head/base: be7ab5281967c5287a6b6e12b0955997109a2691 / 4dcd5121323bd4557d93e6a693760e97c0ca2fee
  • required CI: app 15368, run 33675932544, check 100400470384, success
  • final independent review: comment 5515901856, zero unresolved Important
  • squash main: 3c0d4ede3070100084890a4a99944cc97ca94650
  • sole parent: 4dcd5121323bd4557d93e6a693760e97c0ca2fee
  • reviewed/merged tree: a617e35dedffcf6049849e3562ba7fa1390ac701
  • normalizer blob: 8af4d80e04f6f3877861e55c216a5891830b03b6
  • publisher receipt SHA-256: 2a495bbce29de2eb853a153b85ecab642feeed15e6d475240c6b2349a82b85c7
  • local main fast-forwarded and clean

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