8000 T34 — Report an edited audit chain in min doctor · Issue #2293 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T34 — Report an edited audit chain in min doctor #2293

Closed

Description

@norrietaylor

Task

slice size difficulty model who estimated lines
Audit segments rotate and the chain is checked M needs care standard an agent 400 (220 code, 180 tests)

Editing one audit record makes min doctor name where the chain breaks.

Covers:

  • BEP-049

Layers:

  • verify:
    • crates/bep/src/audit.rs: chaining and verification as pure functions over bytes, apart from the writer
    • scripts/kani.sh: the added harness's count
    • cargo nextest run -p bep prop_audit_chain_detects_unrecomputed_edit
    • cargo nextest run -p bep kani_audit_chain_detects_edit (deferred: kani)
  • cli:
    • crates/minimal/src/cli.rs: min doctor
    • crates/minimal/src/cmd/mod.rs: dispatch and module line
    • crates/minimal/src/cmd/doctor.rs (new): runs the audit chain check across every segment
    • cargo nextest run -p minimal doctor_reports_a_broken_audit_chain

Waits on:

Plan block
### T34 — Report an edited audit chain in min doctor
  slice: S5
  kind: task
  covers: BEP-049
  size: M
  est: 220 code, 180 tests
  executor: agent
  difficulty: needs care
  model: standard
  diagnostics: the chain check prints "Audit log: the hash chain breaks at record <n> of <segment>; a record was changed or removed." or "Audit log: chain verified." on stdout, pinned by prop_audit_chain_detects_unrecomputed_edit
  observability: one info log line per check naming the segments verified and the outcome
  layers:
    - verify:
      - crates/bep/src/audit.rs: chaining and verification as pure functions over bytes, apart from the writer
      - scripts/kani.sh: the added harness's count
      test: cargo nextest run -p bep prop_audit_chain_detects_unrecomputed_edit
      test (deferred: kani): cargo nextest run -p bep kani_audit_chain_detects_edit
    - cli:
      - crates/minimal/src/cli.rs: `min doctor`
      - crates/minimal/src/cmd/mod.rs: dispatch and module line
      - crates/minimal/src/cmd/doctor.rs (new): runs the audit chain check across every segment
      test: cargo nextest run -p minimal doctor_reports_a_broken_audit_chain
  produces:
    - crates/minimal/src/cmd/doctor.rs (entry point)
  consumes: none
  proof: Editing one audit record makes `min doctor` name where the chain breaks.
  depends on:
    - blocked by #2290

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:M200 to 500 net lines; one PR
    model:standardA standard model: work that needs care, or routine work that is large
    on Oct 17, 2026
  2. minimal-foundry commented on Oct 26, 2026

    @minimal-foundry
    Contributor

    Done. #2603 merged.

    branch agent/2293-report-an-edited-audit-chain-in-min-doctor · epic #1501 · PR #2603

    round outcome job
    1 pushed 856326f9
    2 pushed 3efa8232
    3 pushed 0c380b35
    3 pushed e76ce36c
    4 pushed c9d1c4c2
    5 pushed 934f4f6c
    6 pushed 9a16abae
    7 pushed 3ac8fa1d
    8 changed nothing: No change this round. The branch head fc23ee7 (fix(bep): bound the kani edit index without an overflow) already replaces 'kani::assume(i + 1 < n);' with 'kani::assume(i < n - 1);' in kani_audit_chain a1bca977
    9 changed nothing: every commit this round put on the branch above fc23ee7 is a merge of the base branch, so it carries no work of its own eb33a12c
    10 pushed fee97caf
    1 pushed 360ce2e7
    2 pushed 30edddd8
    3 changed nothing: The runner already merged origin/main (3bf8275) into the branch as 4a795630, so this round adds no commit. Investigation of minimald exec::tests::a_trickle_reader_fed_one_byte_chunks_is_still_ended: b37f47b9

    Updated 2026-10-29T01:35:18.595Z.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:taskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largesize:M200 to 500 net lines; one PR

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0