feat(release,docs,ui): auto-release on merge + self-enforcing docs/diagram/UI guards#50
Merged
Merged
Conversation
…agram/UI guards Co-Authored-By: Claude Opus 4.8 <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.
What & why
The same complaints kept recurring every cycle — docs too technical/outdated, diagrams looking bad, landing page and statusline looking unpolished, releases needing a manual button. Root cause: nothing enforced any of them, so they silently rotted between releases. This change fixes each one and adds a guard so it can't come back.
Auto-release on merge. A push to
masternow cuts the release itself (bump → tag → npm publish → GitHub Release). Achore/docs-only merge skips cleanly (bump.mjs autoexits3); afeat/fix/perf/breaking change releases. Empty[Unreleased]is synthesized from commit subjects (with a verbatim fallback so a breaking change in a non-conventional squash title never crashes rotation). Manual Actions → Bump version dispatch stays available.Self-enforcing docs.
forge docs checkgains three reconcilers for the exact blind spots behind the complaints:checkDiagrams— everymermaidblock across all Markdown must carry the branded theme and use<br/>(never a literal\n); opt out an intentional example with<!-- docs-check-ignore -->.checkModelTiers— every$in/$out per M tokprice must matchsrc/model_tiers.json.checkBenchmarks— every boldedN msclaim in the README must be a valuereports/benchmarks.mdactually measured.Diagrams & docs. Fixed two off-brand/
\n-broken mermaid diagrams, regrouped the 13-node pipeline so it reads at GitHub width, and re-layered the README/GUIDE openings into plain language (they = f(x)/ join-semilattice math moved to parentheticals).Unified UI. Landing + status pages now share one warm-ember palette and a system font stack (dropped the phantom Inter webfont that never loaded); fixed the truncated/empty status "Latest changes" list; restyled the terminal statusline (one accent, consistent
·separators, subtle context warning).test/pages.test.jsenforces token parity, a non-empty list, no phantom font, and metric-vs-benchmark agreement.Two adversarial review passes ran before push; both surfaced real defects (auto-release empty-body crash, two docs-check false-positive vectors) — all fixed with regression tests.
Checklist
npm testpasses (645 tests, 0 fail)npm run checkpasses (Biome lint + format)feat:)CHANGELOG.mdupdated under## [Unreleased]Risk & rollback
workflow_dispatch-only, and the new docs-check reconcilers are additive (removing them only relaxes CI).Extra checks (tick if applicable)
npm run typecheckpasses🤖 Generated with Claude Code
Generated by Claude Code