Remove 50 duplicate use_exact_message entries that caused YAML parse
errors with the strict JS parser. Add overwrite=true query param to
workspace file upload to handle re-uploads across sessions.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add `attachments` field to UserTurn schema, upload files via the
workspace API before sending chat messages, and pass file_ids in
the request body. Includes fixture CSVs and a supplier agreement
for scenarios 7, 21, and 27.
Also includes lint autofixes from biome across touched files.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add use_exact_message to all user turns to prevent persona drift,
rewrite s1 turns for scenarios 14/22/23 as direct build commands,
swap Slack→Discord and Zendesk→Notion to match available blocks,
and fix dall-e-3 model name in scenario 4.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
- Add Session model with id, time_offset, and reset policy (none/new/fresh_agent)
- Add FailureMode, ResetPolicy, and tester_note to scenario expectations
- Add persona/rubric to ScenarioDefaults for multi-session YAML format
- Implement multi-session execution loop in runner with session boundary tracking
- Support fresh_agent reset (new adapter instance) and new reset (clear context)
- Maintain separate session_transcript and full_transcript for proper judge context
- Add session boundary markers to full_transcript for HTML report visibility
- Add multi-session-memory rubric (retention, fabrication, context separation, temporal)
- Fix dry_run alignment in endpoint yaml and tests
- Parse failure_modes YAML shorthand (- name: description)
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add support for the multi-session scenario format with:
- Session model with id, time_offset, and reset policy (none/new/fresh_agent)
- FailureMode model for named failure semantics under expectations
- tester_note field on ScenarioExpectations
- ScenarioDefaults expanded with persona and rubric inheritance
- Backward-compatible effective_sessions() wrapping flat turns
Runner changes:
- Session loop with reset policy enforcement in run_scenario()
- fresh_agent creates new adapter via adapter_factory, clears context
- new clears context but keeps same adapter
- Extract _maybe_close_scenario() and _clear_session_state() helpers
- Cache rendered system prompt across sessions
- Defer _build_run_context to after checkpoint branch (skip for checkpoints)
- Replace magic tuples with _RESETS_REQUIRING_REINIT frozenset
- Hoist adapter factory out of per-scenario loop
- Use direct attribute access on typed Persona/Rubric models
Data:
- Add multi-session-memory.yaml (31 scenarios, 13 categories)
Pack ID: multi-session-memory-v1
Tests:
- 12 new tests covering multi-session execution, reset policies,
backward compat, failure modes, tester notes, defaults, and models
- All 74 tests pass