Skip to content

New-WSL: Codex 0.160.0 profile pins, main-checkout Codex trust grant, Opus 5.5 model (follow-up to #626) - #683

Merged
seathatflowsinourveins merged 3 commits into
mainfrom
c5/new-wsl-codex-0160
Oct 4, 2026
Merged

seathatflowsinourveins merged 3 commits into
mainfrom
c5/new-wsl-codex-0160

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes: the coordinator's follow-up to Codex 0.159.3 -> 0.160.0 with the Python SDK pair: pins, qualification receipt, tests and checkpoint #626 for the new WSL distribution (NativeStack2604). (1) The new-WSL profile, its overview, handbook and handbook receipt move the Codex CLI and the Python SDK (openai-codex) to 0.160.0. (2) The client-config builder pre-trusts the main repository checkout in Codex as an authorization setting. (3) The builder pins NativeStack2604's Claude main model to Opus 5.5 (claude-opus-5-5).
  • Base commit: f77a35eb2bf30bc4bf6f3b4ee51bc9ce5397b4c5 (the merge of Codex 0.159.3 -> 0.160.0 with the Python SDK pair: pins, qualification receipt, tests and checkpoint #626; origin/main had not moved at push time)
  • Lane: lane:foundation (all paths are foundation-owned per docs/lanes.md; the manifests/evidence.json change is only the hot-file re-registration)
  • Owned paths touched: adoption/new-wsl-profile.{json,md}, adoption/new-wsl/client-config-map.json, tools/adoption/new_wsl_client_config.py, tools/adoption/codex_home.py, docs/new-wsl-handbook.{json,md}, docs/decisions/2026-10-02-new-wsl-client-configuration.md, evidence/artifacts/new-wsl-handbook-20261001/receipt.json, tests/test_new_wsl_profile.py, tests/test_new_wsl_client_config.py, tests/test_bootstrap_full_profile.py, manifests/evidence.json (last commit, alone)

SOTA sources

  • openai/codex rust-v0.160.0 (release published 2026-10-01T20:19:13Z, target commit a956835d020762cb2b570053af06f643a11c0ecc; read 2026-10-04):
    • codex-rs/tui/src/config_update.rs L264-279: a project's trust entry is found by exact key, case-insensitively only for a Windows path. L305-337: the lookup tries the cwd, then the project root, then the git trust root. L338-366: a saved trusted level asks nothing.
    • codex-rs/git-utils/src/trust.rs L12-24: resolve_root_git_project_for_trust resolves a linked worktree to the main repository's root.
    • Upstream tests codex-rs/core/src/git_info_tests.rs L829-968: a worktree and its nested directories resolve to the main root; missing metadata, a mismatched backlink, a mismatched commondir and a symlinked .git are refused.
    • codex-rs/config/src/loader/mod.rs L131-133: project config layers are "loaded but disabled when untrusted".
    • openai/codex#49160, merge commit 0d7b8117d3cc6d9ffe21d22375d70307133e9f16, an ancestor of rust-v0.160.0 (compare: behind_by 0): "Let /cd request folder trust".
    • Release-asset digests from https://api.github.com/repos/openai/codex/releases/tags/rust-v0.160.0: codex-package-x86_64-unknown-linux-musl.tar.gz 4fcc47ab…, codex-x86_64-unknown-linux-musl.tar.gz 30686541….
  • npm @openai/[email protected] (https://registry.npmjs.org/%40openai%2Fcodex/0.160.0): tarball integrity sha512-kEtVGzj…, equal to the local rehash. PyPI openai-codex==0.160.0 (https://pypi.org/pypi/openai-codex/0.160.0/json): wheel sha256 61d2d855….
  • Claude Code model configuration, https://code.claude.com/docs/en/model-config (read 2026-10-04T07:03Z): the opus alias resolves to Opus 5.5 on the Anthropic API; "To pin to a specific version, use the full model name, for example claude-opus-5-5"; Opus 4.7 and later run with the 1M window on the Anthropic API without a [1m] suffix.
  • In-repo references followed: Codex 0.159.3 -> 0.160.0 with the Python SDK pair: pins, qualification receipt, tests and checkpoint #626 (merge f77a35eb2) and its withdrawn profile commits f51b3e06, fbbd9393, 5cb4d06f and the withdrawal 9bb0b1e9; adoption/pins-linux-x86_64.json, manifests/stack.json, adoption/sdk/requirements-linux-x86_64-py313.lock and evidence/artifacts/runtime-sdk-20261003/{receipt,qualification-facts}.json at main; the handbook generator record docs/decisions/2026-10-01-new-wsl-handbook-generator.md L665 (receipt hashes follow the regenerated files); the client-config record's open observation at L699-702 (trust pieces belong in the authorization class).

What changed and why

  1. Codex 0.160.0 in the new-WSL profile (commit c320b11ee). Every version-bound field of the Codex and Codex Python SDK rows reapplies Codex 0.159.3 -> 0.160.0 with the Python SDK pair: pins, qualification receipt, tests and checkpoint #626's withdrawn values unchanged: tarball name, URL, sha256 37351776… and 4,902 bytes; wheel URL and sha256 61d2d855…; install, README and quickstart sources at rust-v0.160.0; release tag and published_at; source_commit a956835d; the native-update floor; and the two release-asset digests. Each value was checked against main's pins, stack manifest, SDK lock and Codex 0.159.3 -> 0.160.0 with the Python SDK pair: pins, qualification receipt, tests and checkpoint #626's receipt, and live against GitHub, npm and PyPI. Both archives were downloaded and rehashed again on 2026-10-04.
  2. Main-checkout Codex trust grant (commit 8d5817f96). The shared Codex template already has a templated piece, projects."${PROJECT_ROOT}".trust_level, and NativeStack2604's host template sets PROJECT_ROOT to the native-agent-stack checkout in the home. No new template slot or literal path is needed.
    • Map entry: the piece gets its own entry, citing the sources above and the coordinator's decision of 2026-10-04 (R16 review: the dialog is acceptable, our roots pre-trusted, unknown projects still prompting).
    • Class authorization:, not practice: the tool's own definition ("suppresses a confirmation") and the record's open observation both say so. is_authorization_piece gains one pattern, codex/*/projects.*.trust_level. The grant is rendered and written only with --with-authorization-settings, and never over a file's own answer. The publication checkout's grant stays not wired.
    • Fresh Codex home: codex_home.py dropped every [projects] table from a config.toml it created, so the apply would have reported the grant "added" without writing it. It gains an additive --keep-project-trust (the mirror of --keep-hook-trust), which the builder passes. The bootstrap passes neither flag, so its output is byte-identical.
    • Merge report: the merge looked an authorization piece up by its template path. A grant the file already had was therefore reported "added". The lookup now fills placeholders as the render does.
  3. NativeStack2604 model Opus 5.5 (same commit). A practice map entry overrides the shared template's model with claude-opus-5-5 for the new distribution only, quoting the user's choice of 2026-10-04. The additions file cannot carry it: merge_additions refuses a key the shared template defines, and a map override is the builder's mechanism for that. advisorModel stays fable.
  4. Hot-file re-registration (commit 6b68939ac, alone): seven files main's manifest lists. component_matrix.py --write and new_host_grand_list.py --write changed nothing.

Deviations from the brief

  • Part 3 premise. No builder input held sonnet. The builder already rendered the shared template's opus[1m], which resolves to Opus 5.5 on the Anthropic API today. The "sonnet" is most likely a live host's saved /model choice: the docs say /model saves to the settings model, and docs/decisions/2026-09-29-sonnet-5-5-dispatch.md L31 records a Sonnet 5.5 user setting on the workstation. This PR does not change the resolved model; it pins NativeStack2604 to the user's explicit choice, independent of the shared template. The next builder --apply overwrites a saved sonnet, because template scalars win (Decision 12).
  • The trust grant needs the option. The recipe's F9 --apply line is the plain one, so the grant is written only when the coordinator adds --with-authorization-settings, exactly as for approval_policy = "never" today.
  • Two changes outside the three listed builder files: tools/adoption/codex_home.py (additive flag) and the 2026-10-02 decision record (generated tables, counts and a 2026-10-04 addendum, all required by its tests).
  • Not changed: the recipe's F9 paragraph (adoption/platforms/linux-wsl2-new-distro.md L1013-1027) lists the authorization settings without the new grant. Its statements remain true for its plain --apply line. The page is hash-bound by the handbook and by blueprints/convergence-practice/wsl-new-distro-image-20261001/experiment.json, so updating it is a separate re-freeze.

Evidence-class table

Claim Evidence class Command / receipt
The profile's Codex and Python SDK 0.160.0 values equal main's pins and upstream metadata source_review gh api repos/openai/codex/releases/tags/rust-v0.160.0; npm and PyPI JSON; main's pins, stack, lock and runtime-sdk receipt
The 0.160.0 npm tarball and wheel rehash to the recorded sha256 local_integration curl + sha256sum at 2026-10-04T07:10:24Z: 37351776… (4,902 bytes), 61d2d855…; tarball sha512 equals npm's integrity
The handbook and its receipt are current local_integration build_new_wsl_handbook.py --write then --check (exit 0); test_new_wsl_handbook
One main-checkout entry covers linked worktrees; a parent directory does not source_review upstream lines at rust-v0.160.0 above (upstream tests read, not run)
The grant is rendered only with the option, kept in a new Codex home, and reported added, same or kept truthfully local_integration (synthetic fixtures) tests.test_new_wsl_client_config (new tests); mutation controls: no placeholder fill fails 4 tests, no --keep-project-trust fails 2
The render's Claude model is claude-opus-5-5; other hosts keep opus[1m] local_integration --render --host example; test_settings_keep_the_practice_pieces_and_drop_the_old_profile_pieces
claude-opus-5-5 pins Opus 5.5 source_review model-config docs above

Nothing here is native_proven. No client ran and no model was called. Nothing was applied to NativeStack2604 or to any host.

Local commands run

$ python3 -m unittest tests.test_new_wsl_profile tests.test_new_wsl_handbook tests.test_install_claude_profile tests.test_render_config
Ran 204 tests ... OK            (exit 0)
$ python3 -m unittest tests.test_new_wsl_client_config tests.test_bootstrap_full_profile tests.test_new_wsl_definitive_defaults
Ran 267 tests ... OK            (exit 0)
$ python3 -m unittest <14 other modules that load codex_home.py, the map, the builder, the profile or the record>
Ran 1848 tests ... OK (skipped=13)   (exit 0)
$ python3 tools/adoption/new_wsl_client_config.py --check
pieces: 385; wired: 293; not wired: 79; authorization: 13 / check passed   (exit 0)
$ python3 scripts/build_new_wsl_handbook.py --check
"status": "passed"              (exit 0)
$ python3 scripts/new_host_grand_list.py --check ; python3 scripts/component_matrix.py --check
passed / checked                (exit 0, exit 0)
$ python3 scripts/validate.py
{"components": 69, "hashed_files": 9864, "profiles": 4, "receipts": 195, "status": "passed"}   (exit 0)

Decision record

docs/decisions/2026-10-02-new-wsl-client-configuration.md, "Addendum 2026-10-04: the main checkout's Codex trust grant and the model". It names the sources, the alternative classes and what would overturn each decision: Codex matching trust by a parent directory or another key form; a decision that the root should ask again; or the user choosing another model or the floating opus alias.

Host evidence

Not applicable: no file under evidence/hosts/ changes.

Checklist

  • New/changed GitHub Actions are pinned to a full commit SHA with a version comment (none changed).
  • New/changed workflows declare top-level permissions: contents: read (none changed).
  • No secrets are printed, logged or committed; no new required secret was added.
  • No new paid hosting, subscription or billing surface was introduced.
  • Peer-owned untracked files and worktrees were preserved (work done only in the owned worktree).

🤖 Generated with Claude Code

Scout and others added 3 commits October 4, 2026 03:13
#626

PR #626 (merged at f77a35e, 2026-10-04T06:53:20Z) moved the shared Linux
Codex pin and the openai-codex SDK pair to 0.160.0 and left the new-WSL
profile, handbook and receipt for this follow-up.

- adoption/new-wsl-profile.json: the Codex and Codex Python SDK rows and the
  boundary pins take the 0.160.0 values of #626's withdrawn profile commits
  (f51b3e0, fbbd939), each checked against main: npm tarball sha256
  37351776... and 4,902 bytes (adoption/pins-linux-x86_64.json and the
  runtime-sdk-20261003 receipt), wheel sha256 61d2d855...
  (adoption/sdk/requirements-linux-x86_64-py313.lock), source commit a956835d
  (manifests/stack.json), published_at (runtime-sdk-20261003
  qualification-facts.json) and the two rust-v0.160.0 release-asset digests
  (GitHub release API, read 2026-10-04). Both archives were downloaded and
  rehashed again on 2026-10-04. Provenance is #626's merged state on the #580
  pattern: sdk_gate #626, sdk_gate_status merged_at_2026-10-04T06:53:20Z,
  accepted_main f77a35e. The TypeScript SDK row (#626 pinned no
  @openai/codex-sdk), source_head and the dated `codex update --help`
  observation stay.
- adoption/new-wsl-profile.md: the overview sentences and the table follow.
- tests/test_new_wsl_profile.py: #626's withdrawn hunk, verbatim (9bb0b1e^).
- docs/new-wsl-handbook.{json,md}: python3 scripts/build_new_wsl_handbook.py
  --write, then --check (exit 0).
- evidence/artifacts/new-wsl-handbook-20261001/receipt.json: profile_sha256
  and the two outputs hashes follow the regenerated files (2026-10-01 handbook
  generator record, L665); generator_sha256 and the inventory are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…odel

Codex trust grant (coordinator's decision of 2026-10-04, R16 review: Codex
0.160.0's folder-trust dialog stays, our root pre-trusted, unknown projects
still asked about; openai/codex #49160 is in rust-v0.160.0).
- adoption/new-wsl/client-config-map.json: the shared template's existing
  projects."${PROJECT_ROOT}".trust_level piece gets its own entry, classed
  authorization, so it is rendered and written only with
  --with-authorization-settings and never over a file's own answer.
  ${PROJECT_ROOT} is the main checkout on the new distribution (host
  template), and Codex looks a linked worktree's trust up under it by exact
  key (rust-v0.160.0: tui/src/config_update.rs L264-279 and L305-366,
  git-utils/src/trust.rs L12-24, core/src/git_info_tests.rs L829-968,
  config/src/loader/mod.rs L131-133). The publication checkout and every
  other projects.* piece stay not wired.
- tools/adoption/new_wsl_client_config.py: is_authorization_piece names
  codex/*/projects.*.trust_level (the one pattern the record's open
  observation asked for); the apply passes codex_home.py
  --keep-project-trust; the merge reports a piece whose key names a
  placeholder under the path the render filled (it reported such a grant as
  added even when the file had it); the default authorization line and the
  option's help name the grant.
- tools/adoption/codex_home.py: additive --keep-project-trust, the mirror of
  --keep-hook-trust, so a new Codex home keeps the grant the render holds and
  a later merge ends with the same file. The bootstrap passes neither flag;
  its output is unchanged.

Model: the user's choice of 2026-10-04 (question tool), Opus 5.5. A map entry
overrides the shared template's opus[1m] with claude-opus-5-5 for the new
distribution only (code.claude.com/docs/en/model-config, read 2026-10-04:
the full model name pins a version; opus resolves to Opus 5.5 on the
Anthropic API). The resolved model is the same as before; the new
distribution no longer follows the shared template. No repository file held
`sonnet` for it.

- docs/decisions/2026-10-02-new-wsl-client-configuration.md: tables from
  --check --markdown, counts (385 / 293 / 79 / 13) and an addendum of
  2026-10-04 with sources and overturn conditions.
- tests: the authorization class gains the grant; new tests for a new Codex
  home with the option, a file's own answer kept, the predicate rows, the
  rendered model and codex_home's flag. Mutation controls: dropping the
  placeholder fill fails 4 tests, dropping --keep-project-trust fails 2.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ol, last commit)

host_receipts.register_file for the seven changed files main's
manifests/evidence.json lists: adoption/new-wsl-profile.json and .md,
docs/new-wsl-handbook.json and .md, the new-wsl-handbook-20261001 receipt,
tests/test_bootstrap_full_profile.py and tests/test_new_wsl_profile.py.
component_matrix.py --write and new_host_grand_list.py --write changed
nothing. python3 scripts/validate.py: exit 0, status passed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 4, 2026
@seathatflowsinourveins
seathatflowsinourveins marked this pull request as ready for review October 4, 2026 14:16
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-5f: landing at head 6b68939ac0912b1eb67ce309db7d7d293b1ee8d3. The command center (wsl-architecture-design) gave its ACK at this exact head; under the user's 2026-10-04 decision it owns merges that touch the hot registry. The read-only cross-family review (GPT-6.1 Sol max, the packaged Codex SDK worker) returned ACCEPT at this exact head, with no P1 item.

Observed main 15cb14841938493906509e4cd66cf23eb0a9808e. coordination/merge_tree_landing_check.py (sha256 a11649fcf2e5844c…) exit 0:

main 15cb14841938493906509e4cd66cf23eb0a9808e head 6b68939ac0912b1eb67ce309db7d7d293b1ee8d3 base f77a35eb2bf30bc4bf6f3b4ee51bc9ce5397b4c5 merged-tree 5eae201ecf8b2f03f2ad8914edaf25a479821094 merge-tree-exit 0
ok   1: clean three-way merge
ok   2: merged-vs-main paths 13, outside PR-owned 0 []
ok   3: main drift 61 paths, overlap with PR-owned inputs (registry excluded) []
ok   4: registry foreign rows equal True, order preserved True, PR-owned rows 7, unowned top-level keys differing []
ok   5: merged files[] sorted by path with no duplicates: True (9881 rows)
LANDABLE
condition 5: merged files[] sorted and unique (tree 5eae201ecf8b2f03f2ad8914edaf25a479821094)

Required checks at this head: 8 pass . Unresolved review threads: 0.

@seathatflowsinourveins
seathatflowsinourveins merged commit b629b5b into main Oct 4, 2026
25 checks passed
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-5f: post-merge observation. Landed as b629b5b413d75deb4c98dd26d62b129173b87d44 (parent 15cb14841938493906509e4cd66cf23eb0a9808e), tree 5eae201ecf8b2f03f2ad8914edaf25a479821094. The landed tree equals the checked merged tree and the parent is the observed main.

@seathatflowsinourveins
seathatflowsinourveins deleted the c5/new-wsl-codex-0160 branch October 4, 2026 14:18
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
… three files

Hot-file protocol, merge path (docs/lanes.md): main moved during the review round and its #688 edits
docs/decisions/2026-09-22-github-automation-closure.md (30 lines at 465; this branch's sentence, now at 1653, merged
cleanly) and .github/workflows/security-scan.yml. manifests/evidence.json is main's copy with
tests/test_workflow_policy.py and the two decision records re-registered through host_receipts.register_file;
component_matrix.py --write and new_host_grand_list.py --write changed nothing.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
…1004

manifests/evidence.json conflicted (hot file): resolved by the docs/lanes.md merge path, taking
main's copy and re-registering this branch's five files with host_receipts.register_file:
.github/workflows/{adoption-bootstrap,catalog-freshness,validate}.yml and
tests/test_{shell_parser_ci,workflow_hardening}.py. tests/test_workflow_hardening.py merged
cleanly (#688's retired WSL OSV group, lines ~289-350, beside this branch's suite checks).
component_matrix.py and new_host_grand_list.py --write changed nothing; validate.py passes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
…ot-file protocol)

#683 (New-WSL Codex 0.160.0 profile pins, main-checkout trust grant, Opus 5.5)
lands before this PR and edits the B1 record. manifests/evidence.json is
main's copy (it auto-merged; main's copy was taken by checkout); the
branch's rows are re-registered in the last commit.

Conflict resolved in docs/decisions/2026-10-02-new-wsl-client-configuration.md
(Decision 2's counts): main's wording (the trust grant as an authorization
piece) with the counts measured on this merged tree by
new_wsl_client_config.py --check --json:
- measured on the merged tree: (386, 294, 200, 94, 79, 41, 38, 13)
- main b629b5b alone:        (385, 293, 200, 93, 79, 41, 38, 13)
- approved on 2026-10-04:      (386, 294, 200, 94, 80, 41, 39, 12)
The one new row is still codex/stack-worker/mcp_servers.serena.required
(slot:serena, wired); #683 moved one piece from not wired to authorization.
The dated 2026-10-04 sentence (385, 293 and 93 before #674) still holds, and
Decision 14's phrase (authorization 13, 79 not wired) does not move.
tests/test_new_wsl_client_config.py merged cleanly; the module exits 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
…ds branch (hot-file protocol: main's registry; PR rows re-registered last)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
…y (387 pieces, 80 not wired, 39 own entry)

The key under tui.model_availability_nux is one more not-wired piece (client state, not
configuration). Recounted on the tree merged with main 54eb892 (#674, #683, #686) by the GPT-6.1 Sol
worker; reviewed by the coordinator.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Oct 4, 2026
… row, held status, TUI notice key (#687)

* Codex dated holds (R6): one pin row with a host-agnostic 0.159.3 hold until 2026-11-04

- adoption/pins-linux-x86_64.json: the codex row carries holds[] with one entry, 0.159.3 until
  2026-11-04 (X18, the #626 landing exception). Wrapper URL and SHA-256 are the row's values before
  f77a35e (from 85543ef, #580), re-verified against a registry download; the linux-x64
  platform_dependency (row shape) is first recorded here from the npm registry.
- scripts/adoption_status.py --pinned-versions: a probe naming a hold's version before its until date
  (UTC) is held (hold_* fields, summary "held", "held until <date> (<reason>)"), not drift; on and
  after until it is mismatched with the expiry stated. Malformed holds are skipped. The default run,
  the exit code and the existing keys are unchanged.
- tools/adoption/apply_codex_lane.py still refuses any codex but CODEX_VERSION; the refusal now names
  a matching hold and its until date.
- tests/test_pin_holds.py: every hold complete, until a real date after today (UTC) and at most
  90 days away, at most one hold per row (the OSV ignoreUntil precedent), with mutants.
- adoption/templates/codex.config.template.toml: "gpt-6.1-sol" = 4 under [tui.model_availability_nux],
  cited from openai/codex rust-v0.160.0 (MODEL_AVAILABILITY_NUX_MAX_SHOW_COUNT = 4).
- docs/decisions/2026-10-04-codex-dated-holds.md: design, alternatives, precedent, overturn.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Codex dated holds: stack.json reference and evidence registry (hot-file protocol, last commit)

manifests/stack.json's codex row carries no install data, so its freshness refers to the pins row's
dated hold instead of copying it. manifests/evidence.json takes main's copy (6af8e55) and
re-registers this branch's changed files plus its new test and decision record, as #626 did;
component_matrix.py and new_host_grand_list.py --write reproduced their outputs unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* New-WSL client-config record: recount after the gpt-6.1-sol notice key (387 pieces, 80 not wired, 39 own entry)

The key under tui.model_availability_nux is one more not-wired piece (client state, not
configuration). Recounted on the tree merged with main 54eb892 (#674, #683, #686) by the GPT-6.1 Sol
worker; reviewed by the coordinator.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Registry: re-register the PR-owned files after the recount (last commit)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Hot-file protocol: reset manifests/evidence.json to the merge base before the final hot-file commit

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Reapply this branch's manifests/evidence.json edits on the merge base (hot-file protocol: every hot-file edit in the last commit)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* adoption_status: one hold schema for run time and the pins test (cross-family P1)

pin_holds() now keeps only holds that hold_schema_problems() accepts. The same validator is imported by
tests/test_pin_holds.py. It requires the wrapper url and sha256, and the platform package's shape, version,
url, digest and binary check when the pin has one. So a hold with malformed install metadata is ignored,
and the version is reported as drift instead of held. Failing-first: the three missing-field cases failed
before the fix; 16 malformed-metadata cases pass after it.

Built by the GPT-6.1 Sol worker; reviewed by the coordinator (Claude Opus).

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Registry: re-register the fix's files (last commit)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Hot-file protocol: reset manifests/evidence.json manifests/stack.json to the merge base before the final hot-file commit

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Reapply this branch's manifests/evidence.json manifests/stack.json edits on the merge base (hot-file protocol: every hot-file edit in the last commit)

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant