M3a spec: fold in area E's findings; runbook and egress to match
Every request is recorded, unreadable state is recorded as secret, a refusal that cannot be recorded is an error, and the other cases the brokerd reference settled. The audit-unavailable and broker-state-damaged entries name the new messages; egress lists the development calls to straylight. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-2
@@ -52,7 +52,14 @@ grants again at the next call.
|
||||
## audit-unavailable
|
||||
|
||||
**What you see.** `brokerd` prints an error writing to `$BOXMAKER_HOME/audit/`, then this entry.
|
||||
Tool calls are denied, and the model says "the audit log cannot be written".
|
||||
Tool calls are denied, and the model says "the audit log cannot be written". Every later call
|
||||
prints `brokerd: an earlier audit write failed; every call is denied until brokerd is restarted`.
|
||||
A call that ran but whose result could not be recorded reaches the model as "the result could not
|
||||
be recorded", without its content; `bxctl refuse` says "the refusal could not be recorded".
|
||||
|
||||
A variant: `brokerd: a thread panicked while holding the ledger`. That is a bug in `brokerd`, not
|
||||
a disk problem; the fix below is the same, and the panic message above it in `brokerd`'s output is
|
||||
worth keeping for a report.
|
||||
|
||||
**Why.** A call runs only after its decision is on disk. If the record cannot be written, nothing
|
||||
runs.
|
||||
@@ -161,7 +168,8 @@ does not help and is not needed.
|
||||
**What you see.** `brokerd` prints an error reading or writing
|
||||
`$BOXMAKER_HOME/broker/sessions/<id>.json`, then this entry. Either every call for that session is
|
||||
denied ("this session's broker state is damaged"), or one call failed with "the result could not
|
||||
be recorded".
|
||||
be recorded". Such a call has no `Result` record, so `bxctl audit verify` lists it under "running
|
||||
or unfinished"; that is expected, not a second fault.
|
||||
|
||||
**Why.** The file holds the session's taint and untrusted flag. If `brokerd` cannot read it, it
|
||||
does not know how sensitive the session's data is, so it denies. If it cannot write it after a
|
||||
|
||||
Reference in New Issue
Block a user