8000 T4 — Stop min login minting certificates and remove min ssh-forward from the client by minimal-foundry[bot] · Pull Request #1673 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T4 — Stop min login minting certificates and remove min ssh-forward from the client - #1673

Merged
norrietaylor merged 4 commits into
mainfrom
agent/1613-stop-min-login-minting-certificates-and-remove-m
Sep 25, 2026
Merged

norrietaylor merged 4 commits into
mainfrom
agent/1613-stop-min-login-minting-certificates-and-remove-m

Conversation

@minimal-foundry
Copy link
Copy Markdown
Contributor

T4 — Stop min login minting certificates and remove min ssh-forward from the client

slice: S1
kind: task
covers: NET-111
size: M
est: 180 code, 120 tests
executor: agent
difficulty: routine
model: standard
diagnostics: min login prints that it minted no certificate, and the ssh-forward verb is refused by the argument parser with its usage
observability: min login prints one line saying it has nothing to mint; the removed verb logs nothing because it no longer exists
layers:
- cli:
- crates/minimal/src/cli.rs: removes SshForward and SshForwardArgs; LoginArgs loses cert_dir and the Login doc no longer mentions certificates
- crates/minimal/src/cmd/admin.rs: removes cmd_ssh_forward; cmd_login stops calling the certificate RPC and writes no key or certificate
- crates/minimal/src/cmd/mod.rs: drops the ssh-forward dispatch arm
- crates/minimal/src/tests.rs: drops the ssh-forward row from the connection inventory and adds the tests
test: cargo nextest run -p minimal cli_reference_has_no_retired_commands
test: cargo nextest run -p minimal login_mints_no_certificate
produces: none
consumes: none
proof: min ssh-forward no longer exists, min login writes no key or certificate, and the CLI reference names neither.

Proof

min ssh-forward no longer exists: the argument parser refuses it with "error: unrecognized subcommand 'ssh-forward'" plus its usage (observed on the built binary), and the dispatch arm, args struct and connection-inventory row are gone. min login connects to no daemon and writes no key or certificate; it prints the single line "Nothing to mint: the HTTPS reverse proxy is retired, so no client certificate is issued and no key is written." and --cert-dir is refused by the parser. docs/reference/cli-min.md names neither retired surface, and the new cli_reference_has_no_retired_commands test holds that guard.

Notes from the agent: All four layer files only; no other file touched. Left out of scope on purpose: crates/minimal/Cargo.toml's comment still says remote-access "gates the mesh and ssh-forward CLI subcommands" — the ssh-forward half of that comment is now stale, the mesh half is true, and the file is not in this task's layers. Daemon-side IssueClientCert and the direct-tcpip handler remain, per NET-110 (direct-tcpip is kept; daemon-side retirement is not this task's client-only layer list). diag/collect.rs still lists client.pem/ca.pem/client.key as bundle candidates — harmless, they no longer exist on disk, and tests/bug.rs's client.key skip assertions are unaffected. The reference test deliberately does not grep for the bare word "login": the verb survives (NET-109 retires the surface, not the verb) and will be documented again when the sign-in lands, so the guard is on ssh-forward and the minted file names (--cert-dir, client.pem/key, ca.pem). Extra runs besides the two named line 8000 s: every_daemon_connection_is_classified and cli_command_tree_stays_renderable both pass; cargo clippy -p minimal --all-targets is clean with and without --features remote-access; cargo fmt -p minimal clean.

Tests

line exit tail
cargo nextest run -p minimal cli_reference_has_no_retired_commands 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-5e63... Compiling args v0.0.1 (/home/runner/.local/state/minimal/sessions/317d9/tree/crates/args) Compiling ot v0.0.1 (/home/runner/.local/state/minimal/sessions/317d9/tree/crates/ot) C
cargo nextest run -p minimal login_mints_no_certificate 0 Applying loadouts: default Running task runtime-implement-test-1 in session task-runtime-implement-test-1-0d3a... Compiling stdlib v0.0.20 (/home/runner/.local/state/minimal/sessions/cd6c7/tree/crates/stdlib) Compiling version v0.6.0 (/home/runner/.local/state/minimal/sessions/cd6c7/tree/crate

Verify

min task run agent-verify timed out after 600s, so this PR is a draft.

cal/state/minimal/sessions/d4dd0/tree/crates/sessions)
    Checking sandbox2 v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/sandbox2)
    Checking mfile v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/mfile)
    Checking minimald-rpc v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimald-rpc)
    Checking checkouts v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/checkouts)
    Checking decode v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/decode)
    Checking minimal-client v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimal-client)
    Checking minimal-tui v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimal-tui)
    Checking graph v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/graph)
    Checking lcache v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/lcache)
    Checking op v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/op)
    Checking rcache v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/rcache)
    Checking orchestrator v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/orchestrator)
    Checking check v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/check)
    Checking mctx v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/mctx)
    Checking remote-client v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/remote-client)
    Checking minimald v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimald)
    Checking minimal v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimal)
    Checking mip v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/mip)
    Finished `dev` profile [unoptimized] target(s) in 9m 10s
   Compiling stdlib v0.0.20 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/stdlib)
   Compiling version v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/version)
   Compiling mlog v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/mlog)
   Compiling minimal-client v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimal-client)
   Compiling minvmd v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minvmd)
   Compiling decode v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/decode)
   Compiling minimal-tui v0.6.0 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/minimal-tui)
   Compiling graph v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/graph)
   Compiling lcache v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/lcache)
   Compiling op v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/op)
   Compiling rcache v0.0.1 (/home/runner/.local/state/minimal/sessions/d4dd0/tree/crates/rcache)

