Loading…
Reference in a new issue
No description provided.
Delete branch "build/lane4-journeys"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #814. Lane 4's journeys (#730), plus a product fix the new journey found.
🐞 The bug J2 found (#814)
task_session()now.app/tasks/, now covers all ofapp/. The pooled engine is allowed only indatabase.py,main.pyandcli.py, each of which lives on one event loop. A sweep found no other offender.J2: the session half, now real (it was a
test.skip)session_confirmed, and there is no email, because this is the Discord campaign.axeruns on the vote, the confirmed page and the roster, each after its last request.mail(), and the bot gets nothing.Step 6 (asking a question) is a TODO for lane 7 (#733).
J5's fixture: Session 4, "The Customs House at Low Tide", recorded through the real pipeline
waveinto the namedaudio_tempvolume: a quiet tone while each speaker talks, because the pipeline drops silent tracks. It then hands them toPOST /api/bot/sessions/{id}/audioexactly as the bot does.table_admin), and one that fails (IS-240);trashedunder "bin once transcribed".Checks
e2e/.🤖 Generated with Claude Code
J5 reviews a transcribed session, and there is nothing to review unless the backend transcribed, extracted, validated and composed something. So the seed now plays the bot at /record stop, after the other three sessions, which makes this one Session 4, "The Customs House at Low Tide", played ten days ago (between Sessions 1 and 2, so Last time and Previously on stay Session 2's): - Priya's Discord account is linked through the bot's own link-token flow (POST /api/bot/linking-tokens, then /auth/link as her, then the bot's link-status poll). Dana's is not, so one track is a matched member and the other an unmatched speaker (SE-142). - Two 16 kHz mono WAVs and a speakers.json are written at run time with the stdlib wave module into the named audio_temp volume, now mounted into the seed: a tone while each line is spoken, silence elsewhere. No audio is committed; down -v removes them. The e2e-fakes image owns /tmp/questboard-audio as the bot's image does, because an empty named volume takes its owner from the mounting image and the product images lack the path. - They are handed over as the bot does, POST /api/bot/sessions/{id}/audio with X-Bot-Key on the backend's own address, and the seed waits for audio_processing_status to leave processing. - It asserts the result: trashed, worked out from the retention settings ("bin once transcribed" is the default); every scripted line in the transcript; the recap's paragraphs; the run's beats (four verified, one of them table_admin, one failed); Priya proposed as having spoken and Dana unmatched; every post-session task settled, none failed; and the story's third chapter written. The fake AI scripts it all from identities.json's new `recording` block: a transcript per track, recognised by the Discord id in the uploaded file's name; beats, recognised by their schema, each citing the stamp of the line holding its phrase in the prompt it was sent, plus one citing a second no line starts on (IS-240); verbatim highlights; and a recap written from the events the compose prompt lists, so a GM's strike or rewording changes the next version. J6 counts the story's chapters and the timeline's evenings from the played sessions rather than as two. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>