CLI audit findings (area scored 9/10; these are the path to 10): (1) runner.rs:206-263 HeadlessRunner still constructs an ephemeral DatabaseEngine/EventBus/TempDir that nothing reads (allow(dead_code)) - a dead remnant of the old CLI-holds-its-own-store anti-pattern; delete it. (2) Add CLI commands for the 3 uncovered RPCs: cal show (Calendar/GetEvent), contact show (Contacts/GetContact), system watch (System/Subscribe stream). (3) update check/apply (runner.rs:516-614) run client-local against GitHub instead of behind a daemon RPC - document as the one sanctioned non-gRPC exception, or move behind an RPC.
Source: full-tree audit 2026-07-30 (scratchpad/audit/AUDIT-SUMMARY.md). Follow docs/STORY-WORKFLOW.md: engine+proto(if surface)+CLI+offline E2E, mock-only tests, no fabricated data, comment convention, PR to dev, PO reviews before close.
CLI audit findings (area scored 9/10; these are the path to 10): (1) runner.rs:206-263 HeadlessRunner still constructs an ephemeral DatabaseEngine/EventBus/TempDir that nothing reads (allow(dead_code)) - a dead remnant of the old CLI-holds-its-own-store anti-pattern; delete it. (2) Add CLI commands for the 3 uncovered RPCs: cal show (Calendar/GetEvent), contact show (Contacts/GetContact), system watch (System/Subscribe stream). (3) update check/apply (runner.rs:516-614) run client-local against GitHub instead of behind a daemon RPC - document as the one sanctioned non-gRPC exception, or move behind an RPC.
Source: full-tree audit 2026-07-30 (scratchpad/audit/AUDIT-SUMMARY.md). Follow docs/STORY-WORKFLOW.md: engine+proto(if surface)+CLI+offline E2E, mock-only tests, no fabricated data, comment convention, PR to dev, PO reviews before close.
Triaged against current dev and partially done in #427 (3508b5e). Each item was re-verified rather than assumed, since this issue predates a large refactor.
Done: the runner's dead ephemeral store is gone. Removing it made construction infallible and sync, so ephemeral* became connect* across 39 call sites; the runner_error_display test went with it because RunnerError no longer exists (verified: zero remaining references). No other assertion was touched.
Already fine — this issue predates them:mail move|delete|flag|unflag|conflicts|resolve all exist with callers, added in #417.
Still valid, not done:cal show / contact show / system watch — confirmed to be exactly the three RPCs with no CLI coverage. And the update-exception item: a doc landed on HeadlessRunner, but UpdateEngine itself still needs one, and nunciod duplicates the same client-side GitHub logic.
Leaving open for the remainder.
Triaged against current `dev` and partially done in #427 (`3508b5e`). Each item was re-verified rather than assumed, since this issue predates a large refactor.
**Done:** the runner's dead ephemeral store is gone. Removing it made construction infallible and sync, so `ephemeral*` became `connect*` across 39 call sites; the `runner_error_display` test went with it because `RunnerError` no longer exists (verified: zero remaining references). No other assertion was touched.
**Already fine — this issue predates them:** `mail move|delete|flag|unflag|conflicts|resolve` all exist with callers, added in #417.
**Still valid, not done:** `cal show` / `contact show` / `system watch` — confirmed to be exactly the three RPCs with no CLI coverage. And the update-exception item: a doc landed on `HeadlessRunner`, but `UpdateEngine` itself still needs one, and `nunciod` duplicates the same client-side GitHub logic.
Leaving open for the remainder.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
CLI audit findings (area scored 9/10; these are the path to 10): (1) runner.rs:206-263 HeadlessRunner still constructs an ephemeral DatabaseEngine/EventBus/TempDir that nothing reads (allow(dead_code)) - a dead remnant of the old CLI-holds-its-own-store anti-pattern; delete it. (2) Add CLI commands for the 3 uncovered RPCs: cal show (Calendar/GetEvent), contact show (Contacts/GetContact), system watch (System/Subscribe stream). (3) update check/apply (runner.rs:516-614) run client-local against GitHub instead of behind a daemon RPC - document as the one sanctioned non-gRPC exception, or move behind an RPC.
Source: full-tree audit 2026-07-30 (scratchpad/audit/AUDIT-SUMMARY.md). Follow docs/STORY-WORKFLOW.md: engine+proto(if surface)+CLI+offline E2E, mock-only tests, no fabricated data, comment convention, PR to dev, PO reviews before close.
Triaged against current
devand partially done in #427 (3508b5e). Each item was re-verified rather than assumed, since this issue predates a large refactor.Done: the runner's dead ephemeral store is gone. Removing it made construction infallible and sync, so
ephemeral*becameconnect*across 39 call sites; therunner_error_displaytest went with it becauseRunnerErrorno longer exists (verified: zero remaining references). No other assertion was touched.Already fine — this issue predates them:
mail move|delete|flag|unflag|conflicts|resolveall exist with callers, added in #417.Still valid, not done:
cal show/contact show/system watch— confirmed to be exactly the three RPCs with no CLI coverage. And the update-exception item: a doc landed onHeadlessRunner, butUpdateEngineitself still needs one, andnunciodduplicates the same client-side GitHub logic.Leaving open for the remainder.