Skip to content

Releases: WoodyJ2H/claude-code-family

v3.0.0 — Drive-first SHARED-BRIEF architecture

Choose a tag to compare

@WoodyJ2H WoodyJ2H released this 19 May 09:37
922cb51

🐛 The bug that triggered this release

I have two PCs running Claude Code: a desktop (main) and a laptop (mobile, used occasionally). They share configuration and memory through an SMB share (T:\) mounted from the desktop.

One morning I opened Claude Code on the laptop. The desktop was off.

9 cascading errors. The SessionStart hook tried to read T:\SHARED-BRIEF.md. T:\ wasn't mounted because the desktop was off. The hook failed. Claude Code started with no context, no memory of recent work, no recovery path.

The whole twin-setup architecture had a single point of failure: the SMB server.

🛠 What changed in v3

Google Drive is now the source of truth for the inter-PC SHARED-BRIEF.md. The SMB share is demoted to a best-effort LAN cache.

Architecture

```
┌─────────────────────────────────────────────────────────┐
│ DRIVE = source of truth │
│ Claude Memory/SHARED-BRIEF.md + memory/*.md │
└─────────────────────────────────────────────────────────┘
▲ ▲
│ push (CLOSE) │ push (CLOSE)
│ pull (SessionStart) │ pull (SessionStart)
│ │
┌────┴──────┐ ┌────┴──────┐
│ Main PC │◄──── T:\ (LAN cache) ───►│ Client PC │
│ (server) │ best-effort │ (mobile) │
└───────────┘ └───────────┘
```

New scripts

File Role
`write-shared-brief.ps1` Writes to Drive first, then T:\ best-effort. Called at every CLOSE.
`read-shared-brief.ps1` Reads at SessionStart with Drive priority. Detects automatically if catch-up is needed (origin machine ≠ current machine).
`mount-T.ps1` Mounts SMB share with hostname + IP fallback. Silent on failure.
`install-hook.ps1` Wires the new scripts as SessionStart hooks in `~/.claude/settings.json`.
`setup-automount.ps1` Scheduled task for auto-mount at Windows logon (optional).
`twin-config.ps1.example` Central config — copy to `twin-config.ps1` and customize hostnames/IPs/paths.

Scenarios validated (4/4)

  1. Main PC alone — OK (T:\ = local disk)
  2. Client PC alone, main off — OK (Drive cloud takes over)
  3. Main then client (same LAN) — OK (Drive + T:\ cache)
  4. Client then main (days apart) — OK (Drive catches up both ways)

🔧 Migration from v2

If you were running v2:

  1. Pull the new files
  2. Copy `twin-config.ps1.example` → `twin-config.ps1` and customize for your setup
  3. Re-run `install-hook.ps1` on each client PC to wire the new hooks
  4. Make sure Google Drive desktop is running on both PCs
  5. At your next CLOSE, run `write-shared-brief.ps1 -Summary "..."` to seed Drive

💬 Discussion

This solves a problem nobody talks about: how do multi-PC AI assistant setups survive when one machine is offline?

If you're running Claude Code, Cursor, or any AI assistant across multiple machines, I'd love to hear how you handle:

  • Cross-machine session continuity
  • Memory/context sync between PCs
  • Recovery when one PC is unreachable

Open an issue or drop a comment.

🙏 Credits

Built with Claude Sonnet 4.6 (Opus 4.7 for the architecture review).