Releases: WoodyJ2H/claude-code-family
Release list
v3.0.0 — Drive-first SHARED-BRIEF architecture
🐛 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)
- Main PC alone — OK (T:\ = local disk)
- Client PC alone, main off — OK (Drive cloud takes over)
- Main then client (same LAN) — OK (Drive + T:\ cache)
- Client then main (days apart) — OK (Drive catches up both ways)
🔧 Migration from v2
If you were running v2:
- Pull the new files
- Copy `twin-config.ps1.example` → `twin-config.ps1` and customize for your setup
- Re-run `install-hook.ps1` on each client PC to wire the new hooks
- Make sure Google Drive desktop is running on both PCs
- 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).