* fix(web): add 0.27 release entry
* test(web): cover 0.27 release entry
* fix(web): clarify 0.27 permission-timeout highlight
* docs: ban drive-by edits to web/src/data/releases.ts
Tell agents and contributors that the curated changelog is owned by
the release/web process, and stop verify-dist from instructing unrelated
PRs to patch it when npm publishes ahead of the site.
* test(web): locate curated release by version
* test(web): enforce newest-first release order
* fix(web): make web/ build standalone — stop importing the repo-root package.json
vercel --prod deploys only the web/ directory, so site.ts importing
../../../package.json (and verify-dist.ts reading it) broke every Vercel
build with ts(2307) while local builds passed.
- SITE.version now derives from latestVersion, the newest entry in
src/data/releases.ts — committed data inside web/, so builds are
deterministic and need nothing outside the directory
- verify-dist gains a best-effort npm freshness guard: fails the build
only when registry.npmjs.org reports a newer @gitlawb/openclaude than
releases.ts; unreachable registry or malformed responses skip the
check, and site-ahead-of-npm is allowed for release PRs
- verify-dist.test.ts covers the guard via injected fetch (no network)
Co-Authored-By: OpenClaude <openclaude@gitlawb.com>
* fix(web): reject leading-zero semver from the npm registry
Number() would normalize a malformed '01.2.3' to 1.2.3; require strict
semver components so malformed registry values skip the freshness check
instead of being silently coerced.
Co-Authored-By: OpenClaude <openclaude@gitlawb.com>
---------
Co-authored-by: OpenClaude <openclaude@gitlawb.com>
* feat(web): v0.26 refresh — buddy page, changelog, partners, provider catalog
- Single-source the site version from the root package.json (never stale again)
- New /buddy/ page: all 7 hero sprites rendered as animated SVGs generated
from src/buddy/pixelSprites.ts, attack descriptions, commands, hatch lore,
plus a dedicated 1200x630 OG image composed from the real sprites
- New /changelog/ page: curated release highlights 0.19 -> 0.26 from a typed
releases.ts data file
- Landing: buddy teaser section, partners strip (GitLawb, Bankr, Atomic Chat,
Xiaomi MiMo, Atlas Cloud, AI/ML API, Novita AI) with self-hosted logos,
community links, refreshed provider strip, node >= 22 fix
- Providers docs rebuilt as grouped catalog (39 providers: subscriptions,
gateways, vendors, local, custom) incl. xAI OAuth, AI/ML API, Cloudflare
Workers AI, NVIDIA NIM, Kimi K3, GPT-5.6, Opengateway free models
- Data refresh vs v0.26.0 source: 16 new slash commands, pdf skill, new CLI
flags + 10 subcommands, modelLimits/providerFallbackChain/agentRouting
settings, corrected env vars (GEMINI_API_KEY, OPENGATEWAY_API_KEY, ...)
- Nav/footer/docs sidebar link the new pages; JSON-LD breadcrumbs on both
Co-Authored-By: OpenClaude <openclaude@gitlawb.com>
* fix(web): address CodeRabbit review — flag description + dist verification
- Correct --disable-slash-commands description: the flag empties the entire
slash-command list (REPL.tsx filters all commands), not just skills; the
upstream help string "Disable all skills" is the misleading one
- Add scripts/verify-dist.ts, wired into `bun run build` (so the existing CI
web job runs it): asserts SITE.version matches the root package.json in the
rendered pages, nav exposes /buddy/ and /changelog/, every release renders
with its GitHub URL, every hero renders with its sprite asset, partner and
community links render on the landing page, and the sitemap covers the new
routes
Co-Authored-By: OpenClaude <openclaude@gitlawb.com>
* fix(web): harden verify-dist per review — empty-page guard, rendered-nav check, tests
- page() now records a failure for a present-but-empty file, so '' is only
ever returned alongside a recorded failure and skipped assertions can no
longer mask a blank page
- assert the rendered docs sidebar (dist/docs/) links every docsNav route,
not just the source data array and the landing nav
- extract pure verifyDist(dist) and add 9 fixture-based bun tests covering
missing/empty pages, lost sidebar links, missing sprites, stale partner
links, missing release URLs, and sitemap regressions; discovered by the
root `bun test` run in CI, no workflow changes needed
Co-Authored-By: OpenClaude <openclaude@gitlawb.com>
* test(web): derive the missing-sprite fixture from heroes data
Hard-coding robinhood.svg would make the test throw during fixture mutation
if that hero were renamed, instead of exercising verifyDist().
Co-Authored-By: OpenClaude <openclaude@gitlawb.com>
---------
Co-authored-by: OpenClaude <openclaude@gitlawb.com>