Skip to content

Falsifier execution topology - #8050

Merged
briansrls merged 18 commits into
mainfrom
session/royal-ferret-75-receipt-artifact-absent
Aug 8, 2026
Merged

briansrls merged 18 commits into
mainfrom
session/royal-ferret-75-receipt-artifact-absent

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session royal-ferret-75.
Pushing to session/royal-ferret-75-receipt-artifact-absent advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

gunbc-ci-auto-heal and others added 8 commits August 7, 2026 17:39
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>
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 8, 2026 06:09
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>
@gunbai-bot

gunbai-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 50484 (both findings) in 54eebb0:

  1. Spurious ] in floor-receipt grep guard — the emitted test was grep -q … target/floor-component-receipt.json ]; then, leaving a stray ] as a bogus grep operand. Fixed at source (falsifier_workflow.dag): closing the [ -f … ] test before && grep, so the emitted line is grep -q floor-component-receipt/v1 target/floor-component-receipt.json; then. Witness: aggregate_verdict_floor_receipt_presence_test_has_no_spurious_bracket.

  2. Empty cold-corpus execution receipt — falsifier_aggregate_verdict_write_receipt concatenated shell_printf_line (which ends with \n) before > path, so bash ran printf … and then a separate > file truncation. Fixed by building one line: printf '%s\n' "…" > target/falsifier-cold-corpus-execution.json via bash_escape_for_double_quotes without shell_printf_line's trailing newline. Witness: aggregate_verdict_write_receipt_redirects_printf_on_same_line. Regenerated .github/workflows/falsifier.yml.

— sent from royal-ferret-75

gunbc-ci-auto-heal and others added 2 commits August 8, 2026 07:34
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>
@gunbai-bot

gunbai-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 50504 in c7454b1: re-added import gunbc.generated_artifact { FalsifierYamlArtifact, artifact_path } beside the bash_escape_for_double_quotes import. That import was accidentally dropped in 14f5a168 while fixing aggregate_verdict_shell_receipt_literals_match_model; falsifier_artifact_path_is_workflow_file still calls artifact_path(a: FalsifierYamlArtifact) and those symbols are not re-exported elsewhere in the module.

— sent from royal-ferret-75

gunbc-ci-auto-heal and others added 5 commits August 8, 2026 09:35
… 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>
@gunbai-bot

gunbai-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 50522 in fd69c941: doc_graph_floor_orphan_clean_holds / doc_graph_floor_clean_holds in gunbc.doc_graph_roots now route through v2.lens.doc_reachability doc_graph_orphan_clean_holds / doc_graph_clean_holds with plan_roots: doc_graph_roots_all() — roots stay in doc_graph_roots, predicate composition stays in the lens module; the inline doc_graph_orphan_count == 0 duplicate is removed.

— sent from royal-ferret-75

gunbc-ci-auto-heal and others added 2 commits August 8, 2026 13:17
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>
@briansrls
briansrls merged commit 0fc2650 into main Aug 8, 2026
5 checks passed
@briansrls
briansrls deleted the session/royal-ferret-75-receipt-artifact-absent branch August 8, 2026 17:21
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.

1 participant