personal memory agent
0
fork

Configure Feed

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

Add retention configuration documentation to JOURNAL.md

Add a retention configuration subsection under User configuration covering modes, fields, retained artifacts, and completion safety checks.

Document health/retention.log under Service Health as part of wave 3 docs for the already-shipped retention feature.

+45
+45
docs/JOURNAL.md
··· 149 149 - `apps.order` – Custom app ordering in menu bar. 150 150 - `apps.starred` – Apps to show in the quick-access starred section. 151 151 152 + ### Retention configuration 153 + 154 + The `retention` block controls automatic cleanup of layer 1 raw media (audio recordings, video captures, screen diffs) while preserving all layer 2 extracts and layer 3 agent outputs. Three modes control when raw media is deleted: 155 + 156 + - `"keep"` – retain raw media indefinitely (default) 157 + - `"days"` – delete raw media after `raw_media_days` days, once the segment has finished processing 158 + - `"processed"` – delete raw media as soon as the segment has finished processing 159 + 160 + ```json 161 + { 162 + "retention": { 163 + "raw_media": "days", 164 + "raw_media_days": 30, 165 + "per_stream": { 166 + "plaud": { 167 + "raw_media": "days", 168 + "raw_media_days": 7 169 + }, 170 + "archon": { 171 + "raw_media": "processed" 172 + } 173 + } 174 + } 175 + } 176 + ``` 177 + 178 + Fields: 179 + - `raw_media` (string) – Retention mode: `"keep"`, `"days"`, or `"processed"`. Default: `"keep"`. 180 + - `raw_media_days` (integer or null) – Number of days to retain raw media when mode is `"days"`. Required when `raw_media` is `"days"`, ignored otherwise. 181 + - `per_stream` (object) – Per-stream overrides keyed by stream name. Each entry supports `raw_media` and `raw_media_days`. Omitted fields inherit from the global retention settings. 182 + 183 + "Raw media" means layer 1 capture files only: audio files (`.flac`, `.opus`, `.ogg`, `.m4a`), video files (`.webm`, `.mov`), and screen diffs (`monitor_*_diff.png`). 184 + 185 + All layer 2 and layer 3 content is always preserved regardless of retention policy: transcripts (`audio.jsonl`, `screen.jsonl`), agent outputs (`agents/*.md`), speaker labels (`agents/speaker_labels.json`), facet events (`events/*.jsonl`), entity data, segment metadata (`stream.json`), and search index entries. 186 + 187 + Raw media is never deleted from segments that haven't finished processing. A segment is considered complete only when all four checks pass: 188 + 189 + - No `_active.jsonl` files in `agents/` (no running agents) 190 + - `audio.jsonl` (or `*_audio.jsonl`) exists if audio raw media was captured 191 + - `screen.jsonl` (or `*_screen.jsonl`) exists if video raw media was captured 192 + - `agents/speaker_labels.json` exists if voice embeddings (`.npz`) are present 193 + 194 + Purged segments remain fully navigable in convey. Transcripts, entities, speaker labels, and summaries are all intact. The only difference is that audio/video playback is unavailable. 195 + 152 196 ### Environment variables 153 197 154 198 The `env` block provides fallback values for environment variables. These are loaded at CLI startup and used when the corresponding variable is not set in the shell or `.env` file: ··· 804 848 805 849 **Files:** 806 850 - `health/<service>.log` – log output for each service (e.g., `observe.log`, `cortex.log`, `convey.log`) 851 + - `health/retention.log` – JSONL log of retention purge operations with timestamps, files deleted, bytes freed, and per-segment details 807 852 808 853 These logs are useful for debugging service issues. See [DOCTOR.md](DOCTOR.md) for diagnostics and troubleshooting guidance. 809 854