| 1 | # Task Catalog |
| 2 | |
| 3 | Reasonix stores the cross-project task projection at |
| 4 | `<cache root>/task-catalog/v1.sqlite`. Task snapshots, event JSONL, idempotency |
| 5 | files, file locks, version CAS, and leases remain authoritative. SQLite is never |
| 6 | used to accept stop, cancel, requeue, or open-session commands. |
| 7 | |
| 8 | An observed `FileStore` sends non-blocking snapshot and event hints only after |
| 9 | the per-task lock is released. Snapshots are indexed eagerly in bounded batches; |
| 10 | event logs are indexed lazily when a task expands, an event query arrives, or a |
| 11 | new event is appended. Byte-offset and sequence checkpoints resume after an |
| 12 | interruption. Corrupt snapshots and event lines degrade only that task. |
| 13 | |
| 14 | The Desktop task center pages across current session, project, or all registered |
| 15 | projects. Project keys are full SHA-256 hashes of canonical saved roots and are |
| 16 | resolved before every action. The control service then re-reads the authoritative |
| 17 | snapshot. Current process jobs and controller state always overlay catalog data, |
| 18 | and expired leases are reconciled at read time without rewriting snapshots. |
| 19 | |
| 20 | ```sh |
| 21 | reasonix doctor catalogs [--json] |
| 22 | reasonix catalogs reindex tasks [--project PATH ...] [--json] |
| 23 | ``` |
| 24 | |
| 25 | Catalog corruption or partial indexing does not disable task control. Reindexing |
| 26 | replaces only the disposable projection. |
| 27 |