The vendored draughtsman stamp names the commit that landed, 0898967 - #669
Merged
Merged
Conversation
syncytium2
pushed a commit
that referenced
this pull request
Sep 19, 2026
… report does not say so Found by the session that wrote #669, tracing where its own wrong claim came from — the useful half of that story. murderboard_freshness.sh caches the resolved upstream HEAD per family in the git common dir for TTL seconds, default 43200. --refresh is the only bypass. The verdict line names the cached sha as "upstream" without marking it as cached, so a session can reason about a repository state that stopped existing hours ago. That is what happened: the cache held a draughtsman sha written before draughtsman #1 merged. The gate guards the behind-cache direction and self-tests it, so a consumer stamped at or after the cached sha is not accused. But "provably at-or-ahead of a twelve-hour-old sha" is weaker than "current", and nothing in the output separates them. The window is exactly the one the gate exists for: upstream merges, a session re-vendors the same day and checks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017hQX6iESxBsQk7Jan875e3
syncytium2
added a commit
that referenced
this pull request
Sep 19, 2026
…eam answer can be twelve hours old (#670) * The vendor freshness gate is advisory and nothing runs it — and #669 describes it wrongly Two things, one subject. The gate: tools/check_vendor_freshness.sh checks four vendored families against their upstreams, and a grep of the tree finds it named only in prose — CLAUDE.md, the boards, DEPLOY_HOLD, four todos, a sapper note — and in no workflow, test or hook. It runs when a session remembers to type it. That is worth naming because the failure it exists to catch already happened: third_party/draughtsman/ sat pinned at cb7fc2a for three days while the upstream had fixed a mis-routed edge, and the front page published the bad figure with nothing red. The todo records why wiring it into CI is not a one-liner — two private upstreams and a machine-local clone path — and lists the candidates. The misreading: #669, merged today, says in its body that the gate compares each family file with the last upstream commit touching that file, and concludes the draughtsman family will read stale permanently. Neither holds. There is no per-file history lookup in murderboard_freshness.sh; the first listed file supplies one stamp for the family, the others are reported only when they disagree with it, and that stamp is compared against upstream HEAD. A family going stale when its upstream moves is the gate working. A merged PR body cannot be unpublished, so the correction is filed where a later session reading #669 will meet it. Also recorded: #669 was opened and merged two minutes apart, before CI finished on a branch whose suite takes two hours. Three stamp lines over a byte-identical package, so nothing broke — but merge_when_green.sh exists to refuse exactly that, and the API route goes around it. An INDEX row now points at the gate, because there was none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017hQX6iESxBsQk7Jan875e3 * The freshness gate's upstream answer can be twelve hours old, and the report does not say so Found by the session that wrote #669, tracing where its own wrong claim came from — the useful half of that story. murderboard_freshness.sh caches the resolved upstream HEAD per family in the git common dir for TTL seconds, default 43200. --refresh is the only bypass. The verdict line names the cached sha as "upstream" without marking it as cached, so a session can reason about a repository state that stopped existing hours ago. That is what happened: the cache held a draughtsman sha written before draughtsman #1 merged. The gate guards the behind-cache direction and self-tests it, so a consumer stamped at or after the cached sha is not accused. But "provably at-or-ahead of a twelve-hour-old sha" is weaker than "current", and nothing in the output separates them. The window is exactly the one the gate exists for: upstream merges, a session re-vendors the same day and checks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017hQX6iESxBsQk7Jan875e3 --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stamp only, in three lines. draughtsman #1 was squash-merged as
0898967, so18b4453, the commit #660 vendored at, is not on draughtsman's main. The vendored package is byte-identical to0898967.⚠ Not on
main: this targetstune-bench-comparison, like #660.Correction, 2026-09-19. An earlier version of this description said
tools/check_vendor_freshness.shcompares each family file with the last upstream commit touching that file, and that the family therefore reads stale permanently. That was wrong. The gate compares the family's one stamp with upstream HEAD (gh api repos/<slug>/commits/main) and reports any family file whose stamp disagrees with the first. Theupstream: 5705c46I saw was a cached answer:.git/murderboard-head.syncytium2-draughtsman.cache, with a 12-hour expiry, was written before draughtsman #1 merged. Live upstream HEAD was91d5bf5. What holds is narrower: nothing runs the gate. It is referenced only in prose, and not in.github/,tests/or.githooks/.🤖 Generated with Claude Code