[P0] Expose and fix trusted-binding replay CI race #181

Closed
opened 2026-08-24 16:46:55 +00:00 by lost-rob0t · 2 comments
lost-rob0t commented 2026-08-24 16:46:55 +00:00 (Migrated from github.com)

Parent/runtime area: #79

Observed failure

Post-merge main CI run 32750635555 at 0d8e1008ba525f0ec7e51cba2de34ede8a63cf6f completed the deterministic aggregate with:

aggregate_plunit_summary suites=75 discovered=783 planned=783 completed=783 passed=782 failed=1 timeout=0 blocked=0 fixme=0

The failed case was:

rlm_tool_effect:trusted_binding_identity_prevents_cross_binding_replay

The PR head and merge commit have the identical Git tree 3c7b41f8b4bc02bedac94fb5d4ad01ef1572cada. The PR aggregate passed; the post-merge aggregate failed. Fresh-process reproduction attempts passed 50/50 for the focused case, 50/50 for the full effect suite, and 12/12 for the complete aggregate.

Problem

The test contains unasserted asynchronous transition and outcome unifications. On failure, PL-Unit reports only test ...: failed, discarding the actual approval, Future, effect, and mutation state needed to identify the violated boundary. Rerunning CI cannot substitute for exposing and fixing the cause.

Required fix

  • deterministically reproduce or force the failing interleaving using barriers/queues/mutexes, never sleeps as correctness synchronization;
  • expose the exact failed state/transition in test evidence;
  • fix the underlying authority/effect/async lifecycle defect, or if executable evidence proves only the oracle is wrong, repair the oracle without weakening the invariant;
  • preserve stable trusted binding identity across registry allocation and prevent cross-binding replay;
  • keep the existing #53 authority, #54 async, and #57 durable-effect boundaries;
  • do not skip, retry-away, or mark the deterministic check informational.

Acceptance

  • a focused red regression identifies the violated invariant and fails for the intended reason;
  • the focused effect suite is green under deterministic adversarial scheduling;
  • the complete aggregate reports all 783+ discovered/planned/completed/passed with zero failure/timeout/blocked/fixme;
  • runner integrity, benchmarks, CLI demo, Nix/package checks, and exact-head GitHub Actions are green;
  • the post-merge main workflow is green after an explicitly authorized merge.
Parent/runtime area: #79 ## Observed failure Post-merge `main` CI run 32750635555 at `0d8e1008ba525f0ec7e51cba2de34ede8a63cf6f` completed the deterministic aggregate with: ```text aggregate_plunit_summary suites=75 discovered=783 planned=783 completed=783 passed=782 failed=1 timeout=0 blocked=0 fixme=0 ``` The failed case was: ```text rlm_tool_effect:trusted_binding_identity_prevents_cross_binding_replay ``` The PR head and merge commit have the identical Git tree `3c7b41f8b4bc02bedac94fb5d4ad01ef1572cada`. The PR aggregate passed; the post-merge aggregate failed. Fresh-process reproduction attempts passed 50/50 for the focused case, 50/50 for the full effect suite, and 12/12 for the complete aggregate. ## Problem The test contains unasserted asynchronous transition and outcome unifications. On failure, PL-Unit reports only `test ...: failed`, discarding the actual approval, Future, effect, and mutation state needed to identify the violated boundary. Rerunning CI cannot substitute for exposing and fixing the cause. ## Required fix - deterministically reproduce or force the failing interleaving using barriers/queues/mutexes, never sleeps as correctness synchronization; - expose the exact failed state/transition in test evidence; - fix the underlying authority/effect/async lifecycle defect, or if executable evidence proves only the oracle is wrong, repair the oracle without weakening the invariant; - preserve stable trusted binding identity across registry allocation and prevent cross-binding replay; - keep the existing #53 authority, #54 async, and #57 durable-effect boundaries; - do not skip, retry-away, or mark the deterministic check informational. ## Acceptance - [ ] a focused red regression identifies the violated invariant and fails for the intended reason; - [ ] the focused effect suite is green under deterministic adversarial scheduling; - [ ] the complete aggregate reports all 783+ discovered/planned/completed/passed with zero failure/timeout/blocked/fixme; - [ ] runner integrity, benchmarks, CLI demo, Nix/package checks, and exact-head GitHub Actions are green; - [ ] the post-merge `main` workflow is green after an explicitly authorized merge.
lost-rob0t commented 2026-08-24 17:02:27 +00:00 (Migrated from github.com)

Fix is ready in PR #182 at exact head 94737163ed7980b60a4d559920cbc04d8fc287d0. The previously failing deterministic job is green; clean-pack, Nix, Tree-sitter FFI, and REAL OpenRouter are also green. Local evidence: forced cross-binding interleaving 800/800, effect suite 14/14, runner integrity 19/19, aggregate 783/783, deterministic benchmark 16/16, deep experiment 15/15, JSON demo and three Nix checks passed. The PR remains unmerged pending explicit merge authorization.

Fix is ready in PR #182 at exact head 94737163ed7980b60a4d559920cbc04d8fc287d0. The previously failing deterministic job is green; clean-pack, Nix, Tree-sitter FFI, and REAL OpenRouter are also green. Local evidence: forced cross-binding interleaving 800/800, effect suite 14/14, runner integrity 19/19, aggregate 783/783, deterministic benchmark 16/16, deep experiment 15/15, JSON demo and three Nix checks passed. The PR remains unmerged pending explicit merge authorization.
lost-rob0t commented 2026-08-24 23:56:26 +00:00 (Migrated from github.com)

Merged by rebase via PR #182. Reviewed head d672a0fe7d became main commit e6f04bb641. The post-merge main CI, clean-pack, Nix, Tree-sitter FFI, and pinned paid OpenRouter workflows all completed successfully.

Merged by rebase via PR #182. Reviewed head d672a0fe7d53fc38d2728dda0a711834ded3de97 became main commit e6f04bb641d5f15d2b806eca4bd00d2718615034. The post-merge main CI, clean-pack, Nix, Tree-sitter FFI, and pinned paid OpenRouter workflows all completed successfully.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/prolog-rlm#181
No description provided.