Publishing and audio feedback checks
Run on https://yumina-testing.up.railway.app after the testing deployment finishes. Use a test card and test accounts.
1. Saved changes versus submitted review
- Sign in with a creator account that already has review bypass enabled, and open a published card in Studio.
- Change its Greeting or Worldview and save. Expect Unpublished changes, with a saved timestamp in Publishing status. The published version should still contain the old content.
- Open Unpublished changes. Expect Publish update and an explanation that no admin wait is needed.
- Make one more edit, then click Publish update without saving first. Wait for success. Reload Studio and open the published card: both edits should be present and the unpublished badge should be gone.
- Repeat with an ordinary creator. Expect Submit for review; only after clicking it should the status become In review. The live card stays on the previous version until approval.
2. Copy an audio track ID
- In Studio, open Audio, add or select a track with a working audio source, and find Track ID.
- Click Copy ID, then paste into a text field. It must match the visible Track ID, rather than the audio asset ID or URL.
- Rename the track, save, and reload. Its Track ID must remain unchanged.
- Use that ID in an existing custom UI audio button:
api.playAudio("PASTED_TRACK_ID"). Click the button during play; the selected audio should play.
3. Prevent AI from controlling a track
- Select the same track, switch Allow AI control off, save, and open a fresh playtest. Disable its automatic playlist/behavior triggers for the first check, so those do not mask the result.
- Ask the AI to output
[audio: PASTED_TRACK_ID play]exactly. Inspect the raw reply if needed to confirm it attempted the directive. The track must stay silent. Repeat with Regenerate and Continue. - Click your custom UI audio button or trigger an existing audio behavior. The track must still play.
- While it plays, ask the AI to stop it or lower its volume. It must keep playing unchanged. If another AI-enabled BGM exists, an AI crossfade to that BGM must also leave this protected track playing.
- Turn Allow AI control back on, save, and start a fresh playtest. A valid AI play directive should work again. Existing tracks default to enabled.
An AI response without an audio directive does not verify blocking. Use the automated regression tests for deterministic coverage of all directive forms, chained playback, and crossfade protection.
Automated verification
sh
pnpm --filter @yumina/engine exec vitest run src/__tests__/ai-audio.test.ts
pnpm --filter @yumina/app exec tsx --tsconfig tsconfig.app.json --test src/features/editor/feedback-controls.test.tsx src/stores/audio.test.ts
pnpm typecheck
pnpm build