bassclef
What's new

Releases

What each bassclef release changed for adopters. Newest first.

Use this when

You want to know what shipped in the release your machine is on. Or you want to see whether a version bump is worth taking. Each entry names the cures, the tickets that surfaced them, and the discipline anchors that kept the change adopter-safe.

Skip this when

You are new to bassclef and want to install. Head to the install page. This page is for adopters already running.

v0.45.0 — 2026-09-18

Seven adopter cures from bassclef-cli sessions plus one release pipeline fix. Each cure fires only under the failing shape it fixes. Adopters not hitting the failure see no change.

Adopter cures (Phase B)

  • Fresh-install guard on the orientation gate. A truly cold repo no longer shows the red BLOCKED banner. New library lib/fresh-install-check.sh reads for no commits and no SESSION_LOCK. The gate still fires when docs/whereami.md or a goal doc exists — that means you have started orienting. Sources bassclef-cli#102.

  • BASSCLEF_DIR probe order. New library lib/bassclef-dir-resolver.sh walks four candidate paths in order: peer checkout, $HOME/bassclef, bundled, $CWD fallback. Prior two-line resolver lost the bundled path. Sources bassclef-cli#105.

  • Clone-failure classifier names the real cause. New library lib/clone-failure-classifier.sh reads git clone stderr and picks one of four causes: auth, visibility, network, unknown. Each cause gets its own hint. Before this change every failure banner said "Set up GitHub auth" even when the real cause was a private repo you cannot see. Auth hint now reads: Optional: set up GitHub auth to unlock full-tier sync — run: gh auth login. Sources bassclef-cli#106.

  • textstat warning fires once per session. Prior behavior fired the fallback warning once per prompt. plain-english-steering.sh now writes a per-session marker under $HOME/.claude/state/sessions/<id>/textstat-warned. Sources bassclef-cli#107.

  • Fresh-install guard on abrupt-stop recovery. A cold repo no longer shows the "ABRUPT STOP DETECTED" banner. Running bassclef init for the first time skips the recovery banner for a session that never existed. Sources bassclef-cli#108.

  • compare_wirings normalizes guarded shape. The jq filter in .claude/hooks/_lib/wirings.sh strips [ -f "path" ] && prefix and || true suffix before diff. Adopter settings using the guarded form no longer report as missing. Empty banner suppressed via a missing | length > 0 guard. Sources bassclef-upstream#1742.

  • Drift-check trigger extension. bassclef-lite-manifest-drift-check.yml triggers extended to include lib/** and scripts/build-adopter-tree.sh. Prior triggers missed edits to lib files that ship at lite tier.

Adopter cures (Phase A)

Two session-start signals that went silent for adopters at operator install now surface.

  • session-reflection.d/80-hook-heartbeat-check.sh — probes the bundled standards/ path first, then falls back to $BASSCLEF_DIR/standards/. Before this change the fragment silent-returned at operator install where $BASSCLEF_DIR resolves to $HOME with no standards/. Adopters never saw stale-hook banners.

  • session-reflection.d/81-hook-manifest-staleness.sh — same probe pattern for both the manifest read and the .claude/hooks/ directory walk. Restores the "new hook landed but manifest doesn't list it" signal for adopters at operator scope.

  • Both fragments declare # install-class: dual per the install class discipline in standards/hook-install-class.md.

Release pipeline

  • Release PR body auto-populates. New helper lib/build-release-pr-body.sh reads docs/release-notes/v<SEMVER>.md and injects it as the PR body Summary. Prior release PR bodies shipped a template stub when nobody amended them. Sources bassclef-upstream#1614.

  • SESSION_LOCK write guards .claude/ dir. session-reflection.sh creates .claude/ before writing SESSION_LOCK. Adopters in repos without a pre-existing .claude/ no longer hit "No such file or directory" on session start. Sources bassclef-upstream#1730.

New hook at lite

session-reflection.d/91-npm-version-drift.sh — a session-reflection fragment that ships at lite tier and warns when your installed @thebassclef/lite version drifts from the pinned substrate. See the hooks catalog for the full list.

Discipline anchors

  • ADR-056 D3 — bundled-path-first probe (all seven cures follow this pattern)
  • ADR-058 — install-class dispatch (Phase A hooks declare dual)
  • ADR-031 — we don't break adopters (all changes fire only under the failing shape)

Source

Full release notes at bassclef v0.45.0 on GitHub.

On this page

© 2025–2026 Sunjay Pandey·Privacy·Apache-2.0 code