feat: add official game audio generation client
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Task: Implement official game audio client
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260921-game-audio-client-b74d9f31
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260921-game-audio-client-b74d9f31-game-audio-client
|
||||
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260921-game-audio-client-b74d9f31
|
||||
- Base commit: d222d175000008bad5f344577679256d22a636c2
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- GA-03 offline implementation of ML-GAME-AUDIO-001: typed Main audio client, durable delivery, adapter, bundled resources/project-wide catalog, composition and focused tests/README. Preserve image generation, Data Service, local packages and selected-model Web Search. No root workspace, server, deployment or paid-provider writes.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Concurrent Task Gate PASS: bundled start exited 0; status matches this task, feature mode, owner codex, exact branch/worktree/base. Root retains three foreign untracked records. Peer records were read at registry-derived paths; planning peers are old read-only reviews/undefined records and separate WeChat diagnosis. Undefined scopes remain unknown context, not ownership authority; no concrete overlapping audio implementation decision found. Completed image delivery is a read-only prerequisite.
|
||||
- Project Context Loaded: entry/read-before-planning, planning-gate, memory-index, own record, positioning (placeholder; AGENTS/README establish actual product), current-state integrated snapshot, decision index/system overview, module map/data flow, domain rules/glossary/success criteria, relevant evidence/reflection/commitment/stale indexes and ADR-008. Approved server-side design at f6eabf253a4b4cd27f7f31fdf8e93afe21d7fcdd is the audio authority.
|
||||
- Planning Gate Passed: one optional bundled project-wide plugin; current Plugin sheet stays in Project Configuration (older /plugins design route is superseded by actual integrated routing). Main owns Works auth, exact admission, durable identity, polling and all-output delivery. Child remains empty; no partner gate, picker, new store authority, Provider credentials, remote playback URLs, second save confirmation, or local generation rerun.
|
||||
- Plan: client public HTTP contract TDD; durable pre-submit receipt/query-only recovery and sequential materialization with shared lease; adapter/manifest/static operations; composition/startup resume; focused image/Plugin regressions, typecheck/build and relevant Electron proof. No subagents.
|
||||
- External limits: no authorized paid Meowa call or production activation; real response/media samples and PG proof remain separate. Routine client compatibility floor will be 2.0.1, paired with server migration 0093; no package publication implied.
|
||||
|
||||
## Outcome
|
||||
|
||||
- GA-03 offline implementation complete. Main-only typed client uses fixed server routes, closed receipts, bounded streamed bodies, frozen account epoch and one same-body 401 refresh. Nullable hosted amounts normalize to the generic capability receipt's omitted optional field.
|
||||
- Durable intent is saved before POST; lost response uses by-operation only. Saved outputs and missing indices persist in userData. Startup/account reconnect resumes original jobs; transient download/status errors schedule query/delivery-only recovery. Definite pre-submit rejections remain not_started, while unknown post-submit failures cannot claim no charge. Shared local-project lease covers only writes/tracker, never generation/network waiting. Every output uses wx semantics in the frozen original project and no second confirmation.
|
||||
- New adapter + one official optional bundled game-audio plugin expose music full, explicit music preview, sound single/pack/variants, cancel. Native price/release/project/request authority stays in Main. Four static tool-operation mappings, project-wide parent availability and empty child scope; no new picker/store/partner gate or provider secrets.
|
||||
- Result card displays saved relative paths/MIME/bytes and loads local audio only after a click, with native controls/no autoplay. Reuses bounded project media reader through a receipt/account-owned Host route; no Provider URL or audio payload enters model messages. Composition shares leases/tracker and resumes receipts. Registry manifest duplicate checks now use plugin/capability/operation identity (global tool names remain unique), permitting two distinct audio capabilities to both name operation generate.
|
||||
- Additional owned paths beyond the initial outline: read-only saved-audio Host route and composition service port, export of existing media reader, Chat progress/preview component and test, relevant effective-resolver/manifest/Registry/artifact assertions, one synthetic-audio Electron case reusing the existing first-chat fixture, README and package version 2.0.1. No plugin navigation/store authority changes.
|
||||
|
||||
## Verification
|
||||
|
||||
- TDD RED→GREEN at transport, delivery, adapter/Registry seams; tests cover literal confirmation, fixed mode/pricing/identity, streamed bounds, account change, lost response, automatic recovery without repeat POST, partial restart, owner-only local preview, no fake not_started after submission and nullable receipt normalization.
|
||||
- Final focused set before the normalization refinement: 7 files / 45 passed. Final refined transport/adapter/delivery slice: 3 files / 13 passed. Typecheck PASS. Full lint PASS (0 errors, 8 existing CloudAgents/CloudCosts/Home/Makelore warnings); final scoped ESLint includes the added Electron test, PASS.
|
||||
- Full initial unit run: 2,133 passed / 2 skipped / 1 failed (unchanged pi-managed-worker-opener test expects runtime-v6, unchanged runtime is v7). Subsequent broad run excluding only that stale test file and isolated pressure: 244 files / 2,136 passed / 2 skipped; pressure 1/1 PASS. Later additions tested in focused runs; no false full-clean claim.
|
||||
- Vite Renderer/Main/Preload/utility build PASS. Artifact verifier now requires game-audio ID and hosted route; artifact contract tests PASS. No Windows installer or signed app.asar was produced, so packaged GA-04 acceptance remains open.
|
||||
- Actual built Electron synthetic-audio test PASS 1/1 (2.5s): saved result→expand process/tool→explicit preview→native audio duration 0.25s and paused/no autoplay; screenshot visually inspected. It mocks the existing Host seam with a synthetic PCM WAV, not Meowa generation or live billing. First run only needed opening the existing collapsed process group in the test.
|
||||
- Existing plugin-marketplace/project-plugins Electron diagnostics 4/4 FAIL on stale assertions (removed introductory copy, old local/bundled buttons, old scope=project URL). Those test files and Plugins/ProjectConfiguration product modules have no task diff; current base uses 可选/已安装 tabs and scope=all. These failures are recorded, not hidden or repaired as part of audio.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- GA-00/GA-04 HOLD: real Meowa final result shape, MIME/size/count/expiry/charge and PostgreSQL concurrency not verified. No new fee/rate invented and no live generation, publication, install, push, deploy or merge.
|
||||
- A real accepted generation using the paired server and packaged client still requires separately bounded paid-canary authorization, plus actual price activation by Operations. The playable synthetic Electron fixture is not a substitute.
|
||||
- Unrelated base runtime-v6 and old plugin-page E2E assertions need their own maintenance task; no source reset/stash/clean or root worktree writes performed.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: current-state/module-map/domain rules at integration. Add project-wide Game Audio >=2.0.1, single confirmation→internal polling→all-file auto-save, separate job/delivery/billing phases and receipt-owned local preview. Evidence: public seams, actual built Electron test and paired server record. No conflict with image delivery, Data Service or selected-model Web Search; shared IDs and protocol remain unchanged.
|
||||
- Target: evidence/commitments. Preserve real-provider/PG/packaged activation holds and exact baseline diagnostic failures. Human confirmation required for paid canary/activation; no canonical promotion in this feature worktree.
|
||||
Reference in New Issue
Block a user