## Summary This PR is the first slice of the per-session `/feedback` logging work: it adds a process-unique identifier to SQLite log rows. It does **not** change `/feedback` sourcing behavior yet. ## Changes - Add migration `0009_logs_process_id.sql` to extend `logs` with: - `process_uuid TEXT` - `idx_logs_process_uuid` index - Extend state log models: - `LogEntry.process_uuid: Option<String>` - `LogRow.process_uuid: Option<String>` - Stamp each log row with a stable per-process UUID in the sqlite log layer: - generated once per process as `pid:<pid>:<uuid>` - Update sqlite log insert/query paths to persist and read `process_uuid`: - `INSERT INTO logs (..., process_uuid, ...)` - `SELECT ..., process_uuid, ... FROM logs` ## Why App-server runs many sessions in one process. This change provides a process-scoping primitive we need for follow-up `/feedback` work, so threadless/process-level logs can be associated with the emitting process without mixing across processes. ## Non-goals in this PR - No `/feedback` transport/source changes - No attachment size changes - No sqlite retention/trim policy changes ## Testing - `just fmt` - CI will run the full checks |
||
|---|---|---|
| .. | ||
| 0001_threads.sql | ||
| 0002_logs.sql | ||
| 0003_logs_thread_id.sql | ||
| 0004_thread_dynamic_tools.sql | ||
| 0005_threads_cli_version.sql | ||
| 0006_memories.sql | ||
| 0007_threads_first_user_message.sql | ||
| 0008_backfill_state.sql | ||
| 0009_stage1_outputs_rollout_slug.sql | ||
| 0010_logs_process_id.sql | ||