Closes #1613

The HTTPS reverse proxy and its daemon-issued client certificates are
retired (NET-109), and with them the client half of the surface:

- `min ssh-forward` is gone from the command tree, the dispatch, and the
  connection inventory; the daemon's direct-tcpip handler stays, per the
  same ruling.
- `min login` no longer calls the certificate RPC, spawns a daemon, or
  writes a key or CA; it prints the one line saying there is nothing to
  mint, and `--cert-dir` is refused by the parser.
- new tests: `login_mints_no_certificate` and
  `cli_reference_has_no_retired_commands` (NET-111), guarding that the
  CLI reference documents neither retired surface.
@coderabbitai
coderabbitai Bot commented Sep 24, 2026 •
Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

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

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 05c8e736-e5d8-42fd-8642-676b48195728

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

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

@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.

Reviewed against T4's plan block on #1437 (layers, two test lines, proof).

  • Scope: exactly the four layer files, nothing else. SshForward, SshForwardArgs, cmd_ssh_forward and the dispatch arm are gone; LoginArgs lost cert_dir; cmd_login makes no RPC and writes nothing. No helper was orphaned: connect_daemon, ensure_daemon, resolve_session_version_gated and resolve_minimal_config_dir all keep other callers.
  • Tests: both plan lines pass on the runner and in CI. login_mints_no_certificate runs the verb with no daemon, checks the three files are absent, refuses --cert-dir, and guards the function body against re-minting. cli_reference_has_no_retired_commands guards docs/reference/cli-min.md against the retired names and asserts the parser refuses ssh-forward with usage. The connection inventory drops the ssh-forward row.
  • Proof matches the task's proof line.
  • Draft cause: agent-verify timed out at 600 s with clippy alone taking 9m10s in a cold clone. Not a code defect. Every CI lane is green on the head (ci, linux-native, linux-kvm, kani, shell-installer, commitlint; macOS in progress).

Approving. The stale ssh-forward mention in crates/minimal/Cargo.toml's feature comment is out of this task's layers, as the PR notes; it can ride with T5.

@norrietaylor
norrietaylor marked this pull request as ready for review September 24, 2026 06:13
@norrietaylor
norrietaylor requested a review from a team as a code owner September 24, 2026 06:13
Copilot AI lite review requested due to automatic review settings September 24, 2026 06:13
@minimal-foundry
minimal-foundry Bot commented Sep 24, 2026 •
Copy link
Copy Markdown
Contributor Author

Approved: every review thread resolved at 3d1ae4b89716.

@norrietaylor resolved the last thread, which releases the approval this review had withheld.

Nothing to do.

Copilot AI 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.

Copilot review overview

