Skip to content

fix(audit): propogate errors after unparseable ledger - #1596

Open
kurtisc wants to merge 3 commits into
kurtisc/integration-refactorfrom
kurtisc/audit-unparseable
Open

fix(audit): propogate errors after unparseable ledger#1596
kurtisc wants to merge 3 commits into
kurtisc/integration-refactorfrom
kurtisc/audit-unparseable

Conversation

@kurtisc

@kurtisc kurtisc commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Linked Issue

Closes #1583

Summary

Keeps child processes' exit codes past finalisation and reports errors after this stage locally.

Warns instead of aborting when a ledger append is skipped.

Doesn't attempt to fix corrupted ledgers.

Test Plan

New integration test + steps to reproduce

Checklist

  • An issue exists and is linked above
  • All commits are signed-off, using DCO
  • All new code follows the project's coding standards (CLAUDE.md) and is covered by tests
  • Public-facing changes are paired with documentation updates

@github-actions github-actions Bot added bug Something isn't working nono-cli size/medium labels Aug 7, 2026
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

PR Review Summary

Size

Metric Value
Lines added +415
Lines removed -21
Total changed 436
Classification Large (> 300 lines)

Affected crates

  • crates/nono (core library) — careful review required. This is the security-critical sandbox primitive. A bug here bypasses OS-level isolation for every downstream user.
  • crates/nono-cli — CLI changes. Verify argument parsing, flag documentation, and UX behaviour across supported platforms.
  • bindings/c (C FFI) — ABI changes can silently break C callers. Confirm header and symbol compatibility.

Blast radius — Contained

This PR touches: source code


Updated automatically on each push to this PR.

@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 9db242d to 05d3567 Compare August 7, 2026 14:59
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 05d3567 to 352313d Compare August 7, 2026 15:00
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 352313d to e9e52a5 Compare August 7, 2026 15:02
@kurtisc

kurtisc commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Trying out stacked PRs

@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from e9e52a5 to 50e5439 Compare August 7, 2026 15:25
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 50e5439 to ca76e24 Compare August 7, 2026 17:55
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from ca76e24 to f215496 Compare August 7, 2026 18:53
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from f215496 to 07a2dfb Compare August 7, 2026 19:03
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 07a2dfb to 8803e8b Compare August 7, 2026 19:11
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 8803e8b to 934d9a0 Compare August 7, 2026 19:17
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 934d9a0 to 302eda3 Compare August 10, 2026 11:41
@kurtisc
kurtisc marked this pull request as ready for review August 10, 2026 11:41

@nogent-nolabs-ai nogent-nolabs-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛡️ nogent could not produce a schema-conforming security review for this change (the model output failed canary/shape validation). A maintainer should review manually.

Adds an integration test for a global audit ledger holding two records
on one line.

Refs: #1583
Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
Reports session finalisation errors on stderr so child processes' exit
codes can be bubbled up.

Refs: #1583
Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
Reports ledger append errors locally so audit shipping and rollback
review aren't skipped.

Fixes: #1583
Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
@kurtisc
kurtisc force-pushed the kurtisc/audit-unparseable branch from 302eda3 to 08dba91 Compare August 10, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

An unparseable audit ledger silently halts all audit recording and forces every nono run to exit 1

1 participant