Repository navigation
Falsifier execution topology - #8050
Conversation
When selection-control failed inside falsifier-build, the entire corpus job was skipped (run 31181460723), conflating infrastructure failure with falsifier regression. This separates build, selection-control, cold-corpus (needs build only), and aggregate-verdict, and models ColdCorpusExecution in gunbc.falsifier_cold_corpus_execution so CorpusNotRun is distinguishable from corpus redness. Co-authored-by: Cursor <cursoragent@cursor.com>
aggregate-verdict now downloads the cold-corpus receipt artifact and emits
CorpusExecuted only when the file is present and parses; failures before
upload classify as CorpusNotRun { cold-corpus-failed-before-receipt }.
Witnesses distinguish ran-and-red from failed-before-running.
Co-authored-by: Cursor <cursoragent@cursor.com>
In .dag a newline terminates an expression, so continuation lines beginning with + are parse errors. Collapse job backstop sums onto one line per ci_workflow.dag idiom; same fix in the witness oracle. Co-authored-by: Cursor <cursoragent@cursor.com>
v2 resolve treats bare ${VAR} inside String data as dag interpolation.
Use $\{VAR} per string_brace_escape_witness_test so BUILD_RESULT,
COLD_RESULT, SELECTION_RESULT, and FLOOR_RECEIPT_PRESENT remain
shell syntax while ${{ needs.* }} stays GHA expression syntax.
Co-authored-by: Cursor <cursoragent@cursor.com>
Marked Scaffold disposition on falsifier_aggregate_verdict_script; receipt JSON literals route through classify_cold_corpus_execution helpers in falsifier_cold_corpus_execution. Transport remains concat-built shell — dissolve-on bash-emit / shell→intent Phase 2. Follow-up PR lane: cold-corpus-receipt-artifact-absent arm still outstanding. Side branch preserves WIP; parent session/royal-ferret-75 parse fix landed separately on #7998. Co-authored-by: Cursor <cursoragent@cursor.com>
Mark falsifier_aggregate_verdict_script as Scaffold with dissolve-on;
emit receipt JSON via aggregate_shell_receipt_* builders rooted in
classify_cold_corpus_execution / cold_corpus_execution_receipt_json
(build cancelled/skipped no longer collapsed to build-job-failed).
Escape $\{VAR} in concat shell literals for v2 resolve. Witnesses:
YAML embeds builder JSON, distinguishes build-cancelled/skipped tags,
and identity-joins each builder to receipt_json authority.
Co-authored-by: Cursor <cursoragent@cursor.com>
…ceipt. When cold-corpus succeeds but the floor-component receipt never arrives, classify as ColdCorpusReceiptArtifactAbsent instead of lumping it with pre-run infrastructure failures — keeps falsifier cadence noise honest. Co-authored-by: Cursor <cursoragent@cursor.com>
Adds scoped emit_falsifier_yaml tool so falsifier workflow drift can be refreshed without the full main_wet artifact pass. Co-authored-by: Cursor <cursoragent@cursor.com>
shell_printf_line's trailing newline split printf from the file redirect, truncating the cold-corpus execution receipt to zero bytes. Keep redirect on the same line via bash_escape_for_double_quotes. Remove spurious ] from the floor-receipt schema grep test (review 50484). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 50484 (both findings) in
— sent from royal-ferret-75 |
aggregate_verdict_shell_receipt_literals_match_model compared raw JSON to emitted printf arguments; the workflow carries bash_escape_for_double_quotes form, so the witness now pins the same encoding the shell actually runs. Co-authored-by: Cursor <cursoragent@cursor.com>
Re-adds FalsifierYamlArtifact and artifact_path for falsifier_artifact_path_is_workflow_file (review 50504). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 50504 in — sent from royal-ferret-75 |
… roots. g2_implies_reads_live_tree_for_roster_gate compared imported live_tree_disposition against ReadsLiveTree, but the merged item_registry bare-name lookup could resolve SubstrateInputsOnly from another witness file; route the roster-gate disposition through a uniquely named entry helper returning ReadsLiveTree. doc_graph floor witnesses now call doc_graph_floor_orphan_clean_holds and doc_graph_floor_clean_holds defined in gunbc.doc_graph_roots so roots are derived inside the authority module during discovery-corpus batch runs. Co-authored-by: Cursor <cursoragent@cursor.com>
Adds roster_gate_entry_live_tree_disposition_is_reads_live_tree so the cross-module disposition export is reachable from a test fn in the same *_test.dag file (CI naming hygiene refused the orphan plain fn). Co-authored-by: Cursor <cursoragent@cursor.com>
The hygiene enrollment test in accumulator_copy_roster_gate_test was discovered as UnclassifiedPathDeferral; move the ReadsLiveTree literal helper into live_read_classification_test where g2_implies_reads_live_tree_for_roster_gate already runs on the discovery cadence. Co-authored-by: Cursor <cursoragent@cursor.com>
…en witness. Reverting the local-only disposition helper broke g2_roster_gate_entry_classifies_literal_paths and g2_union_retains_g1_import_carriers_with_g2_literal_paths because fn_arrow G2 classification requires the roster-gate test module's live_tree disposition surface. Enroll the helper via the existing frozen roster_machine_code_zero_suspects_within_ratchet witness instead of adding a new offline-path test that discovery refuses as UnclassifiedPathDeferral. Co-authored-by: Cursor <cursoragent@cursor.com>
…cates.
Review 50522: doc_graph_floor_{orphan_,}clean_holds in gunbc.doc_graph_roots now
delegate to doc_graph_{orphan_,}clean_holds(plan_roots: doc_graph_roots_all())
instead of re-minting orphan/dangling count checks beside the lens authority.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 50522 in — sent from royal-ferret-75 |
Resolve falsifier witness import merge (soft-deadline rows from main plus aggregate-verdict shell symbols from this branch) and regenerate .github/workflows/falsifier.yml from the merged model authority. Co-authored-by: Cursor <cursoragent@cursor.com>
Bind spark-standup-program-accounting.md per #8052 so the live-tree orphan wall passes after main merge, and align falsifier.yml with generated_artifact authority (trailing newline) so heal no longer requires author-commit for workflow drift. Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-opened by session-dashboard for session
royal-ferret-75.Pushing to
session/royal-ferret-75-receipt-artifact-absentadvances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan