chore(library): backfill 2 new modules + cloudflare CF Pages source-repo trap from local dogfood#19
Merged
Merged
Conversation
…po trap from local dogfood
Three local-only experiences sunk back into the public library after the
maintainer's `~/.trove/` outpaced `library/`. All three are useful for
external users, privacy-cleaned, OSS-ready.
1. volcengine-speech (new module, tier: verified)
- ByteDance Seed-ASR 2.0 Standard — batch audio transcription with
utterance + word-level timestamps. The diagnostic / QA companion to
Seedance (audio-on video gen) and to CosyVoice TTS (dashscope module)
- Live dogfood discovery sunk: `volc.seedasr.auc` works on 2026-05+
accounts; legacy `volc.bigasr.auc` returns `45000030 not granted` on
the same account. Stale tutorials still suggest the bigasr form
- Module body: 10 Critical Constraints, 2-step async pattern (submit →
poll same X-Api-Request-Id), credentials separate from ARK / TOS,
audio limits (8h, mp3/wav/m4a/...), pricing per-audio-minute model
- Cross-module recipe: Seedance audio output → TOS public-read upload
→ Seed-ASR → diff against target subtitle text. Surfaces 5 QA labels
(asr_ok_text_match / asr_ok_text_mismatch / video_incomplete /
asr_unreliable / asr_no_speech) for content pipelines
- Comparison vs alternatives: Whisper / Deepgram / AssemblyAI
2. aitoearn (new module, tier: partial)
- One-call multi-platform social publishing MCP — 14 channels (TikTok /
YouTube / X / Instagram / Threads / Pinterest / Facebook / LinkedIn /
Bilibili / Douyin / Kwai / Xiaohongshu / WeChat Channels / WeChat Gzh)
- Auth: x-api-key, env-scoped (.ai vs .cn), OAuth relay borrows the
vendor's official platform dev credentials so you skip per-platform
developer-account applications
- 8 Critical Constraints + full MCP tool inventory + per-platform
publish recipe + risk isolation pattern (mode: relay/self-oauth/
hybrid) + Docker self-hosted deployment + pricing reality check
($0 currently for publish + data-cube; AI Create marked up)
- last_verified: partial — auth + endpoint reachability confirmed; no
real publish smoke yet (deferred until first sacrificial-account
OAuth, parallel to kling / dashscope tier shape)
- Privacy-cleaned from local: removed "the `growth` module" private
reference, fixed `trove inject` mention (trove deliberately doesn't
ship an `inject` command per SPEC §0) to point at the actual MCP
config-merge flow
3. library/cloudflare/module.md: append CF Pages source-repo switch trap (+83 lines)
- Real dogfood discovery from maintainer's local: `PATCH
/pages/projects/{name}` accepts `source.config.repo_name` in body,
returns success: true, but does NOT update the source field
(silent read-only). `build_config` PATCH works fine — only `source`
is silently ignored. Dashboard has no "change source / disconnect"
button either
- Only viable path: delete + recreate. Section documents the exact
ordered sequence: probe → unbind custom domains → delete project →
CREATE with new source → re-bind domains → trigger first deploy (CREATE
doesn't auto-deploy). Downtime window = SSL re-provisioning (~3–10 min)
- Was sitting unstaged in ~/.trove/cloudflare/ since earlier sessions;
now retro-fit into library version preserving the current
`last_verified` (no rollback to the older trove.roboz.dev mention)
Library bookkeeping
- 22 → 24 modules
- 5 prod · 15 verified · 2 partial → 5 prod · 16 verified · 3 partial
(volcengine-speech enters at verified, aitoearn at partial)
- Site module grid: 2 new category rows added — `speech · transcription`
(volcengine-speech) + `social-publishing` (aitoearn). Single-item rows
for now; honest representation of category structure
Privacy
- volcengine-speech: stripped 5 private references in local original —
project name, episode IDs, user.uid, sample transcribed dialogue
text from a creative project's screenplay. Replaced with generic
placeholders and shape descriptions
- aitoearn: 2 lexical fixes (`growth module` → generic, `trove inject`
→ actual trove MCP config-merge flow)
- cloudflare addition: already uses generic `my-site`, `example.com`,
`new-org`, `new-repo` placeholders — no stripping needed
- Pre-commit hook PRIVATE_RE scan: clean on staged diff
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
Three local-only experiences sunk back into the public library. Maintainer's `~/.trove/` had outpaced `library/` — this PR catches up.
What lands
1. New module: `volcengine-speech` (tier: verified)
ByteDance Seed-ASR 2.0 Standard — batch audio transcription with utterance + word-level timestamps. The diagnostic / QA companion to Seedance (audio-on video gen) and CosyVoice TTS.
Live dogfood discovery sealed in: `volc.seedasr.auc` works on 2026-05+ accounts; legacy `volc.bigasr.auc` returns `45000030 not granted` on the same account. Stale tutorials still suggest the bigasr form.
10 Critical Constraints + 2-step async API + cross-module recipe (Seedance → TOS → Seed-ASR → diff target text) + 5 QA labels for content pipelines + comparison vs Whisper / Deepgram / AssemblyAI.
2. New module: `aitoearn` (tier: partial)
One-call multi-platform social publishing MCP — 14 channels (TikTok, YouTube, X, IG, Threads, Pinterest, Facebook, LinkedIn, Bilibili, Douyin, Kwai, Xiaohongshu, WeChat Channels, WeChat Gzh). OAuth relay borrows vendor's official platform dev creds so users skip per-platform developer-account applications.
8 Critical Constraints + MCP tool inventory + per-platform composing recipe + risk-isolation pattern (mode: relay / self-oauth / hybrid) + Docker self-hosted deployment + pricing reality check.
`last_verified: partial` — auth + endpoint reachability confirmed; no real publish smoke yet (deferred until first sacrificial-account OAuth, parallel to kling / dashscope partial-tier shape).
3. `library/cloudflare/module.md` +83 lines: CF Pages source-repo switch trap
Real dogfood from local: `PATCH /pages/projects/{name}` with `source.config.repo_name` returns `success: true` but silently doesn't update. Dashboard has no "change source / disconnect" button either. Only viable path: delete + recreate. Documented as an ordered runbook with the exact API calls (probe → unbind domains → delete project → CREATE with new source → re-bind domains → trigger first deploy).
Library bookkeeping
Privacy audit
Verification
🤖 Generated with Claude Code