Repository navigation
docs(audit): Audit vs Audit2 surface, pin legacy Audit unserved (phase 7) #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -202,6 +202,36 @@ The stable journal supplies receipt authority; rotated files are reconstructable | |
| views. Process termination/recovery tests do not imply physical power-loss or | ||
| Windows directory-creation durability guarantees. | ||
|
|
||
|
|
||
| ### Audit versus Audit2 | ||
|
|
||
| One ordered, contiguous audit stream per trusted scope and stream identity carries | ||
| policy-change, native-routine, approval, judge, shell, execution and sandbox | ||
| decisions as `AuditKind2` events. `Audit2` (callback `AuditSink2`) is the only | ||
| served audit member. The legacy `Audit` name and `AuditKind`/bool-receipt | ||
| vocabulary are reserved and never served: a bool cannot prove which event | ||
| committed, in what order, or against which tail. Every legacy kind keeps its | ||
| serialized name in `AuditKind2`; `shell` is the one added category. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win Document and test both added
📍 Affects 2 files
🤖 Prompt for AI Agents |
||
|
|
||
| `Audit2` takes an exact sanitized batch with `expected_tail` and returns an exact | ||
| receipt (`AuditEventReceipt2` per event, `new_tail`) only after data and metadata | ||
| sync. `EvaluateAudited2`/`CheckAudited2` (and the scoped variants) derive the | ||
| pre-execution event from the original request and computed verdict, so the host | ||
| never supplies the verdict. Terminal `RecordExecution2` events are a separate | ||
| phase. | ||
|
|
||
| Local files: Unix creates journal, lock and JSONL projections fd-relative with | ||
| mode 0600 and verifies owner and mode on every open. Windows requires a | ||
| preprovisioned protected current-user DACL and creates new views with restricted | ||
| inherited access; it never widens an existing ACL. Rotation runs before the | ||
| journal append, so a rotation failure (including a Windows sharing/lock violation | ||
| on rename) denies the candidate before any journal byte is written, and the same | ||
| retry commits exactly once after the blocker releases. | ||
|
|
||
| Failure semantics: required audit denies pre-execution on any callback or storage | ||
| failure, timeout, malformed receipt or stale generation. Optional audit reports | ||
| degraded health, never fabricates a receipt and never sets `committed`; scope and | ||
| sanitation failures deny even when audit is optional. | ||
| ## Sandbox and crypto | ||
|
|
||
| Contract 1.9 implements `Plan2`, `EvaluateSandboxApproval2` and | ||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AuditKind2also addsNativeRoutine, which is absent from legacyAuditKindand serializes asnative_routine; the preceding sentence even includes native-routine in the stream vocabulary. Callingshellthe sole addition therefore misstates the accepted wire contract and can lead consumers comparing the two versions to assumenative_routinecannot occur. Update this specification and the matching test comment to identify both added categories.AGENTS.md reference: AGENTS.md:L162-L163
Useful? React with 👍 / 👎.