Skip to content

CL-6497: unblock tenant seeding and check tool-package pin drift - #230

Merged
TheGreatAxios merged 3 commits into
mainfrom
cl-6497-pin-guard
Aug 21, 2026
Merged

TheGreatAxios merged 3 commits into
mainfrom
cl-6497-pin-guard

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Fresh tenant seeding fails on main with StaleToolPackageError. CL-6477/CL-6480 changed packages/agent-directory-tools/src without bumping the package manifest (still 0.0.3) or the hand-maintained pin at workflows/assistant/src/index.ts:47. Tool resolution keys on name@version, so the pin kept resolving to a version whose contents had moved underneath it, and every new tenant 500s at seed time.

Bumps the package to 0.0.4 and its pin to match, which unblocks onboarding.

The guard

This is the fourth pin-drift incident (@corbits/connections-tools in #165, the assistant's hand-maintained pin in #168, @corbits/mcp-tools during CL-6456, now this one), so the durable half of the change is a check: every { name, version } pin literal in the tree must name the version that package's own package.json carries, or the pin can never resolve. A pin naming a package with no workspace manifest at all is also a violation. Wired into bun run check and CI alongside the other scripts/checks/ guards.

Verified against the live drift: with the pin reverted to 0.0.3 the check fails with the file, line, both versions, and the fix; with it at 0.0.4 it passes across 21 pins in 756 files.

What this does not catch

It would not have caught this incident. PR #222 left the manifest and the pin both at 0.0.3, so they agreed with each other while the src/ behind them had changed. Catching that needs a merge-base diff (src/ touched without a version bump) rather than a snapshot of the working tree, and it is filed as the follow-up half of CL-6497 — that half is the mode that has now bitten us twice, so it should land next rather than being treated as optional.

CL-6477/CL-6480 changed the package's src without bumping its manifest or
the hand-maintained pin in workflows/assistant. Tool resolution keys on
name@version, so the unchanged pin resolved to a version whose contents had
moved underneath it and every fresh tenant seed failed with
StaleToolPackageError.
…json does not carry

Every tool-package pin is hand-maintained and nothing ripples a version bump
out to the workflows that pin it. This is the fourth drift incident; the
static half is now checked at merge time.
@TheGreatAxios
TheGreatAxios merged commit b5df222 into main Aug 21, 2026
2 checks passed
@TheGreatAxios
TheGreatAxios deleted the cl-6497-pin-guard branch August 25, 2026 15:29
Sign up for free to 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