personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Rename gnome observer to linux for broader platform support

Update documentation and fixtures to reflect the observe/gnome → observe/linux
reorganization. GNOME-specific activity detection remains separate while the
core Linux observer now uses XDG Portal screencast with PipeWire + GStreamer.

Also fixes agent name SunstoneCLI → solstone for naming consistency.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+9 -7
+1 -1
docs/CALLOSUM.md
··· 53 53 **Purpose:** Real-time stdout/stderr streaming and process exit events 54 54 55 55 ### `observe` - Multimodal capture processing events 56 - **Source:** `observe/observer.py` (delegates to `observe/gnome/observer.py` or `observe/macos/observer.py`), `observe/sense.py`, `observe/describe.py`, `observe/transcribe.py` 56 + **Source:** `observe/observer.py` (delegates to `observe/linux/observer.py` or `observe/macos/observer.py`), `observe/sense.py`, `observe/describe.py`, `observe/transcribe.py` 57 57 **Events:** `status`, `observing`, `detected`, `described`, `transcribed`, `observed` 58 58 **Fields:** 59 59 - `status`: Periodic state (every 5s while running)
+6 -4
docs/OBSERVE.md
··· 7 7 | Command | Purpose | 8 8 |---------|---------| 9 9 | `observer` | Screen and audio capture (auto-detects platform) | 10 - | `observe-gnome` | Screen and audio capture on Linux/GNOME (direct) | 10 + | `observe-linux` | Screen and audio capture on Linux (direct) | 11 11 | `observe-macos` | Screen and audio capture on macOS (direct) | 12 12 | `observe-transcribe` | Audio transcription with speaker diarization | 13 13 | `observe-describe` | Visual analysis of screen recordings | ··· 27 27 28 28 ## Observer State Machine 29 29 30 - The GNOME observer operates in three modes based on activity: 30 + The Linux observer operates in three modes based on activity: 31 31 32 32 ``` 33 33 SCREENCAST ··· 51 51 ## Key Components 52 52 53 53 - **observer.py** - Unified entry point with platform detection 54 - - **gnome/observer.py**, **macos/observer.py** - Platform-specific capture using native APIs 55 - - **tmux/capture.py** - Tmux capture library (integrated into GNOME observer for fallback capture) 54 + - **linux/observer.py**, **macos/observer.py** - Platform-specific capture using native APIs 55 + - **linux/screencast.py** - XDG Portal screencast with PipeWire + GStreamer 56 + - **gnome/activity.py** - GNOME-specific activity detection (idle, lock, power save) 57 + - **tmux/capture.py** - Tmux capture library (integrated into Linux observer for fallback capture) 56 58 - **sense.py** - File watcher that dispatches transcription and description jobs 57 59 - **transcribe.py** - Audio processing with Whisper/Rev.ai and pyannote diarization 58 60 - **describe.py** - Vision analysis with Gemini, category-based prompts
+1 -1
fixtures/journal/agents/1700000000001.jsonl
··· 1 1 {"event": "request", "ts": 1700000000001, "agent_id": "1700000000001", "prompt": "Search for meetings about project updates", "persona": "default", "backend": "openai"} 2 2 {"event": "start", "prompt": "Search for meetings about project updates", "persona": "default", "model": "gpt-4o", "backend": "openai", "ts": 1700000000100, "agent_id": "1700000000001"} 3 - {"event": "agent_updated", "agent": "SunstoneCLI", "ts": 1700000000200, "agent_id": "1700000000001"} 3 + {"event": "agent_updated", "agent": "solstone", "ts": 1700000000200, "agent_id": "1700000000001"} 4 4 {"event": "thinking", "content": "The user wants to search for meetings about project updates.\nI should use the search_events tool to find relevant meetings.", "ts": 1700000000300, "agent_id": "1700000000001"} 5 5 {"event": "tool_start", "tool": "search_events", "args": {"query": "project updates", "limit": 5}, "call_id": "call_001", "ts": 1700000000400, "agent_id": "1700000000001"} 6 6 {"event": "tool_end", "tool": "tool", "args": null, "result": "{\"total\": 2, \"results\": [{\"title\": \"Project Update Meeting\", \"day\": \"20231114\"}, {\"title\": \"Weekly Status\", \"day\": \"20231115\"}]}", "call_id": "call_001", "ts": 1700000000500, "agent_id": "1700000000001"}
+1 -1
observe/macos/TODO.md
··· 180 180 - Configuration options 181 181 - Troubleshooting guide 182 182 - [ ] Update main README.md to mention macOS support 183 - - [ ] Document differences from GNOME observer 183 + - [ ] Document differences from Linux observer 184 184 185 185 ### 6.2 Code Quality 186 186 - [ ] Run `make format` to format all new code