Skip to content

W0 split: server.rs, main.rs and the Justfile split by area, held to pre-split goldens - #483

Merged
hyperpolymath merged 5 commits into
claude/zen-brahmagupta-opqqle-w0-integfrom
claude/zen-brahmagupta-opqqle-w0-split2
Nov 9, 2026
Merged

hyperpolymath merged 5 commits into
claude/zen-brahmagupta-opqqle-w0-integfrom
claude/zen-brahmagupta-opqqle-w0-split2

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

This is the W0 "split" lane. It is stacked on #475, which carries the gate it is checked against. Three hotspot files are broken into modules by area. Behaviour is held fixed by goldens captured on the pre-split tree, and W0 exit check 5 compares them. Nothing is renamed or redesigned.

Changes

  • Goldens first (535274c). tests/golden/hotspot/ holds 27 files captured before any move: every route, the router composition, and --help for each CLI command and subcommand. scripts/gates/hotspot-goldens.sh regenerates them and compares.
  • src/rust/server.rs → server/{mod,agent,prove,search,session,status,ui,verify}.rs (a2fb862). Handlers move by route family. mod.rs keeps router composition and shared state.
  • src/rust/main.rs → cli/{args,util,prove,verify,search,session,provers,lexicon,corpus,design}.rs (ee2ed98). main.rs keeps only parsing, tracing set-up and dispatch; cli/mod.rs re-exports the command functions.
  • Justfile → just/*.just (9444837). There are 14 files, one per area, pulled in by import. The contractile import stays last. Recipe names and bodies are unchanged; just --list matches before and after.
  • Merged from W0 gate: gate convention, w0.sh exit gate, and fixes for its false greens #475's base: the fix(ci): restore main's red checks (rmcp RustSec, rustfmt, Hypatia Zig casts) #465 fix for the red checks on main (rmcp 3.9.0, rustfmt on proof_search.rs, and the Zig-cast annotations).

RSR Quality Checklist

Required

  • Tests pass. W0 check 5 (hotspot goldens) passes, and so does cargo check --bins after the merge. I have not run the full just test on this branch: disk here is limited. This PR's CI runs it.
  • Code is formatted (cargo fmt --all -- --check is clean).
  • Linter is clean (cargo clippy was clean when the split landed).
  • No banned language patterns.
  • No new unsafe.
  • No banned functions.
  • SPDX headers on all new files.
  • No secrets.

As Applicable

Testing

  • bash scripts/gates/hotspot-goldens.sh check exits 0: routes, router composition and CLI help are byte-identical to the pre-split capture.
  • cargo check --bins and cargo fmt --all -- --check pass on the merged head.
  • Already broken on the pre-split tree, and not changed here: echidna corpus import-octads --help panics (exit 101). It has its own follow-up.

Refs #416


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 35 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 385cc0ca-32d4-4ceb-a7b8-201738c8fabb
Commits

Reviewing files that changed from the base of the PR and between 7304141 and d06d858.

Files selected for processing: 63

  • Justfile
  • just/build.just
  • just/chapel.just
  • just/containers.just
  • just/corpus-design.just
  • just/corpus.just
  • just/creusot.just
  • just/dev.just
  • just/init.just
  • just/onboarding.just
  • just/other.just
  • just/proofs.just
  • just/saturation.just
  • just/spark.just
  • just/ui.just
  • src/rust/cli/args.rs
  • src/rust/cli/corpus.rs
  • src/rust/cli/design.rs
  • src/rust/cli/lexicon.rs
  • src/rust/cli/mod.rs
  • src/rust/cli/prove.rs
  • src/rust/cli/provers.rs
  • src/rust/cli/search.rs
  • src/rust/cli/session.rs
  • src/rust/cli/util.rs
  • src/rust/cli/verify.rs
  • src/rust/main.rs
  • src/rust/server.rs
  • src/rust/server/agent.rs
  • src/rust/server/mod.rs
  • src/rust/server/prove.rs
  • src/rust/server/search.rs
  • src/rust/server/session.rs
  • src/rust/server/status.rs
  • src/rust/server/ui.rs
  • src/rust/server/verify.rs
  • tests/golden/hotspot/help/echidna.corpus.crossquery.txt
  • tests/golden/hotspot/help/echidna.corpus.export-octads.txt
  • tests/golden/hotspot/help/echidna.corpus.identity.txt
  • tests/golden/hotspot/help/echidna.corpus.import-octads.txt
  • tests/golden/hotspot/help/echidna.corpus.ingest.txt
  • tests/golden/hotspot/help/echidna.corpus.near.txt
  • tests/golden/hotspot/help/echidna.corpus.query.txt
  • tests/golden/hotspot/help/echidna.corpus.stats.txt
  • tests/golden/hotspot/help/echidna.corpus.txt
  • tests/golden/hotspot/help/echidna.design.search.txt
  • tests/golden/hotspot/help/echidna.design.swarm.txt
  • tests/golden/hotspot/help/echidna.design.txt
  • tests/golden/hotspot/help/echidna.diagnostics.txt
  • tests/golden/hotspot/help/echidna.info.txt
  • tests/golden/hotspot/help/echidna.interactive.txt
  • tests/golden/hotspot/help/echidna.lexicon.scan.txt
  • tests/golden/hotspot/help/echidna.lexicon.txt
  • tests/golden/hotspot/help/echidna.list-provers.txt
  • tests/golden/hotspot/help/echidna.prove.txt
  • tests/golden/hotspot/help/echidna.search.txt
  • tests/golden/hotspot/help/echidna.server.txt
  • tests/golden/hotspot/help/echidna.suggest.txt
  • tests/golden/hotspot/help/echidna.txt
  • tests/golden/hotspot/help/echidna.verify.txt
  • tests/golden/hotspot/just-list.txt
  • tests/golden/hotspot/router-composition.txt
  • tests/golden/hotspot/routes.txt
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@hyperpolymath
hyperpolymath marked this pull request as ready for review November 9, 2026 15:30
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T21:23:20.439685Z d06d858 New commits
🔒 Security Review ❌ Failed 2026-11-09T21:19:14.721235Z
We couldn’t complete this review. Comment @codex security review to try again.
d06d858 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@hyperpolymath
hyperpolymath added this pull request to stack #486 November 9, 2026 15:36
let tactic = parse_tactic_from_json(&req.tactic)?;

// Apply tactic
let proof_state = session.state.as_ref().unwrap();
@hyperpolymath
hyperpolymath enabled stacked auto-merge (squash) November 9, 2026 20:53
@coderabbitai

coderabbitai Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Add Carrot credits or activate Agent usage billing to use Autofix

Repository owner deleted a comment from chatgpt-codex-connector Bot Nov 9, 2026
Repository owner deleted a comment from chatgpt-codex-connector Bot Nov 9, 2026
Repository owner deleted a comment from chatgpt-codex-connector Bot Nov 9, 2026
scripts/gates/hotspot-goldens.sh capture was run at 7236e9d, the integ
lane head, before any file moves. It records:
- 23 help texts, every subcommand to depth 3;
- the .route table (20 lines);
- the router composition (4 lines);
- just --list (166 lines).

W0 exit check (5) diffs against these, so the split must leave them
unchanged. Never re-capture to silence a diff.

`echidna corpus import-octads --help` exits 101 (a panic). The golden
records that as behaviour. It is a separate defect, not fixed here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS4mfQeC3N1DWjcCQJaQqw
…,session,status,ui,verify}.rs

This is a pure move (ultraplan NEW:hotspot-split). Handlers move into
modules by concern, mod.rs keeps AppState, the router and the shared
helpers, and each module imports what it uses explicitly from super::.
Visibility is pub(super); nothing new is exported.

The move is the one prepared in bf79c02. Three changes that landed on
main afterwards are carried over: diagnostics_health_handler and the two
prove_handler record_prover_result calls now propagate dispatcher
errors as AppError::InternalError.

Checked:
- cargo check --bin echidna is clean, with and without --features
  verisim.
- Comparing line multisets of the original server.rs and the new
  modules, ignoring use lines and visibility, leaves only import
  regrouping, a wrapped verify_handler signature, and cfg guards on
  imports that only the non-verisim path uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS4mfQeC3N1DWjcCQJaQqw
…session,provers,lexicon,corpus,design}.rs

This is a pure move (ultraplan NEW:hotspot-split). main.rs keeps only
main(): it parses Cli and dispatches.
- cli/args.rs holds the clap definitions (Cli, Commands, CorpusOp,
  LexiconOp, DesignOp, ProveOutput).
- cli/util.rs holds the shared helpers.
- Each other module holds one command group, unchanged.

Moved items become pub(crate) so main() can reach them, and Cli's
fields become pub(crate) for the same reason. Imports were narrowed per
module with cargo fix, plus six removed by hand, so nothing is
allow-listed.

Checked:
- cargo check --bin echidna --all-targets has no warnings.
- With --features verisim, only the pre-existing ProveRequest
  never-read warning remains (also on main).
- Comparing line multisets of the original main.rs and the new files,
  ignoring use, mod and visibility, leaves only one signature that
  rustfmt wrapped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS4mfQeC3N1DWjcCQJaQqw
This is a pure move (ultraplan NEW:hotspot-split). The root Justfile keeps
the settings, the project variable and the default recipe, and imports
just/{init,build,proofs,dev,corpus,ui,containers,chapel,spark,creusot,
other,onboarding,corpus-design,saturation}.just in the order the
sections used to appear.

The optional contractile.just import moves to the end. Its recipes then
list after the project recipes, as before. Without that, `just` (which
runs --list --unsorted) would show them first.

Checked:
- `just --list` and `just --list --unsorted` are byte-identical to
  their output before the split.
- `just --evaluate project` and a dry run of a moved recipe resolve.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS4mfQeC3N1DWjcCQJaQqw
…lit tree

hotspot-goldens.sh now prefixes each .route/.merge/.nest line with its
owning module (first component under src/rust/). These goldens were
captured on the pre-split tree (535274c) with that script and match the
post-split tree exactly: 18 server routes and 2 groove routes, so a route
moved to a different router now shows as a diff.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS4mfQeC3N1DWjcCQJaQqw
@hyperpolymath
hyperpolymath force-pushed the claude/zen-brahmagupta-opqqle-w0-split2 branch from 8700840 to d06d858 Compare November 9, 2026 21:19
@chatgpt-codex-connector

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

@sonarqubecloud

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
4.1% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@hyperpolymath
hyperpolymath merged commit 3c06ac3 into main Nov 9, 2026
83 of 89 checks passed
@hyperpolymath
hyperpolymath deleted the claude/zen-brahmagupta-opqqle-w0-split2 branch November 9, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants