PR 3/3: Crucible backend (capstone) - #98
Draft
ericeil wants to merge 1 commit into
Draft
Conversation
ericeil
force-pushed
the
eric/crucible-app
branch
2 times, most recently
from
July 23, 2026 19:46
bb347ed to
f003b03
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
2 times, most recently
from
July 23, 2026 19:58
a707702 to
d890343
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
from
July 23, 2026 20:15
d890343 to
a985a45
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
from
July 23, 2026 22:23
a985a45 to
c4f8b82
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
2 times, most recently
from
July 23, 2026 23:55
0712081 to
85b3424
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
from
July 24, 2026 00:02
85b3424 to
f1381ae
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
from
July 24, 2026 00:08
f1381ae to
18ba037
Compare
ericeil
force-pushed
the
eric/crucible-app
branch
2 times, most recently
from
July 31, 2026 19:37
0e5cdff to
e2249eb
Compare
The Solana verification application, wiring PRs 1–2 and the upstream command sandbox together: the `crucible_app` wheel (`rust/crucible-app` — harness authoring, the in-loop judge, per-component units), the crucible RAG corpus as a committed manifest plus the shared importer, the `solana_vault` scenario and the crucible gates, and the container vertical (`Dockerfile.crucible`, the compose overlays, the entrypoint's setup-db). Rebased onto `eric/rust`, which now carries the framework layer these sit on. Everything in this commit is crucible-owned; the framework changes the Crucible work produced (the driver's `preflight` phase, the abstract component unit, the cargo/Solana build capabilities, the sandbox build grants, the RAG seam) live in PR 2, where the rest of that layer already was. Adopting PR 2's `uv sync`-builds-the-workspace mechanism: * `crucible_app` is back in the `apps` group and `[tool.uv.sources]`, so a bare `uv sync` compiles it — `dev` includes `apps`, and the container image (which sets `UV_NO_DEV=1`) still gets neither. * Its crate carries `[tool.uv] cache-keys` like the others, so editing the crate recompiles the wheel with no manual `maturin develop`. `templates/**/*.j2` and `askama.toml` are keys here and not on the other crates because askama compiles the templates *into* the binary — editing a `.j2` changes the wheel exactly as editing a `.rs` does. * `rust/Cargo.lock` is committed (no longer gitignored) and regenerated to include `crucible-app`; `uv.lock` likewise. docs/pr-split-plan.md records the boundary this re-split settled on.
ericeil
force-pushed
the
eric/crucible-app
branch
from
July 31, 2026 23:55
e2249eb to
e369524
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR 3 of 3 — Crucible backend (capstone)
Part of the stacked split of
eric/crucible(seedocs/pr-split-plan.md).Stack:
master→eric/ecosystem→eric/rust→eric/crucible-app.Base:
eric/rust(PR #97) — review PRs #96 and #97 first.The tip of the stack — the Solana verification application, wiring PR 1 (ecosystem) +
PR 2 (rust framework) + the upstream command sandbox together.
What this adds
composer/crucible/*andrust/crucible-app(the Crucible wheel)rust/crucible-app/crucible_kb.rag.json+ sharedcomposer/scripts/rag_import.py,composer/rag/{import_format,db}.py,composer/tools/crucible_rag.pyReportBackend"crucible"+ render labels +as_report_backendlauncherfor crucible (fail-closed; the launcher itself is upstream)test_scenarios/solana_vault+ the crucible test gates — the vault sample also makes PR 2'stest_solana_gaterunnable from heredocs/application-abstraction.md— the five pieces of an analyzed application / Rust appframework (moved here from the ecosystem PR, where it did not belong), plus the crucible-*
design docs
Finalizes the PR 2 cross-cutting intermediates
rust/Cargo.tomlre-adds thecrucible-appworkspace member.rustapp/adapter.pyswaps the tag cast back to the validatingas_report_backend, now thatreport/schema.pyclosesReportBackendto{prover, foundry, crucible}.sandbox/recipes.pyper-runRUSTUP_HOME;docker-compose.sandbox.ymlun-gatedrun-confined-build.Verification
cargo build(all 4 crates) ✓Notes
test_crucible_gate,test_crucible_setup_gate,test_crucible_formalize_gate,test_crucible_e2e_gate.(
setup/formalizewere verified green earlier this cycle against a real crucible build.)🤖 Generated with Claude Code