feat: graph snapshot + meta sidecar for post-session audit traceability#12
feat: graph snapshot + meta sidecar for post-session audit traceability#12ramaseshanms wants to merge 2 commits intokunal12203:mainfrom
Conversation
Demo: snapshot audit trail in actionRan a simulation of 3 successive rescans to show the full lifecycle — snapshot creation, meta sidecar linking, and post-incident debugging. Setup: 3 files in the graph, Claude uses Full demo output (click to expand)Key takeaway: After a rescan, |
|
Hey, really well done, the fail-safe design is exactly right and the test coverage is thorough. We want to get this in. A few things to fix before merge:
Fix those and this is ready to go, really useful feature. Thanks! |
8a50db4 to
6146d90
Compare
|
All four items addressed — rebased and force-pushed. 1. 2. Dead code in 3. 4. Rebased onto current Ready for another look whenever you get a chance. |
…raceability Saves timestamped copy of info_graph.json to graph_snapshots/ before each rescan so bad graph recommendations can be traced post-session. Meta sidecar links each snapshot to its mcp_tool_calls.jsonl offset for unambiguous replay. Rotates to last 5 pairs. Fails silently to never block scans.
- Remove unused `meta` variable in _rotate_snapshots (shadowed by meta_path) - Remove redundant .dual-graph/graph_snapshots/ gitignore entry (covered by .dual-graph/) - Remove duplicate .dual-graph/ gitignore entry - Add graph_snapshot.py download to install.sh so users actually get the file
6146d90 to
23a232b
Compare
Hey — following up on issue #10.
Thanks for the detailed feedback, built it exactly to your spec.
What's in this PR
info_graph.jsonto.dual-graph/graph_snapshots/before every rescan — crash-safe, previous state is always preserved.meta.jsonsidecar per snapshot containing scan trigger, file count, andmcp_tool_calls.jsonlline offset at that moment.gitignoreupdated automaticallyHow to replay a hallucinated action
mcp_tool_calls.jsonlwhen things went wronginfo_graph_<ts>.json— that's the exact graph state that drove the bad recommendationinfo_graph_<ts>.meta.json→action_log_offsetto find the exact line in the action log where that session beganTested on
Happy to adjust anything before merge.