chore: release get-tbd v0.8.1 - #263
Merged
Merged
Conversation
Patch release covering the guideline work merged since v0.8.0: the Rust guideline family, four language-neutral cross-cutting documents, and the guideline routing change that shrinks the always-read core from nine documents to one. No format change (repositories stay on f08) and no migration step. Lockfile is byte-identical to v0.8.0. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013eaEeT9CYT5TDyNGAw95t9
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| Secrets | Aug 26, 2026 6:19a.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
Coverage Report for packages/tbd
File Coverage
|
||||||||||||||||||||||||||||||||||||||
classifySyncError matched HTTP status codes with bare patterns (403, 401, 5\d\d) that hit digits anywhere in the message, including the repository path. A missing-remote push failure under /tmp/tryscript-05895p classified as a 5xx server error because 5\d\d matched the 589 in the directory name; the identical failure elsewhere classified as unknown. This is not cosmetic. A permanent classification auto-saves to the outbox and reports the push as policy-blocked, so a path containing 403 changed what sync did, not just what it printed. Status codes are now matched only where git reports one (HTTP 500, returned error: 403, status=401), requiring a boundary on both sides. The two sides differ deliberately: a leading '.' means the digits belong to a longer number, while a trailing '.' is sentence punctuation. Found by release validation for v0.8.1: tests/cli-sync.tryscript.md classified its push failure differently between runs on the temp directory name alone. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013eaEeT9CYT5TDyNGAw95t9
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.
Patch release covering the guideline work merged since v0.8.0.
No format change (repositories stay on
f08) and no migration step.The
## 0.8.1CHANGELOG section is the release body —release.ymlextracts it at tagtime. Verified:
extract-changelog.ts 0.8.1returns 104 lines, not theRelease vX.Y.Zfallback.Version choice
Patch. The payload is bundled guidance content (12 new guideline documents, one new
shortcut) plus the routing change that decides which of them an agent loads. No new CLI
capability and no behavior users program against, so
patchperpublishing.md §Step 2.
Release gates
pnpm testpnpm lint:checkpnpm format:checkpnpm release:verifypnpm qa:upgrade-packagepnpm check:package-ageeca14a9econclusion=successSupply chain (§Step 3)
pnpm-lock.yamlis byte-identical to v0.8.0(
79c2ed0861420defbd5214fab007d19b5087c68949f2ea23a7767a5a74598055), so the resolveddependency tree is unchanged and there is nothing to classify.
pnpm audit --prodreports no runtime advisories. The 32 open advisories are alldev-only, reached through
vitest/viteand other build tooling not shipped to users;tracked in
tbd-ujyy,tbd-gx3a,tbd-o2xtrather than blocking.The only manifest change since v0.8.0 is a root
package.jsonscript addition(
check-action-pins.mjsinlint:check) — no dependency edit.Downstream proof (§Step 4)
This release changes what
setup --autogenerates, so the packed candidate wasexercised in a first-party downstream checkout.
get-tbd-0.8.1.tgz, packed withTBD_VERSION_OVERRIDE=0.8.1; installedbinary reports
0.8.1.jlevy/tryscript@1ffbe8f, starting at tbd0.7.1(f08).tbd setup --auto→ expected diff only: version stamps0.7.1→0.8.1, the 12 newguidelines and
review-code-rustregistered indocs_cache, regenerated agentsurfaces, refreshed
ensure-gh-cli.sh.setup --autoleaves all four generated surfacesbyte-identical (
sha256sum -cOK).pnpm ci:quality,pnpm build, andpnpm testall pass on the upgradedtree.
Note:
tbd_upgradesappends one entry persetup --autorun, so three runs left three0.8.1entries. Pre-existing behavior — no code in this release touches that path.A defect found during validation, fixed on this train
The first CI run failed
Coverage & Lint— 6tests/cli-sync.tryscript.mdcases, whileall four Test jobs passed. (
pnpm testruns vitest only; the tryscript suites run onlyunder
test:coverage— seetbd-h0mu.)Root cause, not a flake:
classifySyncErrormatched HTTP status codes with bare403,401, and5\d\dpatterns that hit digits anywhere in the message, including therepository path. The run's temp directory was
/tmp/tryscript-05895p, and5\d\dmatched the
589inside it, so a missing-remote push failure classified as an HTTP 5xxand printed the transient-failure advice instead of the unknown-failure advice.
This is a real bug in v0.8.0, not a test artifact.
errorType === 'permanent'callshandlePermanentFailure(), which auto-saves to the outbox and reports the push aspolicy-blocked — so a repository path containing
403changed whattbd syncdid.Fixed in e4fdf0d, red-green: the two new assertions failed against the old classifier
before the change. Status codes now require a boundary on both sides, asymmetric by
design (a leading
.means the digits belong to a longer number; a trailing.issentence punctuation). Added as a genuine
Fixesentry in the CHANGELOG.publishing.md§Step 0 prescribes exactly this: fix the defect on the same train andrestart candidate validation, rather than publish around it.
Re-validated after the fix:
pnpm test2449 passed · full tryscript suite 1101passed, 0 failed (CI's failing run was 1095/6) ·
pnpm lint:check·pnpm format:check·
pnpm release:verify·pnpm qa:upgrade-package4/4.Notes on what is deliberately not in the release notes
The
bin.ts/cli.tsmove fromprocess.exit()toprocess.exitCodewith an explicitstream-error policy. I tried to reproduce a user-visible difference against published
0.8.0(failing command with bulk stdout piped to an early-closing reader; the same with2>&1; bulk stderr with a closed stderr pipe) and exit codes and output were identicalin every case. Per
release-notes-guidelines, a defect I cannot show shipped is not aFixes entry, so it is omitted rather than claimed.
Not blocking, but worth knowing
tbd-s4jkis the only open P0 bead and is stale — thetrackingRefspecfix itdescribes landed in
191b584e, before v0.8.0. It should be closed.train: it edits
release.yml, and this is not the moment to change the publishingworkflow. Merge after the tag.
After merge
Main CI must reach
conclusion=successon the merge commit itself beforev0.8.1istagged. The tag push is what publishes — a merged-but-untagged release ships nothing.
🤖 Generated with Claude Code
https://claude.ai/code/session_013eaEeT9CYT5TDyNGAw95t9