Files
2026-05-27 23:29:53 +01:00

29 lines
3.4 KiB
Markdown

# Refresh audio queue for 3-level layout and upstream deps (2026-05-23)
## Why
Thirteen audio-queue OpenSpec changes — `enterprise-audio-codecs`, `enterprise-audio-codec-ffmpeg-{native,wasm}`, `enterprise-audio-engine-server`, `enterprise-audio-analysis-{spectrum,beat,loudness,pitch}`, `enterprise-audio-cli`, `enterprise-audio-sprite-player`, and `enterprise-react-audio-{player,stream,fingerprint}` — were authored before the 2026-05-20 super-category restructure. They still encode the old 2-level `packages/audio/<pkg>/` path and reference upstream contracts that do not exist on genesis. Four parallel implementation agents (one per package) refused to ship on 2026-05-23 because the proposals contradict `CLAUDE.md` and `openspec/AGENTS.md §2c` forbids silently rewriting spec elements during implementation.
This change ships the prerequisites those thirteen proposals depend on so they can be implemented as authored (post-refresh) with no further blockers.
## What changes
1. **Path migration** — every audio-queue OpenSpec change's `proposal.md`, `tasks.md`, `design.md`, and `specs/**/spec.md` is rewritten from `packages/audio/<pkg>/` to `packages/media/audio/<pkg>/` (or `packages/ui/react/<pkg>/` for the three react-audio changes). The closed super-category vocabulary in `CLAUDE.md` is authoritative; no category is added.
2. **Workspace catalog: ffmpeg deps** — `fluent-ffmpeg`, `@ffmpeg-installer/ffmpeg`, `@types/fluent-ffmpeg` added to `catalog.audio` and `catalog.types`; `@ffmpeg/ffmpeg` and `@ffmpeg/core` added to `catalog.audio` for the WASM variant.
3. **`@suaveplan/audio-core` MODIFIED** — add the `AnalysisOp` operator contract and the `AnalysisResult` base shape required by every `audio-analysis-*` package. These are types-only additions plus a small runtime helper (`createAnalysisOp`) for the four analysis packages to consume.
4. **`enterprise-audio-engine-server` MODIFIED in place** — replace the spec's hard import dependency on `@suaveplan/audio-plugins-fx` (which does not exist on genesis) with a locally-owned `PluginChain` + `BusRegistry` shape defined inside the engine-server package itself. The original spec intent — per-track plugin chains with PDC recompute and a cycle-safe bus registry — is preserved verbatim; only the import location changes. When `@suaveplan/audio-plugins-fx` lands in a later wave, an additive OpenSpec amendment can re-route the contract to the upstream package.
5. **Date alignment** — every refreshed proposal stamps its target archive folder as `openspec/archive/2026-05-23-<change-id>/` and the proposal `Date:` line as `2026-05-23`.
6. **No scope changes** — no Requirements are added, removed, or weakened in the refreshed change folders. Path corrections + dep additions + upstream-contract relocation only.
## Impact
- Spec: 13 change folders rewritten in place (paths + dates only) plus one MODIFIED to relocate upstream contracts.
- Code: `@suaveplan/audio-core` gains `AnalysisOp` / `AnalysisResult` types + `createAnalysisOp` helper. Root `package.json` gains 5 catalog entries.
- Downstream: the 13 implementation agents can now read their refreshed change folders and ship without further spec amendments. Each becomes an independent implementation PR.
- Risk: nil. Paths are mechanical, catalog additions are additive, the `@suaveplan/audio-core` addition is types-only + one builder helper at 100% coverage in this change.