🔵 Needs a closer look

Verification timed out, and the login-output test does not exercise the command end to end.

Review effort: Lite
Findings: 1 Low severity

Open (1)
What changed in this PR

Retires client-side certificate minting from min login and removes the ssh-forward command.

Changes:

  • Makes min login a no-op without daemon or filesystem access.
  • Removes SSH forwarding CLI definitions and dispatch.
  • Adds regression coverage for retired surfaces.
File Summary
crates/​minimal/​src/​tests.rs Updates inventories and adds retirement tests.
crates/​minimal/​src/​cmd/​mod.rs Removes SSH-forward dispatch.
crates/​minimal/​src/​cmd/​admin.rs Removes forwarding and certificate-minting logic.
crates/​minimal/​src/​cli.rs Removes retired CLI definitions and certificate options.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread crates/minimal/src/tests.rs Resolved
@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 — approval withheld

Verdict COMMENT — APPROVE withheld: 1 unresolved thread — copilot-pull-request-reviewer[bot] crates/minimal/src/tests.rs:350. No findings.

@norrietaylor
8000 Copy link
Copy Markdown
Member

/revise Address the open Copilot thread on crates/minimal/src/tests.rs (login_mints_no_certificate): the test asserts the helper's string, not that cmd_login prints it. Make the test prove the verb emits the line — capture what the handler writes, or at least assert cmd_login's body calls login_nothing_to_mint_line and prints it — and answer the thread (👍 and fix if valid, 👎 with the reason if not). Touch only the task's layer files.

norrietaylor added a commit that referenced this pull request Sep 24, 2026
A cold workspace clippy alone ran 9 m 10 s of the gate's 600 s on #1673
and the gate was stopped before nextest began, so a green tree opened as
a draft. Clippy now takes the same -p flags nextest already does; with no
touched crate it still runs over the workspace. -p checks every
dependency of the touched crates, so a warning there is still caught.
@norrietaylor
Copy link
Copy Markdown
Member

/revise Judge the open Copilot thread at crates/minimal/src/tests.rs:350: fix it if it is right, otherwise answer it with the reason so the thread can be resolved and the runtime's approval released.

@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 — every review thread is resolved; @norrietaylor closed the last one. The review of 6c365fd79a09 withheld this approval on the threads open then. Posted as a comment: the App cannot approve its own pull request; the check and the label carry it.

@minimal-foundry minimal-foundry Bot added the review:approved minimal-review approved the current head label Sep 24, 2026
@norrietaylor
Copy link
Copy Markdown
Member

/revise Judge the open Copilot thread at crates/minimal/src/tests.rs:350 (round 1 died before the coder ran): fix it if it is right, otherwise answer it with the reason so the thread can be resolved.

The login_mints_no_certificate test asserted on the string the
login_nothing_to_mint_line helper returns, so removing the print or
printing a different line still passed (Copilot, PR #1673). cmd_login
now writes its notice to a caller-supplied writer (the dispatch hands
it a locked stdout) and the test reads the captured output back:
it must contain 'Nothing to mint' and be exactly the required line
plus one newline.
@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 — approval withheld

Verdict COMMENT — APPROVE withheld: 1 unresolved thread — copilot-pull-request-reviewer[bot] crates/minimal/src/tests.rs. No findings.

@minimal-foundry minimal-foundry Bot removed the review:approved minimal-review approved the current head label Sep 25, 2026
@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 — every review thread is resolved; @norrietaylor closed the last one. The review of 3d1ae4b89716 withheld this approval on the threads open then. Posted as a comment: the App cannot approve its own pull request; the check and the label carry it.

@minimal-foundry minimal-foundry Bot added the review:approved minimal-review approved the current head label Sep 25, 2026
@norrietaylor
norrietaylor enabled auto-merge (squash) September 25, 2026 00:49
@norrietaylor
norrietaylor merged commit 2608bdb into main Sep 25, 2026
33 checks passed
@norrietaylor
norrietaylor deleted the agent/1613-stop-min-login-minting-certificates-and-remove-m branch September 25, 2026 00:54
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.

T4 — Stop min login minting certificates and remove min ssh-forward from the client

2 participants

0