{
  "environment": "Linux; Chromium web client; 1440x1000 CSS pixels; dark theme; two source worktrees; fresh server databases; synthetic Git fixtures; local deterministic ACP agent",
  "baseCommit": "17a6a01d84e3adf9f29df2639d6b6079a434e1b2",
  "headCommit": "79b590a695b7d5ec73ea558953954ced8adea19a",
  "base-files-before": {
    "b-only.txt": "05e3f640ba297de639b32c038d881a1d96c9884714df91829f66027fc0531183",
    "common.txt": "2a20185ec5801af3957bc4fbcdc0b0861a8db0e71bffe892e325d563456cfdc3",
    "turn-2.txt": "4c5d0c8d7ced2b8254ff5e8732a49fb15ddc75ffe07aa140af8292c094a04ce3"
  },
  "base-files-after-restore": {
    "common.txt": "2a20185ec5801af3957bc4fbcdc0b0861a8db0e71bffe892e325d563456cfdc3"
  },
  "head-files-before": {
    "b-only.txt": "05e3f640ba297de639b32c038d881a1d96c9884714df91829f66027fc0531183",
    "common.txt": "2a20185ec5801af3957bc4fbcdc0b0861a8db0e71bffe892e325d563456cfdc3",
    "turn-2.txt": "4c5d0c8d7ced2b8254ff5e8732a49fb15ddc75ffe07aa140af8292c094a04ce3"
  },
  "head-files-after-refusal": {
    "b-only.txt": "05e3f640ba297de639b32c038d881a1d96c9884714df91829f66027fc0531183",
    "common.txt": "2a20185ec5801af3957bc4fbcdc0b0861a8db0e71bffe892e325d563456cfdc3",
    "turn-2.txt": "4c5d0c8d7ced2b8254ff5e8732a49fb15ddc75ffe07aa140af8292c094a04ce3"
  },
  "head-files-after-conversation-rewind": {
    "b-only.txt": "05e3f640ba297de639b32c038d881a1d96c9884714df91829f66027fc0531183",
    "common.txt": "2a20185ec5801af3957bc4fbcdc0b0861a8db0e71bffe892e325d563456cfdc3",
    "turn-2.txt": "4c5d0c8d7ced2b8254ff5e8732a49fb15ddc75ffe07aa140af8292c094a04ce3"
  },
  "observed": {
    "base": "Turn 2 diff lists turn-1.txt deleted and turn-2.txt added. File restore succeeds, removing committed b-only.txt and turn-2.txt.",
    "head": "Turn 2 diff lists only turn-2.txt. Cross-worktree file restore is refused. Conversation-only rewind succeeds; B file hashes are unchanged."
  }
}
