release(v0.2.5): 4 new modules + CF Pages trap + domain migration + site polish#20
Merged
Conversation
…gration + site polish Patch bump from v0.2.4. 8 PRs of accumulated work since the last npm publish; pure additive — no breaking changes, no behavior changes to existing modules. New modules (4) - dashscope (Alibaba Bailian / CosyVoice TTS + voice cloning + Wanx image gen; partial tier — auth + WebSocket contract verified, runtime blocked by account-funding gate) - volcengine-tos (S3-compatible object storage on Volcengine; verified tier — full E2E: bucket create → public-read PUT → public URL curl match → cleanup. The bridge for hosting Seedance / Seedream reference URLs in cn-beijing for free intra-region pull) - volcengine-speech (ByteDance Seed-ASR 2.0 batch transcription; verified tier — live submit + query passed, surfaced the `volc.seedasr.auc` vs `volc.bigasr.auc` resource-ID migration as Critical Constraint #1) - aitoearn (one-call multi-platform social publishing MCP across 14 channels; partial tier — auth + endpoint reachability, runtime not exercised pending first OAuth on a sacrificial account) Library bookkeeping - 20 → 24 modules - Tier mix: 5 prod · 11 verified · 2 partial → 5 prod · 16 verified · 3 partial (new modules joined verified+partial; tier accounting cleaned up partway through, see release notes per PR) - Site grid: 2 new category rows (`speech · transcription`, `social- publishing`) plus `volcengine-tos` added under expanded `infra · email · db · storage` group cloudflare module: +83 lines retroactive dogfood - New "换 source repo" section documenting the CF Pages silent-PATCH trap: `PATCH /pages/projects/{name}` with `source.config.repo_name` in body returns `success: true` but does NOT update the source (silent read-only). Dashboard has no "change source" button either. Only viable path: delete + recreate. Section ships the exact ordered runbook (probe → unbind domains → delete project → CREATE with new source → re-bind → trigger first deploy) Domain migration: trove.roboz.dev → trove.robozephyr.com - Brand chain now consistent end to end: npm scope @RoboZephyr ↔ site trove.robozephyr.com ↔ github.com/RoboZephyr/trove - Migration done via Volcengine TOS-style scripted approach: POST /accounts/<acc>/pages/projects/trove/domains + DNS CNAME on robozephyr.com zone → SSL active in ~1 min. Old subdomain decommissioned (CF Pages domain + DNS record both deleted) - SECURITY.md, library/cloudflare/module.md `last_verified`, site OG URL updated to new URL. SPEC §10 dogfood entries that mention the old subdomain preserved as historical record per the §10 ethos Site polish (single-file HTML, zero JS) - "What's new in v0.2.5" rebuilt: 4 card grid showcasing each new module with a real prompt users can paste into Claude Code / Codex / Cursor. Textual-form killer demo replacement - Hero `<link rel="icon">` → SVG favicon (amber rounded square + white T + path-underline mark; 514B, dark/light mode safe). Apple touch icon 180×180 PNG (2083B) for iOS Add-to-Home-Screen surfaces Infrastructure - `.github/workflows/deploy-site.yml` — auto-deploys `site/` to Cloudflare Pages on every push to main when site/** changes. Required CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID GitHub Secrets configured via `gh secret set` from local credentials. Tested twice (the second PR fixed a `bun` not-found issue by adding setup-bun@v2 step) - `bin/install.ts` --help text documents `--force` semantics: re-copies library's module.md while preserving credentials.json and any other user-added files Hook protection extended (user side) - ~/.claude/hooks/check-commit-secrets.sh PRIVATE_RE expanded; new `PUBLIC_ALLOWLIST_RE` mechanism that lets `trove.roboz.dev` / `trove.robozephyr.com` through as known-public OSS URLs while still catching bare `*.roboz.dev` / `*.robozephyr.com` subdomain leaks Verification - bun run typecheck: clean - bun run build: produces dist/cli.js - bun bin/cli.ts validate --library: 24 modules · 0 errors · 0 warnings - node dist/cli.js --version: 0.2.5 Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Summary
Patch bump from v0.2.4 packaging 8 PRs of work since the last npm publish. 20 → 24 modules (4 new), plus cloudflare module extended, domain migrated to brand-aligned URL, site polished with favicon + Apple touch icon + auto-deploy workflow.
New modules
cloudflare module: +83 lines real dogfood
New "换 source repo" section documenting the silent-PATCH trap — `PATCH /pages/projects/{name}` with `source.config.repo_name` returns `success: true` but doesn't update. Only viable path: delete + recreate. Ships the exact ordered runbook.
Domain migrated
`trove.roboz.dev` → `trove.robozephyr.com`. Brand chain now consistent: npm scope `@robozephyr/` ↔ site `trove.robozephyr.com` ↔ `github.com/RoboZephyr/trove`. Old subdomain fully decommissioned.
Site
Bookkeeping
Verification
After merge