Repository navigation
wiki: describe the Brain snapshot echo as what releases actually carry - #62
Conversation
snapshot.generated_at and snapshot.pin are copied from cells/manifest.json. In offline-replay releases (production since 2026-10-04) generated_at is the sha256: replay generation id and every Mathlib-family prov pin is a sha256: digest of the sealed source input, so pin falls back to that digest. The release carries no build timestamp and no mathlib4 commit to expose instead. The MCP initialize instructions said 'the brain build time and the Mathlib rev'; they, the /brain/api reference and the code comments now describe both fields as opaque identifiers (ISO timestamp / git commit only in older releases). Values are unchanged. A replay-shaped fixture pins the echo.
The live pin is the concept-graph family's sha256 dataset revision, whose inputs include WikiLean annotations, Wikidata, TheoremGraph and curated grounding alongside the Mathlib tree, so it changes when Mathlib does not; current-profile releases can still report a date. The MCP instructions, the /brain/api reference and the code comments now say so, without calling it a Mathlib source digest or contradicting themselves. The replay test now uses a real offline-replay release (no created_at) with the live prov row order.
- Equal pins do not mean equal build inputs, and pin is not a mathlib4 commit: the only git-shaped value ever seen (bf3266149cda603f) is a 16-hex truncation of TheoremGraph's statement_formal.csv sha256. Say so, and tell agents to compare the fields verbatim, never parse them. - pin is described as what the code returns (the first git-shaped, else the first mathlib/kerodon/stacks row's pin), with the concept-graph digest as the current row order, not a definition. - brain-current-v1 generated_at is an ISO 8601 UTC build timestamp, and that profile is still built, not 'older'. - Tests pin the row-order fallback and the shape preference.
|
Review status: merged in Update 2026-10-14 (re-checked at
Original review (2026-10-14)Independent adversarial review of Verdict: keep the values and call Required before merge
Decisions for the maintainer
Merge order: release-affecting; batch with #46, #47, #50, #52, #54, #55, #58 and the replacement for #63 before release B is built, never between build and promotion. Fixes are in progress; this comment will be updated. Posted by the WikiLean PR swarm (lead); updated 2026-10-14. |
Status review (2026-10-14): ✅ ReadyThis changes copy and comments only, and every claim checks out against the live release and the builder code. The tests pin the echo values, including the live prov row order, and the new wording. Nits
Cross-PR: once this merges, the To ship: Worker change, so it needs the next Brain release and promotion. 🤖 Automated status pass by Claude Code over all 18 open PRs (#46–#63), posted for the repo owner. An independent verifier re-checked each finding. All 18 heads were also merged and tested together in a scratch tree; the only test failure that comes from combining them is #47 × #55 (three other pairs had mechanical text conflicts). Reviewed head: |
…here - The MCP instructions and the /brain/api reference no longer describe a selection rule, row order or per-profile pin shape. They say what holds for every release: generated_at and pin are opaque provenance values of the release's inputs; compare them for equality, never parse them, and do not read them as a build time or a Mathlib revision. - docs/BRAIN-API.md, both brain-query SKILL.md copies and the snapshot echo section header say the same. The held-out-evaluation sentence now asks for release_id, which identifies the release that answered. - Tests keep the check that the old phrase is gone, assert the new wording once per surface, and drop negative checks on phrases that never reached main. The row-order case now puts a non-shaped mathlib row before the 16-hex one, so dropping mathlibPin's shape branch fails it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes pushed (2026-10-14)This addresses the two earlier reviews on this PR: all three "Required before merge" items in the PR swarm's review, plus the stale-copy and copy-vs-code nits in the "Status review (2026-10-14)" comment. What changed (all in
Verification
Not changed / still open
Merge notes
🤖 Posted by Claude Code for the repo owner. Each fix was checked by an independent verifier before it was pushed. Head: |
wiki: describe the Brain snapshot echo as what releases actually carry
…ord, README facts and the 2026-10-13 ROADMAP entry The five deploy notes no longer say a hotfix path would be a journaled promoter mode: no hotfix path exists, rollback is the only lever, and ROADMAP Waiting item 8 stays open. The activation record's operator table drops an unsourced release ID and three claims that the promoter journal records host, receipt-root and backup details (it records none), and gains a host-context row. Its snapshot sentence follows #62. README's facts table no longer says wiki/src is unchanged on main. The 2026-10-13 ROADMAP entry gets the /stats review figures and the diagnosis pointer.
…uestion by title Production's MCP instructions (built from 2eb31ba) still call generated_at and pin the build time and the Mathlib revision; the activation record now says so, and that main's opaque wording (#62) reaches production with the next release. The five hotfix-path pointers cite 'Worker-only hotfix path' in the ROADMAP's Waiting on Jack list by title, since the list renumbers. The operator table restores bfcfc912 with its likely source (added in 85c974a with the journal's final_state values) and keeps only '(the promoter journal does not record it)' in the host and backup rows. The host-context row covers both P1B boxes. The ROADMAP entry says no review tokens were recorded, not spent.
Problem
Every Brain API and MCP response echoes
snapshot:{generated_at, pin}from the release'scells/manifest.json. The MCP initialize instructions describe those fields as "the brain build time and the Mathlib rev the decls were built against" (wiki/src/mcp.ts:84-85at 37b7036). Since the offline-replay release went live on 2026-10-04, neither description holds. A liveGET /api/brain/search?q=groupreturns:generated_at:sha256:b3016dec…, which is the release'sreplay.generation_id;pin:sha256:9dbb5d68…, which is prov row 0 (source: mathlib, method: agent+oracle). That is the concept-graph family's dataset revision, a digest over the Mathlib tree and WikiLean annotations, Wikidata, TheoremGraph and curated grounding.Agents told to read these as a build time and a Mathlib revision get neither.
docs/BRAIN-API.mdand thebrain-queryskill made the same claim.Could the Worker expose the real values instead? No:
release.jsonhas nocreated_at.authority.git_commitandreducer.git_commitare WikiLean commits.audited_atis a promotion time outside release identity.sources.jsonand the cells manifest carry no mathlib4 commit.So this PR changes the description, not the values.
Change
/brain/apireference;docs/BRAIN-API.md("Release and snapshot echo");brain-queryskill copies (.claude/skills/and.agents/skills/);wiki/src/brain-api.ts.release_ididentifies the whole release.generated_atandpinare opaque provenance values of the release's inputs.docs/BRAIN-API.mdno longer says a held-out evaluation is dishonest without the snapshot. It asks evaluations to recordrelease_id, which identifies the release that answered.mathlibPin/Snapshotcode comments describe what the code does:statement_formal.csvdigest (bf3266149cda603f), never a Mathlib commit;sha256:digest, andbrain-current-v1releases return a date./brain/apiand/mcpHTML are not KV-cached; they only carryCache-Control: max-age=3600. No render-cache key is involved.How tested
npx vitest run test/brain-api.test.ts: 150 pass.mathlibPinfails that case. The previous version of the case passed under the same mutation.brain-offline-replay-v1release (nocreated_at) whose prov rows follow the live order: the concept-graph row, then attribute rows with a different digest, then TheoremGraph's 40-hex revision. It asserts the echo is{generated_at: <generation id>, pin: <first mathlib-row digest>}.npx vitest run test/mcp.test.ts: 26 pass. The initialize instructions no longer contain the old build-time/Mathlib-rev phrase and do contain the new wording.npx vitest run): 919 pass in 38 files.npx tsc --noEmit -p .passes.Risks
Copy only. One other place still describes these fields: the
/brainpage status label (data ${generated_at.slice(0,10)}, which now renders "data sha256:b301"). It lives insite/build_brain_page.pyand ships inside a frozen release.A true Mathlib commit in the echo would need the builder to emit it as a prov row, which requires a new release.
Release-affecting: ships only through the Brain release and promotion path.
What Jack must do
Nothing to configure. Decide whether to have the builder publish the mathlib4 commit, which would need a new release.
🤖 Generated with Claude Code