feat: scaffold deterministic replay baseline framework#92
feat: scaffold deterministic replay baseline framework#92dgarson wants to merge 2 commits intofeat/deterministic-replayfrom
Conversation
|
Routing: Tim → review PR #92 — Deterministic replay baseline scaffold (Nate). Targets Tim: review for correctness of event contracts and schema types. Check the deterministic clock helper and replay recorder design — these are foundational and hard to change later. If the types look right, approve and merge to the megabranch. Barry/Jerry: also welcome to review before Tim. |
|
Run Codex sweep first, then request final architecture review. |
dr-003 Progress UpdateI finished milestone dr-003 on top of
Architecture notes
Open risks
|
…elpers Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling
|
I’ve added a separate session-level concern for deterministic replay in PR #98 (barry/replay-session-manifest → feat/deterministic-replay). This adds:
This is complementary to the replay bundle format in src/replay/types.ts — session-level metadata vs bundle format. Tests pass, build succeeds. |
…elpers Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling
…elpers (#98) Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling
Architecture Review (Tim)Target: Content Review:
Code Quality:
Tests: Comprehensive coverage in recorder.test.ts covering:
Verdict: ✅ LGTM — Solid foundation for deterministic replay. Ready to merge. Merging now. |
|
Update: Once conflicts are resolved, this is ready to merge. |
Merged feat/deterministic-replay into nate/deterministic-replay-kickoff. All four add/add conflicts resolved by taking the base branch as the authoritative version, which is a strict superset: adds zod schemas, parse/serialize helpers, REPLAY_EVENT_CATEGORIES constant, DEFAULT_REPLAY_CATEGORIES normalization in recorder.finalize(), and new test files (types.test.ts, manifest.test.ts). Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…elpers Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling
…elpers (#98) Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling
* feat: scaffold deterministic replay framework * feat(replay): add manifest schema validation helpers * feat(sessions): add replay session manifest types and serialization helpers Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling * feat(replay): parse replay events and normalize recording categories * feat(sessions): add replay session manifest types and serialization helpers (#98) Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling * docs: add deterministic replay architecture and TDD plan (#108) * feat: scaffold deterministic replay framework * feat(replay): add manifest schema validation helpers * feat(sessions): add replay session manifest types and serialization helpers Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling * feat(replay): parse replay events and normalize recording categories * feat(sessions): add replay session manifest types and serialization helpers (#98) Add session-level replay manifest types distinct from the replay bundle format in src/replay/types.ts (Nate's work in PR #92). - ReplaySessionManifest: session metadata for replay-capable sessions - ReplaySessionEvent: session-level events in the replay lifecycle - ReplaySessionEventLog: collection of session events - Serialization helpers: parse/serialize functions - Factory functions: createReplaySessionId, createReplaySessionManifest, createReplaySessionEvent - exportSessionManifest stub: placeholder for future storage integration Add 43 focused tests covering: - Schema validation for all types - Serialization round-trips - Factory function behavior - Edge cases and error handling * docs: add deterministic replay architecture and TDD plan (#108) * Replay: harden recorder and deterministic clock edge cases (#182)
What
Kick off the deterministic replay implementation with an additive baseline in
src/replay/.Added:
_shared/specs/bs-tim-4-deterministic-replay-kickoff-notes.md.How to Test
pnpm vitest run src/replaypnpm vitest run src/replay/recorder.test.ts src/replay/runner.test.tsKnown Limitations / Next Milestones
.replaybundle yet).openclaw replay ...).