From 70f8118036f3e36a7ac807f98dd36295023beb08 Mon Sep 17 00:00:00 2001 From: Don Garrett Date: Fri, 2 Oct 2026 17:37:36 +0000 Subject: [PATCH] Make the vault's git history optional Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE --- docs/Architecture.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/Architecture.md b/docs/Architecture.md index 7a84253..ae4c358 100644 --- a/docs/Architecture.md +++ b/docs/Architecture.md @@ -435,7 +435,7 @@ build artifacts, and the contents of a previous task's workspace. **How memory is used.** - **Everything read is snapshotted into the transcript** with its provenance - (document, revision, when retrieved), once per work item at first use. + (note, a hash of its content, when retrieved), once per work item at first use. - **Memory is a cache, never authority.** An agent may rely on it to know what exists and where to look; facts an action depends on are re-checked against the live system immediately before the action (preconditions, O2). When a proposal @@ -611,9 +611,12 @@ tags), so the operator browses it in Obsidian with links, backlinks and the grap - **Writes are atomic** (write, then rename), so a reader never sees half a note. - **Access is through control tools** (L13): the harness reads and writes the mounted folders. No tool VM ever sees the vault. -- **History:** the vault is a git repository on the agent host, and the harness - commits each write with the agent and work item that made it. A note's revision is - its commit (L6). +- **Provenance is in the note itself:** the harness records the source, work item + and time of each write (L6), whatever else is kept. +- **History is optional:** the harness may keep the vault as a git repository on the + agent host, committing each write with the agent and work item that made it. It + shows what an edit replaced; recovery doesn't depend on it (the host's snapshots + cover that, X4). **The operator's copy.** Syncthing keeps a copy on the operator's devices, with the direction set per folder: @@ -621,7 +624,8 @@ direction set per folder: operator reads them, and a local edit never flows back; - **folders the operator writes** are receive-only on the host. -So conflicts can't arise. Obsidian's own settings folder and `.git` are not synced. +So conflicts can't arise. Obsidian's own settings folder (and `.git`, if kept) are +not synced. **Never an instruction channel, never an approval channel.** Work is never read out of the vault, and an agent never writes there to make another agent act.