8000 docs(specs): name the handle jti in spec 24 BEP-039 (T85) by minimal-foundry[bot] · Pull Request #2641 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

docs(specs): name the handle jti in spec 24 BEP-039 (T85) - #2641

Merged
norrietaylor merged 1 commit into
mainfrom
agent/2600-name-the-handle-jti-in-spec-24-bep-039
Oct 26, 2026
Merged

norrietaylor merged 1 commit into
mainfrom
agent/2600-name-the-handle-jti-in-spec-24-bep-039

Conversation

@minimal-foundry
Copy link
Copy Markdown
Contributor

T85 — Name the handle jti in spec 24 BEP-039

slice: S12
kind: task
covers: BEP-039
size: S
est: 0 code, 60 tests
executor: agent
difficulty: routine
model: standard
diagnostics: none: the task changes only the spec text, so no tool prints anything new.
observability: none: the task changes only the spec text, so no trace, metric or log line changes.
layers:
- spec:
- docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md: BEP-039's field list and the property under it name jti, the handle's correlation id, which on a refusal is the unverified claim (Gatehouse §6.10 line 842; #2600)
test: cargo nextest run -p bep a_store_handle_audit_record_carries_its_jti
produces: none
consumes: none
proof: BEP-039 lists every field of a decision record, the handle's jti included.
depends on:
- blocked by #2576


Generated by Claude Code

Proof

In spec 24, BEP-039 now lists every field of a decision record, the handle's jti included. Its comment says the jti is empty with no handle or an unparseable handle, and is the unverified claim on a refusal. The BEP-040 property under it names the jti as part of the BEP-039 field set.

Notes from the agent: The code and the named test already existed at the branch head (crates/bep/src/audit.rs, crates/bep/src/redeemer.rs), so only the spec text changed. The test's own comment cites BEP-067 instead of BEP-039. I left it unchanged to keep the diff to the spec. I could not run just lint-prose because vale is not installed on this box.

Tests

line exit tail
cargo nextest run -p bep a_store_handle_audit_record_carries_its_jti 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-70d5... Compiling bep v0.0.1 (/workbench/crates/bep) Finished 'test' profile [unoptimized] target(s) in 15.73s ──────────── Nextest run ID 957a5b3e-712c-495d-8761-9a545a8d832f with nexte

Verify

min task run agent-verify exited 101 under rustc 1.98.1, which the repository does not pin (1.99.0 in rust-toolchain.toml); the PR is not a draft on that alone — CI, which honours the pin, is the gate.

toredEnv {
    |        ^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.98.0/index.html#must_use_candidate
help: add the attribute
    |
402 + #[must_use]
403 | pub fn deferring_env() -> StoredEnv {
    |

error: this method could have a `#[must_use]` attribute
    --> crates/boxes/src/core/compose.rs:1019:12
     |
1019 |     pub fn lifecycle_hooks_teardown(&self) -> impl DoubleEndedIterator<Item = &ProvenancedHook> {
     |            ^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.98.0/index.html#must_use_candidate
help: add the attribute
     |
1019 ~     #[must_use]
1020 ~     pub fn lifecycle_hooks_teardown(&self) -> impl DoubleEndedIterator<Item = &ProvenancedHook> {
     |

error: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]`
    --> crates/boxes/src/core/primitives.rs:1085:5
     |
1085 |     pub fn as_sandbox_path(&self) -> &SandboxRelPath {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
help: remove `must_use`
    --> crates/boxes/src/core/primitives.rs:1084:5
     |
1084 |     #[must_use]
     |     ^^^^^^^^^^^
     = note: alternatively, you may add an explicit reason to the `must_use` attribute
     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.98.0/index.html#double_must_use
     = note: `-D clippy::double-must-use` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(clippy::double_must_use)]`

error: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]`
    --> crates/boxes/src/core/primitives.rs:1302:5
     |
1302 |     pub fn host_path(&self) -> &HostAbsPath {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
help: remove `must_use`
    --> crates/boxes/src/core/primitives.rs:1301:5
     |
1301 |     #[must_use]
     |     ^^^^^^^^^^^
     = note: alternatively, you may add an explicit reason to the `must_use` attribute
     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.98.0/index.html#double_must_use

error: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]`
    --> crates/boxes/src/core/primitives.rs:1309:5
     |
1309 |     pub fn destination(&self) -> &SandboxRelPath {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
help: remove `must_use`
    --> crates/boxes/src/core/primitives.rs:1308:5
     |
1308 |     #[must_use]
     |     ^^^^^^^^^^^
     = note: alternatively, you may add an explicit reason to the `must_use` attribute
     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.98.0/index.html#double_must_use

error: could not compile `boxes` (lib) due to 6 previous errors
warning: build failed, waiting for other jobs to finish...

Closes #2600

BEP-039 and the BEP-040 property now list the handle's jti, the audit
correlation id. On a refusal the jti is the handle's unverified claim.
@coderabbitai
coderabbitai Bot commented Oct 26, 2026
Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ef7128f5-3772-4b5f-8b2e-e53c07021cd5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@github-actions
Copy link
Copy Markdown
Contributor

Spec lint

docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md — 9 finding(s)

docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:113: P004 BEP-003 names test 'bep_second_box_needs_no_sign_in', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:170: P004 BEP-007 names test 'bep_box_env_holds_sealed_value_only', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:214: P004 BEP-011 names test 'bep_root_ca_present_in_box_trust_store', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:230: P004 BEP-012 names test 'bep_proxy_env_and_no_proxy_are_set', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:284: P004 BEP-015 names test 'bep_git_and_gh_against_private_repo', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:625: P004 BEP-043 names test 'bep_destroyed_box_values_refused_within_60s', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:634: P004 BEP-044 names test 'bep_logout_refuses_every_reference_at_next_request', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:679: P004 BEP-047 names test 'bep_and_gvproxy_are_separate_processes_and_users', which was not found in the repository
docs/specs/24-spec-box-egress-proxy/24-spec-box-egress-proxy.md:688: P004 BEP-049 names test 'prop_audit_chain_detects_unrecomputed_edit', which was not found in the repository

Advisory. None of this blocks the merge; the review decides.

Advisory, and never a merge gate. Linter: gominimal/foundry@fb5932b8, spec format: How Minimal Writes Specs.

@minimal-foundry
minimal-foundry Bot commented Oct 26, 2026 •
Copy link
Copy Markdown
Contributor Author

Approved: no findings at 95cedea0f702.

Nothing to do.

Verdict APPROVE, posted as a comment: the App cannot review its own pull request; the check and the label carry it.

Clobber: none.

@minimal-foundry minimal-foundry Bot left a comment
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

minimal-review — approved

Verdict APPROVE — No findings.

Panel: 3 of 3 personas ran (correctness, security, supply-chain).

@minimal-foundry minimal-foundry Bot added the review:approved minimal-review approved the current head label Oct 26, 2026
@minimal-arch minimal-arch 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.

arch-review: PASS · the full ruling

BEP-039 now names the handle's jti, and the BEP-040 property includes it. Gatehouse §6.10 line 842 makes jti the audit correlation id and audits a refused store handle. The new text agrees with that line and with Record::jti in crates/bep/src/audit.rs. There are no conditions. A note for later: the test a_store_handle_audit_record_carries_its_jti cites BEP-067, and BEP-039's verify: line does not name it.

Ruled at 95cedea against gominimal/arch@109541a48c31 by claude-opus-5-5.

@norrietaylor norrietaylor left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Own review at 95cedea. BEP-039 now lists the handle's jti among the record fields, and the comment says it is empty with no handle or an unparsable one, and on a refusal the unverified claim. That matches Decision::jti and Record::jti in crates/bep/src/audit.rs and the redeemer's read of the claim (crates/bep/src/redeemer.rs). BEP-040's property now holds the jti fixed too. The verify lines name tests that exist on main.


Generated by Claude Code

@norrietaylor norrietaylor changed the title T85 — Name the handle jti in spec 24 BEP-039 docs(specs): name the handle jti in spec 24 BEP-039 (T85) Oct 26, 2026
@norrietaylor norrietaylor left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Babysitter approval at 95cedea: every merge gate passes at this head (arch PASS at 95cedea, zero open threads, every lane aggregator green). Squash title docs(specs): name the handle jti in spec 24 BEP-039 (T85) and the squashed message pass commitlint. Queued for squash merge.


Generated by Claude Code

@norrietaylor
norrietaylor added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit 587207f Oct 26, 2026
38 checks passed
@norrietaylor
norrietaylor deleted the agent/2600-name-the-handle-jti-in-spec-24-bep-039 branch October 26, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review:approved minimal-review approved the current head

Projects

None yet

Development

Successfully merging this pull request may close these issues.

T85 — Name the handle jti in spec 24 BEP-039

1 participant

0