- TailReadJSONL: reverse-read JSONL without loading entire file
- FindSessionForProcess: match PID to most recent JSONL via EncodePath
- DetectState: heuristic based on last message stop_reason + tool name
- ExtractPreview: extract first 3 lines of last assistant text
- All 17 tests pass (session_test.go + state_test.go)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SUMMARY.md with execution results
- STATE.md advanced to plan 2/2
- ROADMAP.md and REQUIREMENTS.md updated (DISC-01, DISC-02 complete)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Scan /proc for PIDs with "claude" in cmdline
- Read cwd via os.Readlink, skip errors silently
- EncodePath replaces / and . with - for ~/.claude/projects/ folder names
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- shell.nix with go and gopls for NixOS dev environment
- go.mod for github.com/pieMusic/vmux module
- types.go with Process, Session, SessionState (Working/NeedsInput/Idle/Unknown)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>