Repository navigation
DEVBOOT-0 continuation: two-client build proof on srv1/srv2, then serve gunbc build - #8078
gunbai-bot[bot] wants to merge 19 commits into
Conversation
review 50821 — addressed in
|
review 50830 — fixed in
|
| Entry | Typed outcome | Prose | Exit |
|---|---|---|---|
devboot_build_entry |
BuildOutcome via devboot_build |
render_build_outcome → receipt_path |
build_outcome_exit → ProcessExit |
devboot_serve_entry |
ServeReport via devboot_serve_request |
render_serve_report → receipt_path |
serve_report_exit → ProcessExit |
Receipt write failures route through shared receipt_write_refusal from gunbc.devboot.produce. Neither entry returns String; a successful BUILT/SERVED path now yields ExitSuccess.
Same commit is on session/proud-ferret-255 (23ab0b5ba1a) for #8049.
…path. Producer checkout against the artifact store uses GIT_DIR/GIT_WORK_TREE; clients treat a missing refusal entry as absent. vertical_receipt carries srv1+srv2 execution evidence against one srv3 compile via git transport. Co-authored-by: Cursor <cursoragent@cursor.com>
fbfcc16 to
6655cc7
Compare
…eipts. Move produced-ref skip and BuildReceipt.reused into build.dag, add gunbc build routing and fleet proof transcription, and anchor vertical_receipt evaluated_head to published main. Co-authored-by: Cursor <cursoragent@cursor.com>
Importing `none` from std.types made the parser reject `reason: none` in record literals; fix the reused-build witness match shape as well. Co-authored-by: Cursor <cursoragent@cursor.com>
The compile-clean gate refused devboot_serve_once because `head` is not a method on List<String>. Co-authored-by: Cursor <cursoragent@cursor.com>
Strip the request ref namespace by exact prefix, refuse store-list and ref-lookup failures instead of reading them as idle or settled, and refuse a produced ref whose digest entry is missing. Co-authored-by: Cursor <cursoragent@cursor.com>
Allows running the branch CLI from a branch checkout while snapshotting a published-main tree for the build subject. Co-authored-by: Cursor <cursoragent@cursor.com>
ground_service_ready_from_healthz eagerly evaluated materialize_live_roadmap_site_surface_bundle before the probe-error arm, so witness_accept_no_response_probe_fails_fast_not_hangs exceeded the 5s fast-lane budget on CI. Co-authored-by: Cursor <cursoragent@cursor.com>
devboot_serve_once_entry now returns ProcessExit via serve_once_outcome_exit with receipt write; serve git ops route through devboot_witness_run; DevbootBuildCliOutput collapses to {exit, line}; refusal arms gain discriminating witnesses; unrelated live_deploy/readiness change reverted for split.
Co-authored-by: Cursor <cursoragent@cursor.com>
…servation. Co-authored-by: Cursor <cursoragent@cursor.com>
…pes exports. Co-authored-by: Cursor <cursoragent@cursor.com>
…lit). Co-authored-by: Cursor <cursoragent@cursor.com>
Retire the shell-harness transcription rows and replace them with devboot_modeled_fleet_proof_receipt, populated from the observed modeled devboot_serve_once_entry run (one SERVED compile, matching digest, srv2 reused:true). Co-authored-by: Cursor <cursoragent@cursor.com>
Present/Absent live in v2.std.optional, not std.types. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbc build now runs --help after install and writes executed_exit and executed_stdout into the receipt. Fleet proof receipt drops the authored executed_at timestamp, uses full tested_tree sha, and cites observed execution fields from the verified run. Co-authored-by: Cursor <cursoragent@cursor.com>
Split tested_commit from tested_tree (GitTreeObjectId), derive vertical_receipt from the harvested proof, record compile_count at the producer serve seam, and parse client receipts rather than transcribing proof fields by hand. Co-authored-by: Cursor <cursoragent@cursor.com>
Import trim for receipt prose parsing, ground GitTreeObjectId as a newtype over GitObjectId, parse git for-each-ref object ids before the type suffix, and align harvest witness comparisons with branded fields. Co-authored-by: Cursor <cursoragent@cursor.com>
Read host observations from paths via capture_fleet_proof_harvest_bundle, sum producer compile_count from SERVED compile_count= fields (not line count), fix fleet script branch fetch refspec, and add capture output to target/devboot-fleet-proof-observations. Co-authored-by: Cursor <cursoragent@cursor.com>
Test vertical projection via devboot_vertical_receipt_from_proof instead of devboot_vertical_receipt, which reads target/ paths without a hermetic filesystem mock. Co-authored-by: Cursor <cursoragent@cursor.com>
Harvest refuses without capture-provenance.txt naming each observation source host; receipt carries parsed observation_capture; script writes FQDN manifest on fleet capture; witness checks refusal and host fields. Co-authored-by: Cursor <cursoragent@cursor.com>
Standing
DEVBOOT is demonstrated and accepted on the branch pending exact-head CI. #8049 landed the mechanism on published main (
69d07ed69d3a08a6d881a4ed8f3f45e0ec82e8aa); this PR closes the acceptance gaps and records the modeled two-client fleet proof as a harvested receipt, not a hand-transcribed one.Summary
gunbc build gunbcis the stable client command; producer reuse and execution evidence (executed_exit,executed_stdout) are written into each.devboot-receipt.devboot_serve_once_entryon srv3) is the producer; host timer shell is honestly scaffolded.harvest_modeled_fleet_proofover committed host observations (devboot_fleet_proof_harvest_bundle): client receipt prose,modeled-serve.log, andgit for-each-refstore output. Carries bothtested_commit(corpus provenance) andtested_tree(918953e9…, build-content identity joining client subjects and request commit).vertical_receipt.dagprojects the same commit/tree/token/digest identities from the harvested proof (no abbreviated parallel head).compile_countis recorded at the serve seam (ServeProduced.compile_count;1after cargo,0on skip-if-produced).Fleet proof (2026-08-09, independently verified)
69d07ed69d3a08a6d881a4ed8f3f45e0ec82e8aa918953e9eb1ccbc60e6b91f64d5612a0fffd4871fnv1a64-dfd0b4abb44e30e7976728c5…(both hosts)false/trueexecuted_exit: 0, same stdout fingerprintTest plan
devboot_serve_witness_test.dagdevboot_build_product_witness_test.dag(execution + reuse arms)devboot_fleet_proof_harvest_witness_test.dag(harvest + vertical join)session/keen-moth-104at current head