feat: add week 3 audio and timeline enhancements

This commit is contained in:
2026-04-18 22:10:48 +08:00
parent 4d54c144a8
commit 70efaf3ccf
20 changed files with 606 additions and 56 deletions

View File

@@ -96,6 +96,11 @@ assert_jq "$story_image_json" '.generation_status == "partial_ready" and .image_
assert_jq "$story_image_json" '(.retryable_assets | index("image")) == null and (.retryable_assets | index("audio")) != null' "story image retry should leave only audio retryable"
echo "$story_image_json" | jq '{id,title,generation_status,image_status,audio_status,retryable_assets}'
say "Checking story audio cache status"
story_audio_status_json="$(get_json "$APP_URL/api/audio/$story_id/status")"
assert_jq "$story_audio_status_json" '.audio_ready == false and .cache_exists == false and .audio_status == "not_requested"' "story audio status should not generate audio"
echo "$story_audio_status_json" | jq '{story_id,audio_ready,cache_exists,audio_status,retryable_assets}'
if [[ "$SMOKE_AUDIO" == "1" ]]; then
say "Retrying story audio"
story_audio_json="$(post_json "$APP_URL/api/generations/$story_id/retry-assets" '{"assets":["audio"]}')"
@@ -106,6 +111,8 @@ if [[ "$SMOKE_AUDIO" == "1" ]]; then
echo "Unexpected audio response: $audio_probe" >&2
exit 1
fi
story_audio_status_json="$(get_json "$APP_URL/api/audio/$story_id/status")"
assert_jq "$story_audio_status_json" '.audio_ready == true and .cache_exists == true and .cache_size_bytes > 0' "story audio should have cache metadata after generation"
echo "$story_audio_json" | jq '{id,title,generation_status,image_status,audio_status,retryable_assets}'
else
say "Skipping audio smoke; set SMOKE_AUDIO=1 to include TTS"