chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore(vendoring): move the t3code pin to the fork commit actually checked out - #291

Merged
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit
Aug 31, 2026
Merged

chore(vendoring): move the t3code pin to the fork commit actually checked out#291
pseudoseed merged 1 commit into
mainfrom
chore/250-evidence-fork-commit

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Unblocks the shared suite for every builder on this machine. pin.json named 2f64a1b0ee2b while the fork checkout has been at 26b4c2dc09f0 since #272's sidebar change landed there, so criterion 8b, the kill test and t3-server.mjs verify were red for everyone.

Why it is not the one-file fix it looks like

Updating only codev/research/250-criterion-8b-evidence.json swaps one red test for another:

  • tools/t3-server/collect-spec-250-evidence.mjs:74-79 fails STALE_RUN when the criterion 8b or hierarchy wire evidence names a fork commit the pin does not; line 81 does the same for the rebase drill's forkHead.
  • packages/codev/src/__tests__/spec-250-evidence-collector.test.ts:95 runs that collector with --check against the real repository tree and requires exit 0.

The pin and the three runs that describe it are one fact and move together.

What is here

tools/t3-codegen/REFRESH.md steps 3-8, minus nothing.

pin.commit / commitDate26b4c2dc09f0. upstreamBase untouched — upstream has not moved
regenerated artifactsbyte-identical apart from the sha, which is what a Sidebar-only fork commit should produce: the pinned closure is packages/contracts/src and nothing there changed. 0 unrepresented
criterion 8bre-run, passed
hierarchy wirere-run, 8 of 8
rebase drillre-run, still conflicts on the same 3 files
upstream movementunchanged — 2 undecidable, 3 source-only
patches35, re-exported, because they are cut against pin.commit

250-acceptance-evidence.md gains a note naming which prose rows still describe an earlier fork head and were not re-run. Rewriting a commit inside a historical record without re-running it would turn a record into a claim.

Verified on this branch before opening

  • node tools/t3-server/t3-server.mjs verify → exit 0, both identities
  • node tools/t3-server/collect-spec-250-evidence.mjs --check → exit 0
  • spec-250-vendoring-identities.test.ts + spec-250-evidence-collector.test.ts83 passed

Refs #272, #250.

🤖 Generated with Claude Code

…cked out
`pin.contractSource` is `fork`, so `pin.commit` is not a label — it is the commit
the vendored contract was generated from, and three separate guards compare live
state against it. The fork checkout has been at `26b4c2dc09f0` since issue #272's
sidebar change landed there, while `pin.json` still named `2f64a1b0ee2b`. That gap
is what turns two suites red for every builder on this machine:
- `spec-250-vendoring-identities.test.ts:1215`, "describes the fork commit that is
actually checked out", compares the criterion 8b evidence against
`git -C $T3CODE_FORK_ROOT rev-parse HEAD`.
- `t3-server.mjs verify` exits 1 with `FORK_AHEAD_OF_CONTRACT`.
**Why this is not the one-file fix it looks like.** Updating only
`250-criterion-8b-evidence.json` swaps one red test for another:
`collect-spec-250-evidence.mjs:74-79` fails `STALE_RUN` when the criterion 8b or
hierarchy wire evidence names a fork commit the pin does not, line 81 does the
same for the rebase drill's `forkHead`, and
`spec-250-evidence-collector.test.ts:95` runs that collector with `--check`
against the real repository tree and requires exit 0. The pin and the three runs
that describe it are one fact and have to move together.
So this is `tools/t3-codegen/REFRESH.md` steps 3-8, minus nothing:
- `pin.commit` / `commitDate` moved. `upstreamBase` is untouched — upstream has
not moved, and `classify-churn --upstream-movement` reports the same 2
undecidable and 3 source-only commits it did before.
- Regenerated. The output is byte-identical apart from the sha, which is what a
Sidebar-only fork commit should produce: the pinned closure is
`packages/contracts/src` and nothing there changed. Checked rather than assumed.
0 unrepresented, so nothing Codev consumes lost its schema.
- The four evidence runs re-run against the new head, because REFRESH.md is
explicit that this is the step that gets forgotten — a fork commit touching no
closure file changes nothing but a sha, so regeneration looks like the whole job
while the acceptance evidence goes on describing the previous fork. criterion 8b
passed; hierarchy wire 8 of 8; the rebase drill still reports `conflicts` on the
same 3 files; `collect --check` exits 0.
- 35 patches re-exported, because they are cut against `pin.commit` and exist to
be read by a reviewer without the private repository.
`250-acceptance-evidence.md` gains a note naming which prose rows still describe
`3786b840e1a4` or `2f64a1b0ee2b` and were **not** re-run. Rewriting a commit
inside a historical record without re-running it would turn a record into a claim.
Verified on this branch before opening: `t3-server.mjs verify` exits 0 on both
identities, `collect-spec-250-evidence.mjs --check` exits 0, and
`spec-250-vendoring-identities.test.ts` + `spec-250-evidence-collector.test.ts`
are 83 passed.
Refs #272, #250.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@pseudoseed