Repository navigation
Workstation lane wave A: systemd re-record, SPY/LEAN parity host replay, Nemotron qualification on the RTX 4090, ai-memory 2.4.0 review - #256
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Trading-lane acknowledgement requested ( This PR touches trading-owned paths under The two new host receipts (systemd install |
|
Trading lane acknowledgement (native-agent-stack-e7, 2026-09-25): ack for the trading paths. I reviewed the two trading-path changes at c049966:
The committed This acknowledgement covers the trading paths only. The foundation parts of this PR (the ai-memory review, nemotron qualification, host receipts and generated reports) are outside the trading lane's review. 🤖 Generated with Claude Code |
…ackage Supersedes nativestack-5975wx-20260925--systemd--install--20260925, whose limitation said systemd was an install under the ecosystem prefix; its independent review is needs_changes. The new -2 generation adds `command -v systemctl` and `dpkg-query -S /usr/bin/systemctl`, keeps the version, package, cgroup-delegation and pin checks, and states that systemd is the Ubuntu apt package 255.4-1ubuntu8.17 at /usr/bin/systemctl. The original file is unchanged. The matrix and the manifest registration are regenerated in the branch's last commit (docs/lanes.md hot-file protocol). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…nly) Ran the spy-parity README's bwrap replay on nativestack-5975wx-20260925 with this host's roots (~/.local/share/codex-ecosystem/nautilus-py312 and lean/Lean/Data instead of the README's tools/ paths). run.py exited 0 with the five frozen inputs accepted; every economic field and both normalized economic hashes equal receipt-v2.json (fills 304 @ 323.58 / -304 @ 291.69, distributions 0.00 and 428.64, native end cash 90734.08). compare.py --lean-data on receipt-v2.json on this host: exit 0, PASS, complete, 0 failed, equal to verdict-v2.json except the replay-history check's observed text. On this host's own receipt: exit 1, FAIL, 106/106 execution checks, with the two review preconditions failing by design, since a retry of the reviewed cc4503f harness cannot qualify. The --bars mode gives FAIL on both receipts, because v2 counts its skipped input-rehash check as FAIL; I predicted PASS and kept that wrong prediction. Negative controls: tampered bars and an altered input are both refused. The run is recorded in the blueprint's format: the fresh receipt and verdicts go under evidence/artifacts/workstation-lane-20260925/spy-parity/, the replay is appended to replay-history-v2.json, and the README gets a dated note. The agreed nautilustrader quickstart host receipt is not superseded. Gate G-a and every catalog status are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…bar) Supersedes nativestack-5975wx-20260925--vllm--use--20260925 with a -2 generation that keeps its three commands: /version, unit, GPU and pin; /v1/models; and the asserted backup ranking. The new generation adds a qualified_models entry for nvidia/Nemotron-3-Embed-1B-BF16 at revision c0c9fea93ea424587517f2c59e20db9f1d6bf615 on vllm 0.25.0. The requests are read-only HTTP to the running 127.0.0.1:18231; the service was not touched. The bar is the repository's reproducible model-card qualification (docs/hf-memory-model-qualification.md): - hf cache verify of the served directory: 15 files at the revision. A two-file copy passes, and the same copy fails after a one-byte alteration. - NVIDIA's exact /v2/embed Recommended Retrieval example, with only the URL changed, ranks 4/4 intended documents first, max |d| 0.0006 to the card's printed output. - /v1/embeddings with query:/passage: prefixes ranks 4/4, 2048 dims, unit norms, max |d| 0.0005 to the 2026-09-21 laptop scores. - With the documents rotated, the ranking assertion fails (0/4). The 0.005 tolerance and the rotated control were preregistered; the checking script and the preregistration are in evidence/artifacts/workstation-lane-20260925/nemotron-qualification/. The laptop's ai-memory hybrid-retrieval bar was not rerun: its corpus is a private sealed store and its query set is not committed. Its winning arm also needed max-model-len 8192, while this service runs 4096. The matrix, the grand list and the manifest registration are regenerated in the branch's last commit (docs/lanes.md hot-file protocol). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rade) This read-only review compares the v2.4.0 release (tag 5c4350e3, commit b1b25219) with the 2.3.2 pin: 118 commits and 137 files. Findings: - Two additive migrations, V65 and V66. Both are forward-only, and a 2.3.2 binary or hook fails closed on the migrated store. - rmcp 2.2 fixes three MCP transport advisories. This host serves the HTTP transport on 127.0.0.1:49474. - Several default behaviour changes: access reinforcement, refusal of page writes that collide on case or Unicode normalization, broader capture redaction, and a memory_status scope object. - The new config keys all default to off. - The server, hooks and MCP clients need a coordinated restart. Upstream PR #859 (query/document embedding prefixes) merged after the release, so 2.4.0 does not contain it. The record lists what a later upgrade window must check. No binary, hook, configuration, service or store was changed, and the pin stays 2.3.2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
An independent headless Claude Code session re-ran all six commands with byte-identical output hashes and appended an independent_session agree (2026-09-25T14:51:57Z). The review is committed exactly as it recorded it. The receipt's catalog_revision, 720e294, is on main. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
preregistration.txt (Q4) says the rotated check "must report 0/4 intended-first and fail its ranking assertion". model_card_check.py v1-rotated exited 0 for any result below 4/4, so a partial 1/4 to 3/4 would have counted as the expected control. It now exits 0 only at exactly 0/4, and prints control_required "0/4". Checked on synthetic rankings: 0/4 exits 0; 1/4, 3/4 and 4/4 exit 1. The independent review of the first recording found this. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Its catalog_revision, 66fd7e96, is a local pre-rebase commit. GitHub returns 422 for it, so host_receipts.py validate fails in CI (run 36149652903), and the independent review recorded needs_changes. A receipt is never edited after recording, so the file moves out of evidence/hosts/ unchanged, with both reviews, to evidence/artifacts/workstation-lane-20260925/nemotron-qualification/withdrawn/. The README there quotes the reviewer's reasons verbatim and names the replacement recording. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Recorded with scripts/host_receipts.py record from a detached worktree whose HEAD was origin/main 8c7b7f3, so catalog_revision is on GitHub. The branch's committed model_card_check.py (with the strict 0/4 rotated control) and preregistration.txt were copied in at the same paths; the fifth command prints their sha256. --supersedes names the #231 original, so record assigned the next free generation, -2. It keeps the original three use commands, the hf cache verify check and its altered-file control, the /v2/embed and /v1/embeddings ranking checks and the rotated control, and adds an OS and WSL version command (Ubuntu 24.04.5 LTS, WSL 2.7.13.0). The claim and bars say that the /v2 run was compared only with the card's printed scores (max |d| 0.0012) and the /v1 run only with the 2026-09-21 laptop scores (max |d| 0.0005). The limitations give the preregistration timing (about 3 minutes before the first recording; the rehearsal ran after it) and say every result was known before this recording. All ten commands exit 0. It carries only the self review and needs an independent_session review. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- The checkout now names 720e294 instead of 156d9cc7, a local commit that is not on GitHub, in the new replay-history-v2.json entry and in spy-parity-host-replay.json. The first seven history entries are byte-identical, and compare.py's own append check still passes on both receipt-v2.json (extended by 2) and the host receipt (extended by 1). - The record now acknowledges the second wrong prediction: C2 predicted bytes equal to verdict-v2.json (1816835f...) and got 9decd956..., which differs at replay_history_at_comparison. - B2: only no_prior_replay_ran_the_reviewed_harness fails by design. retained_record_before_run fails because the README's run.py command omits --review-record (compare.py:702-704), although review-record-v2-cc4503f.json exists. - The README note says the --bars example exits 1 on both v2 receipts. - The history note no longer says every listed replay is superseded and unreviewed; compare.py compares only `replays`, so the note edit does not affect the append check. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Step 3 now runs install-hooks with explicit --agent, --config-file and --server-url http://127.0.0.1:49474 for Claude Code and Codex, and keeps this host's capture choices: neither hook set carries --capture-assistant today, and a re-run without it removes the flag. It notes that 49374 is another WSL distro's default on this machine. - Step 2 adds adoption/templates/claude.settings.template.json, whose eight hook commands hardcode tools/ai-memory-2.3.2. - The header says the doc was first written against 720e294 and that #159 (83b6f87) made assistant capture opt-in. - Only GHSA-9pj6 affects the HTTP server; GHSA-9g45 affects the rmcp client used by mcp-bridge, and GHSA-33f5 affects OAuth discovery, which 2.3.2 does not enable (checked against its rmcp features). - The %USERPROFILE% fallback is not Windows-only (#804 reads it on every platform). #859 merged into release/2.5. The overturn condition no longer says "Adopt 2.4.0" and "not 2.4.0" at once. - Adds two default-on changes: the memory_briefing pinned list (#780) and memory_status evidence_rows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Hot-file protocol (docs/lanes.md): manifests/evidence.json starts from main's copy (8c7b7f3), and register_file re-registers the 28 evidence, blueprint and receipt files this branch adds or changes, including the withdrawn vLLM -2 artifact and the re-recorded vLLM -2 receipt. component_matrix.py --write and new_host_grand_list.py --write then regenerated the four reports. The vLLM row no longer shows the withdrawn receipt's dissent, and the grand list gains the Nemotron qualified-model row from the new receipt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
c049966 to
41bef6b
Compare
|
Trading lane: ack re-confirmed for head 41bef6b (native-agent-stack-e7, 2026-09-25). I re-verified the trading paths against
No trading gate or decision moves. The scope is unchanged: this ack covers the trading paths only. 🤖 Generated with Claude Code |
A separate headless Claude Code session re-ran all ten receipt commands read-only (all exit 0) and recorded agree; the matrix counts for vllm in foundation/semantic-rag move from 3/0/1/0 to 3/0/2/0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…#261) The wsl-workstation-host gate still said 21 receipts, 20 agree and systemd install withheld. On main 84ab244 the host has 26 receipt files: 23 current, every one with an independent-session agree, and 3 superseded ones kept (socraticode use, systemd install, vllm use). The systemd install receipt was re-recorded and agreed in #256, which also qualified the Nemotron embedding model on the vllm 0.25.0 pin. Refresh recorded_at_utc. Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Scope
nativestack-5975wx-20260925(Threadripper PRO 5975WX, RTX 4090), plus one round of fixes after independent review:agree.catalog_revisionis onmain.8c7b7f3b, which wasorigin/mainat the rebase. It includes Bind host receipts to landscape winner ids: refuse stack-id aliases, list unbound Mac receipts #214 and sim-capacity: release every order at exactly submit+latency by default; receipts re-run (old kept as superseded) #254, which tightenedhost_receipts.pyandcomponent_matrix.py.mainhas since moved to3f267b5c(Bootstraps: declared, bounded version probes instead of --version on every bin entry #251, bootstrap version probes). That commit touches none of this branch's files except themanifests/evidence.jsonregistrations. A local no-commit merge of3f267b5cinto this head passed all five validators (below). The branch was not rebased again, because the new vllm receipt cites fix commitb6e6e649(see residuals).catalog_revisionvalues: systemd-2is720e294b, and the new vllm-2is8c7b7f3b. Both are onmain, and the GitHub API returns both. The previous body said156d9cc7for systemd, which was wrong. The withdrawn vllm recording's66fd7e96is a local pre-rebase commit; GitHub returns 422 for it.manifests/evidence.json, matrix and grand-list edits. The branch then adds six fix commits, and the eleventh commit holds every hot-file edit (docs/lanes.mdhot-file protocol).lane:shared. The receipts, decision record and foundation artifacts are foundation paths. Step 2 editsblueprints/us-equities/engine-nautilus/spy-parity/replay-history-v2.json(it appends one entry and corrects the note) and adds a dated note to that blueprint's README. Both are trading-owned paths. Perdocs/lanes.md, the trading lane must acknowledge this PR before merge.evidence/hosts/nativestack-5975wx-20260925/…--systemd--install--20260925-2.jsonand a new…--vllm--use--20260925-2.json.evidence/artifacts/workstation-lane-20260925/{spy-parity,nemotron-qualification}/, includingnemotron-qualification/withdrawn/.README.mdandreplay-history-v2.json.docs/decisions/2026-09-25-ai-memory-2-4-0-release-review.md.manifests/evidence.json:main's copy plus this branch's 28 files, registered throughregister_file.platform_statusoradoption/file changed. The superseded receipts are byte-identical.127.0.0.1:38231, and a second instance would exceed the GPU budget. No venv was created, nothing was started on:18241, and the pin notes are unchanged.GPU and services. No session on this PR started a GPU process or started, stopped or reconfigured a service. Step 3 sent only read-only HTTP to the running
:18231server: once in the original session, and once as a rehearsal plus once as the recording in this fix round. Step 2 was CPU only. The GPU readings of the original session were 13,288 MiB at start and 13,317 MiB at the end. The fix round did not measure GPU memory.Evidence-class table
/usr/bin/systemctl, equal to the pin; cgroup v2; the user manager delegates cpu, memory and pidsnative_proven, install stage…--systemd--install--20260925-2.json, which supersedes the needs_changes receiptagreeappendedone_zeroreplay reproduces the published v2 economic ledger, andcompare.py --lean-dataonreceipt-v2.jsonpassesHISTlocal historical replay;native_provenexecutionevidence/artifacts/workstation-lane-20260925/spy-parity/spy-parity-host-replay.jsonandraw/receipt-v2.json; this host's own receipt fails two review preconditions (below)c0c9fea9…on vLLM 0.25.0 and the RTX 4090 passes the repository's model-card barnative_proven, use stage, plusqualified_models…--vllm--use--20260925-2.json(catalog_revision8c7b7f3b)source_review(upstream release, compare API, advisories, PR diffs; no binary run)docs/decisions/2026-09-25-ai-memory-2-4-0-release-review.mdStep 1: systemd re-record. The superseded receipt had an independent
needs_changesreview, because its limitation called systemd an install under~/.local/share/codex-ecosystem. The-2generation addscommand -v systemctlanddpkg-query -S /usr/bin/systemctl. It keeps the version, package, cgroup-delegation and pin checks. All six commands exit 0. An independent headless Claude Code session re-ran all six with byte-identical output hashes and appendedindependent_sessionagreeat 2026-09-25T14:51:57Z. That review is committed exactly as recorded (c45f6b1f).Step 2: SPY/LEAN parity replay (CPU only). The run followed the README's bwrap command (lines 86-103), with this host's interpreter (
nautilus-py312) and data root (lean/Lean/Data) substituted. Verdicts went to scratch.run.pyexited 0 and accepted the five frozen input hashes. Every economic field and both normalized economic hashes (c9678337…) equalreceipt-v2.json.compare.py --lean-dataonreceipt-v2.json: exit 0, PASS, complete, failed 0, 136 checks. The preregistered prediction was wrong. It predicted bytes equal toverdict-v2.json(1816835f…). The verdict is9decd956…, which differs atreplay_history_at_comparison("extended by 1"). The record now says so.compare.py --lean-dataon this host's receipt: exit 1, FAIL, complete, 106/106 execution checks, failed 2. Corrected attribution: onlyno_prior_replay_ran_the_reviewed_harnessfails by design, because no retry of the reviewed harnesscc4503fcan qualify.retained_record_before_runfails because the README'srun.pycommand omits--review-record(compare.py:702-704), althoughreview-record-v2-cc4503f.jsonexists.--bars, the README's first example: exit 1 on both v2 receipts.--barscannot re-hash the inputs, and v2 counts that skipped check as FAIL. The C prediction (PASS) was wrong and is kept as written. The README note now says this.--barsfile and a one-byte-altered frozen input are both refused.3ad7f4a6:720e294binstead of156d9cc7, a local commit that is not on GitHub. This is fixed in the new history entry and in the host replay record.compare.py's own append check still passes onreceipt-v2.json("extended by 2") and on the host receipt ("extended by 1").compare.pycompares onlyreplays, so this edit does not affect the append check.correctionsentry in the record lists these changes.No nautilustrader host receipt was recorded, and #231's quickstart use receipt is not superseded. Gate G-a and every catalog status are unchanged.
Step 3: Nemotron qualification: first recording withdrawn, re-recorded.
The first
-2recording (observed 14:37:37Z,catalog_revision66fd7e96) got an independentneeds_changes. The reviewer's reasons:catalog_revision66fd7e96 is a local pre-rebase commit. No GitHub ref reaches it, the API returns 422, and CIhost_receipts.py validatefails on exactly this receipt (run 36149652903).What changed:
6dd4bdca): the file moved unchanged, with both reviews, toevidence/artifacts/workstation-lane-20260925/nemotron-qualification/withdrawn/…-2.withdrawn.json. ItsREADME.mdquotes the reviewer's recorded reason and session notes verbatim and names the replacement. It is registered as an artifact. Nothing underevidence/hosts/keeps66fd7e96.b6e6e649):model_card_check.py v1-rotatednow exits 0 only at exactly 0/4. On synthetic rankings, 0/4 exits 0, and 1/4, 3/4 and 4/4 exit 1.2b037a4d):host_receipts.py recordran in a temporary detached worktree whose HEAD equalledorigin/main8c7b7f3b. The branch's committedmodel_card_check.pyandpreregistration.txtwere copied in at the same paths, and the fifth command prints their sha256 (c6ecc30a…,70aca9ee…). The temporary worktree was removed withgit worktree remove.--supersedes nativestack-5975wx-20260925--vllm--use--20260925(the Record the nativestack-5975wx-20260925 WSL2 workstation: measured profile and 21 host receipts #231 original). Because the withdrawn file had leftevidence/hosts/,recordgave it the next free generation, which is-2again. The withdrawn README explains the reused id./version0.25.0 plus unit, GPU and pin;/v1/models; the backup ranking;Ubuntu 24.04.5 LTS, the WSL2 kernel andWSL version: 2.7.13.0(from/mnt/c/Windows/System32/wsl.exe --version;wsl.exeis not on this distro's PATH);hf cache verify(15 files atc0c9fea) and its altered-file control (exit 0, then exit 1);/v2/embed4/4, max |Δ| 0.0012 to the card only;/v1/embeddings4/4, max |Δ| 0.0005 to the laptop run only;0/4,control_as_expected true.qualified_modelsbars say which run was compared with which baseline.preregistration.txt(written 14:34:49Z) came about 3 minutes before the first recording (14:37:37Z). According to that session's local tool log, its only earlier contact with the service was a one-request/v2/embedroute probe at 14:34:37Z that printed only the HTTP status. The checks were rehearsed at 14:35:24-14:36:13Z, after the preregistration. This re-recording also ran one rehearsal before recording, and every result was known in advance.qualified_modelsentry is kept. The matrix's vllm row no longer shows the withdrawn dissent, and the grand list's "Qualified local models" row points at the new receipt.The laptop's ai-memory hybrid-retrieval bar still cannot be rerun here. Its corpus is private and sealed, and its winning arm needs
max-model-len 8192, while this server runs 4096. The receipt qualifies the weights at example level on this runtime and GPU, not the ai-memory embedder configuration.Step 5: ai-memory 2.4.0 review (read-only), corrected in
60e9adeb.install-hooks --applywith explicit--agent,--config-fileand--server-url http://127.0.0.1:49474, for Claude Code (~/.claude/settings.json) and Codex (~/.codex/hooks.json). It keeps this host's capture choices: neither hook set carries--capture-assistanttoday, and a re-run without it removes the flag. It notes that 49374 is another WSL distro's default on this machine.adoption/templates/claude.settings.template.json, whose eight hook commands hardcodetools/ai-memory-2.3.2.720e294b, and Adoption hygiene: native Claude Code pin is a floor (2.1.281), ai-memory assistant capture opt-in, ignore Claude Code local state #159 (83b6f87b) made assistant capture opt-in.mcp-bridgeuses. GHSA-33f5 affects OAuth discovery, which 2.3.2 does not enable; this was checked against its rmcp feature lists.%USERPROFILE%: the fallback is not Windows-only (Publish first-pass landscape catalogs and retained web research #804 reads it on every platform).release/2.5.memory_briefingpinnedlist (Document Codex code-navigation parity and native F9 fixes #780) andmemory_statusevidence_rows.Local commands run (fix round)
Python checks ran as
uv run --no-project --python 3.13 --with jsonschema --with pyyaml python ….core.hooksPathread the relativescripts/git-hooksbefore everygit commit, and the pre-commit gitleaks scan reported "no leaks found" on each one. The rebase onto8c7b7f3breplayed commits without the hook, but every one of them had already been scanned when it was committed. The full test suite was not run.Decision record
docs/decisions/2026-09-25-ai-memory-2-4-0-release-review.mdcovers step 5. Steps 1-3 record host evidence only: they select no winner, record no verdict and flip noplatform_status.Host evidence
python3 scripts/host_receipts.py validatepasses (44 receipts). Everycatalog_revisionunderevidence/hosts/in this PR is onmain.-2has an independentindependent_sessionagree.-2needs a fresh independent review. It carries only the recorder's self review. The recorder identity (7d328d4b…) is refused as a reviewer. A separate Claude Code session, a Codex session or a person should check the four points indocs/contributing-evidence.mdstep 8 and append a review with--kind independent_session,codex_laneorhuman. The withdrawn recording's review does not carry over.platform_statuschange is made from a host receipt alone.Residuals
b6e6e649on this branch. A later rebase would leave that sha reachable only through this PR's history, so prefer merging as is. A local merge with3f267b5cpassed all validators.…-2. The withdrawn copy is kept under a.withdrawn.jsonname inevidence/artifacts/, and the README there tells the two apart.-2claim also names "Ubuntu 24.04.5 / WSL 2.7.13" without its own command. The reviewer noted this, but the receipt is kept exactly as recorded with itsagree. The vllm receipt's fourth command now prints both values on the same host.model_card_check.pyandpreregistration.txtare not incatalog_revision8c7b7f3b. They were copied in from this branch, and the receipt prints their sha256.main.Checklist
permissions: contents: read. No workflow changes.hf cache verifyran withHF_HUB_DISABLE_IMPLICIT_TOKEN=1. Hook configuration was inspected only for flag names and the server URL.🤖 Generated with Claude Code