Repository navigation
feat(bep): wire the client-key bound into bep serve with --max-client-keys (T69) - #2593
Conversation
bep serve now binds its control socket through Control::bind_with_key_bound, with the count from --max-client-keys (default 16). A value below 1 is refused when the arguments parse, before the proxy starts. The idle period stays None until gominimal/arch#85 decides the root validity.
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
|
Approved: no findings at 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 seen. |
There was a problem hiding this comment.
arch-review: PASS_WITH_CONDITIONS · 1 condition · the full ruling
The flag conforms to Gatehouse §6.10. It sizes the client key registry and does not move the registration off the local UDS. The default does not change, and a bad value is refused before the proxy starts. Two docs in crates/bep/src/control.rs now say that the proxy binary has no setting for the bound. The PR body defers that fix to a follow-up and names no issue. Fix the docs or file the issue, as C1 says.
Outside the diff
crates/bep/src/control.rs:101: C1 · This doc says that the proxy binary has no setting for the bound. After this changebep serve --max-client-keyssets it. Change this text and thebind_with_key_bounddoc at line 1044. Or file an issue for the edit and name it in the PR body.
Ruled at 1d27615 against gominimal/arch@109541a48c31 by claude-opus-5-5.
There was a problem hiding this comment.
Babysitter approval at 1d27615: every merge gate passes at this head (arch PASS at 1d27615, zero open threads, every lane aggregator green). Squash title feat(bep): wire the client-key bound into bep serve with --max-client-keys (T69) and the squashed message pass commitlint. Queued for squash merge.
Generated by Claude Code
|
/revise Round on #2593 after a merge-queue failure at 1d27615. No round is in flight. #2583 (T33) landed on main and gave
Generated by Claude Code |
…lient-key-bound-into-bep-serve
main gave wire a fourth parameter (T33). The T69 test called it with three arguments, which broke the merge-queue build with E0061.
|
Round 1 of 10 on a /revise note, pushed as
Verify
Notes from the agent: The merge of main was already on the branch (4a54d9d) with no conflicts. This round adds one change: the test call to |
There was a problem hiding this comment.
arch-review: PASS_WITH_CONDITIONS · 1 condition · the full ruling
This head adds one test argument after the merge of main. The baseline ruling on 1d27615 stands. bep serve keeps client key registration on the control socket, as Gatehouse §6.10 line 842 says, and BEP-063 conforms. C1 stays open as residual #2598. Correct the two crates/bep/src/control.rs docs that say the proxy binary has no setting for the bound.
Ruled at c34ca30 against gominimal/arch@109541a48c31 by claude-opus-5-5.
There was a problem hiding this comment.
Own review at c34ca30: a merge of main plus one argument, Vec::new() for the restored box ids, in the key-bound test's wire call. That fixes the E0061 the merge queue hit after #2583. No other change since 1d27615.
Generated by Claude Code
There was a problem hiding this comment.
Babysitter approval at c34ca30: every merge gate passes at this head (arch PASS at c34ca30, zero open threads, every lane aggregator green). Squash title feat(bep): wire the client-key bound into bep serve with --max-client-keys (T69) and the squashed message pass commitlint. Queued for squash merge.
Generated by Claude Code
|
The merge-queue run for this PR (run 40280021752, Generated by Claude Code |
T69 — Wire the client-key bound into bep serve
slice: S10
kind: task
covers: BEP-063
size: S
est: 50 code, 60 tests
executor: agent
difficulty: routine
model: standard
diagnostics:
bep serve --helpnames the bound flag, and a bad value is refused before the proxy startsobservability: one info line at start with the key bound in force
layers:
- serve:
- crates/bep/src/main.rs:
bep servebuilds its control socket throughControl::bind_with_key_boundwith aKeyBoundfrom a flag; the idle period staysNoneuntil gominimal/arch#85 decides the root validitytest: cargo nextest run -p bep serve_passes_its_key_bound_to_the_control_socket
produces: none
consumes: none
proof:
bep servestarted with a smaller key bound keeps at most that many client keys.depends on:
- assumes OQ3 (the mint reads the root certificate's own expiry, and the root is generated with a fixed default validity in one constant that gominimal/arch#85's ruling replaces)
- blocked by #2543
Proof
bep serve --max-client-keys 2keeps at most two client keys on its control socket. A third registration drops the key registered least recently.bep serve --helplists the flag with its default of 16.--max-client-keys 0, or a value that is not a number, is refused before the proxy starts.Notes from the agent: The flag is
--max-client-keys <N>. Its default is KeyBound::DEFAULT_MAX_KEYS (16). The idle period stays None, as the task says. At start, one info line logs max_client_keys and idle. Out of scope and not changed: the module doc in crates/bep/src/control.rs (lines 98-103) and the doc on Control::bind_with_key_bound still say that the proxy binary has no setting for the bound and does not call that function. That text is now stale. A follow-up must correct it, because control.rs is outside this task's layers.cargo clippy -p bep --all-targetsgives no warnings.Tests
cargo nextest run -p bep serve_passes_its_key_bound_to_the_control_socketVerify
min task run agent-verifypassed ([tasks.verify]).Residuals
crates/bep/src/control.rsdocs that still say the proxy binary has no setting for the bound.Closes #2579
Generated by Claude Code