Skip to content

FRLG AutoStory: save each failed event's stream history - #310

Draft
dayfine wants to merge 6 commits into
frlg/stage8-rocktunnelfrom
frlg/autostory-failure-capture
Draft

dayfine wants to merge 6 commits into
frlg/stage8-rocktunnelfrom
frlg/autostory-failure-capture

Conversation

@dayfine

@dayfine dayfine commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Depends on #308. Base frlg/stage8-rocktunnel (#293, the stage tip) with #308 merged in, so the diff also shows #308 until it lands in nav/story-steps and is merged down.

The 00.27 failures on console B kept only their final screenshot, so their frame-replay fixtures are single frames: story failures throw with NO_ERROR_REPORT and a retry soft-resets before anything is saved. Story rows and verify mode now attach #308's FailureCapture to their hooks, so each failed attempt saves USER_FILE_PATH()/PokemonFRLG/AutoStoryFailures/<time>-<checkpoint>-<event>/ (Video.mp4, Screenshot.png, Failure.json) before the soft reset, and a run that throws saves under the last step under way. Compiled locally; Pokemon::StorySegments, Pokemon::AutoStoryFailureCapture and the FRLG AutoStory sim suites run in the headless runner; not yet run on console B.

🤖 Generated with Claude Code

https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss

dayfine and others added 6 commits November 9, 2026 10:58
A story failure throws with NO_ERROR_REPORT, so no error report (and no
Video.mp4) was written for it, and a retry reloaded the game before anyone
saw the failure frame. SegmentHooks gets a `failed` hook, told of each failed
attempt and verify run before any reload. FailureCapture attaches to it and
saves USER_FILE_PATH()/<game>/AutoStoryFailures/<time>-<checkpoint>-<event>/
with Video.mp4 (stream history), Screenshot.png and Failure.json, whatever
the error-report send mode; save_thrown() covers exceptions out of the run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
The unit-test runner's registration function is at its length limit on the
game stacks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
FailureCapture is attached to the story hooks of story rows and verify
mode, so each failed attempt saves its video, screenshot and JSON before
the soft reset, and a run that throws saves under the last step under way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant