Model Citizen by Jake Selby v0.15.0
GitHub
View source
Doc

Observation recorder

Path
docs/observation.md
Lines
26

Observation is off by default. To register the separate recorder for the native hook events in each managed client, run:

citizen config set observation.enabled true
citizen sync

Accept native hook trust again if the client asks after its hook configuration changes. The recorder adds one process per event. It emits no context, decisions or output to the client; its rows contain event identifiers and a profile fingerprint, never prompt or tool bodies.

For ordinary sessions, rows go to the local observation.jsonl ledger beside the other local usage ledgers. Recorder failures go to observation.errors.jsonl and do not block the session.

Live cost replays are separate. Both benchmark arms contain the same observer bytes and native hook registration. The runner mounts a fresh output directory for each preflight and scored session, outside protected host paths. After the session, it retains both streams under the tag’s observations/ directory; no arm can read or change another session’s files. It records the real row and error counts on the result; missing or errored collection invalidates that attempt. These files never use or append to the ordinary local ledger.

To remove only the recorder registrations, set observation.enabled to false and sync again. Your own hooks remain. Uninstall also removes the managed recorder registrations.

↑↓ move↵ openPagefind · indexed at build