Skip to content

Durable permission-decision audit trail (approvals, sandbox scope, hook verdicts) #656

Description

@jonathanKingston

Summary

Persist an append-only, exportable, machine-readable log of every control-plane decision — tool approvals/denials, "remember" grants, sandbox-scope classifications, and hook allow/block verdicts — separate from the conversation transcript.

What #644 / #647 already cover

The filesystem-native chat store (#644, landing via #647) already gives an append-only, machine-readable, exportable substrate for the conversation: the events.jsonl spine + byte-preserving OKF message files + per-project catalog.jsonl + content hashing + a Phase-6 export reconciliation. So "what the agent did" (tool calls + their results) is already auditable and evaluatable.

What it does not cover — the gap

The permission/decision layer around those tool calls is not persisted anywhere durable:

  • Tool approvals/denials and the "remember" checkbox — src/main/services/approval.ts, src/renderer/views/approval-dialog.ts (in-memory for the session only).
  • Sandbox-vs-external scope classifications and any user override — src/main/services/safety-classifier.ts.
  • Hook allow/block verdicts — src/main/services/cursor-hooks.ts.
  • Sandbox scope grants — src/main/project-sandbox/.

None of these are queryable once the session ends, so you can't answer "what did I approve, when, at what scope, and did I make it sticky?"

Scope

Related

#644 / #647 (thread-spine substrate), #645 (OKF knowledge store), #639 (hooks parity).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:securitySecurity boundaries, permissions, secrets, and hardeningarea:storagePersistence, threads, memories, and migrationenhancementNew feature or requestpriority:p2Important issue to address soonsecuritySecurity vulnerability or hardeningstatus:needs-verificationLikely implemented or stale; verify acceptance criteria before closing

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions