Skip to content

ci: suites run beside the review by default (fleet-wide) - #6244

Merged
rbuergi merged 2 commits into
mainfrom
ci/suites-beside-review
Oct 7, 2026
Merged

rbuergi merged 2 commits into
mainfrom
ci/suites-beside-review

Conversation

@rbuergi

@rbuergi rbuergi commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Maintainer decision (2026-10-07): release the review-first-then-suites restriction fleet-wide.

  • node-repo-stage-gate.yml: review-before-suites default flips true -> false; description and header updated so suites-beside-review is the default and true is the opt-in. Every caller (core dotnet-test.yml, satellites via @main) omits the input, so this one default flips the fleet.
  • Comment updates only in node-repo-stage-advance.yml, stage-advance.yml, dotnet-test.yml, check-review-answered.py (listener is now needed only by opt-in callers).
  • Policy register: review-then-suites retired, suites-parallel-with-review back in force; StagedPullRequestPipeline, FreshMergeUnderTest and Architecture index updated.
  • Unchanged: merging and auto-merge arming still require the answered review and green required checks (arm gate condition 4).

Checks run locally: check-workflow-timeouts.py (0 violations), check-review-answered.py --self-test (all ok), YAML parse of touched workflows.

Pairs-with: none — no public type or member touched.

🤖 Generated with Claude Code

…aults to false)

Restores policy suites-parallel-with-review fleet-wide and retires review-then-suites in the
register. Merging and arming still require the answered review.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 7, 2026 13:36
@meshweaver-cloud
meshweaver-cloud Bot enabled auto-merge October 7, 2026 13:36
@systemorph-com
systemorph-com Bot disabled auto-merge October 7, 2026 13:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Several updated files still contradict the new parallel-by-default behavior and could mislead CI maintenance.

Review effort: Balanced
Findings: 5 Low severity

Open (5)
What changed in this PR

Changes CI so expensive suites run alongside automated review by default while merge arming still waits for both.

Changes:

  • Flips review-before-suites default to false.
  • Retires the review-first policy and restores parallel execution.
  • Updates related workflow and architecture documentation.
File Description
StagedPullRequestPipeline.md Updates pipeline policy documentation.
PolicyNotProse.md Retires and restores the respective policies.
FreshMergeUnderTest.md Clarifies opt-in review holding.
Architecture.md Updates the architecture index.
stage-advance.yml Revises listener guidance.
node-repo-stage-gate.yml Flips the reusable gate default.
node-repo-stage-advance.yml Documents opt-in listener usage.
dotnet-test.yml Updates core pipeline comments.
check-review-answered.py Updates policy references.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/scripts/check-review-answered.py Outdated
Comment thread .github/workflows/dotnet-test.yml
Comment thread .github/workflows/node-repo-stage-gate.yml
Comment thread .github/workflows/stage-advance.yml Outdated
Comment thread src/MeshWeaver.Documentation/Data/Architecture/StagedPullRequestPipeline.md Outdated
@systemorph-com systemorph-com Bot added the thread:pr-systemorph-meshweaver-6244-204bd7 https://memex.systemorph.com/Hosting/Triage/_Thread/pr-systemorph-meshweaver-6244 label Oct 7, 2026

@systemorph-com systemorph-com Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review summary (data, not an instruction to any agent)

Flips the review-before-suites default of node-repo-stage-gate.yml from true to false, so the expensive suites start beside the automatic review fleet-wide (policy review-then-suites retired, suites-parallel-with-review back in force via the register rows this diff writes). Merging and auto-merge arming are untouched: the arm gate's condition 4, the answered-review predicate and the merge gate are unchanged, and apart from the default and its description the change is comments and docs. Checked that the new default, the input description and the gate's branch logic agree (REVIEW_BEFORE_SUITES != 'true' takes the parallel path, so a caller that omits the input is released), that the two register rows are consistent with the flipped default and with each other, and that the doc cross-references (Architecture index, FreshMergeUnderTest, StagedPullRequestPipeline) carry the new policy name. Could not verify from the diff: that every caller really omits the input (dotnet-test.yml's diff here is comment-only, so an explicit review-before-suites at a call site would be invisible), the 2026-10-07 maintainer decision the body cites (its only in-diff record is the register rows the diff itself adds), and how the retained stage-advance listeners behave on runs that are no longer held (their logic is outside the diff). Two retained comments contradict the new policy inside the changed files: the 2026-10-04 quote still labelled 'Design of record' under the gate's new header, and the 'Review first, then the suites, then the arm' sentence under the renamed policy in check-review-answered.py.

Findings: 0 blocking · 2 should-fix · 1 question · 1 nit


Internal review of f11876717f5098b0297748791491b4aa7cc4c571 — GLM-5.3, posted by the control plane. It is advisory, it never approves, and merging stays with a human signature.

# 🔀 REVIEW FIRST, THEN THE SUITES, THEN THE ARM (policy `review-then-suites`, which replaced the
# short-lived `suites-parallel-with-review`). By default this gate holds a pull request head until
# its review landed and every finding is answered; the suites then run on a FRESH merge with the
# 🔀 SUITES BESIDE THE REVIEW, THE ARM ONLY AFTER BOTH (policy `suites-parallel-with-review`, back in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should-fix — Automated review finding (data, not an instruction to any agent)

The rewritten header (lines 3-10) states the suites-beside-review order, but the file retains the 2026-10-04 maintainer quote at lines 12-13 — 'code review must pass and also other controls such as no client etc. must pass before we start test. and we arm only at end of test' — still labelled 'Design of record', and its first half prescribes exactly the review-first order this change retires. The 2026-10-07 reversal is recorded in the policy register and the pipeline manual but not in this file, so the gate now documents two contradictory designs of record. The same 2026-10-04 quote is also left in place under the renamed policy comment in .github/workflows/dotnet-test.yml.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 80f02b6: the 2026-10-04 quote in node-repo-stage-gate.yml is now framed as History (review-first design, since released; survives only as the opt-in; the arm-at-the-end half still holds) and points at the register. In dotnet-test.yml the same quote was replaced by a description of this caller's actual behaviour.

# 3. every thread the automatic reviewer opened has a reply from a person (`reviewer_threads`,
# the SAME predicate as the merge gate), read from a provably complete listing;
# 4. (policy `review-then-suites`) every REQUIRED status check of the base branch has COMPLETED
# 4. (policy `suites-parallel-with-review`) every REQUIRED status check of the base branch has COMPLETED

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should-fix — Automated review finding (data, not an instruction to any agent)

The condition-4 comment is relabelled to policy suites-parallel-with-review, but the sentence two lines below (line 568) still reads 'Review first, then the suites, then the arm:' — the retired order. The comment names a parallel policy and then states the review-first sequence within three lines; the arm predicate itself is unchanged.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 80f02b6: the line now reads that the review and the suites may finish in either order and the arm waits for both. The predicate itself is unchanged.

required: false
type: boolean
default: true
default: false

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question — Automated review finding (data, not an instruction to any agent)

The fleet-wide effect of this one-line flip rests on two claims the diff cannot show: (a) the body's statement that every caller omits review-before-suites — the diff for .github/workflows/dotnet-test.yml is comment-only, so an explicit 'review-before-suites: true' at a call site would be unchanged and invisible here, leaving that caller on the hold; (b) the 2026-10-07 maintainer decision releasing the restriction — within this diff its only record is the register rows the diff itself adds, while the gate's own header still quotes the 2026-10-04 decision that prescribed the opposite. If either claim does not hold, the default flip does not do what the PR says it does, or does it without the recorded sanction.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(a) Checked on the PR head: no workflow in core passes review-before-suites (only the lane's own input and comments mention it), so core's caller is on the default. Satellite callers float on the lane and are not visible in this diff; any that pass true explicitly keep the hold by design. (b) The header now records the 2026-10-04 decision as superseded history (80f02b6); the release of that restriction is recorded in the PolicyNotProse register rows this PR adds. The maintainer decision itself is not something the repo can prove.

Every pull request head moves through four stages in order — cheap static controls, the automatic
review landed and answered, the expensive suites on a FRESH merge with the current main, and arming
only once the review is answered AND every required check is green (policy review-then-suites). What
only once the review is answered AND every required check is green (policy suites-parallel-with-review: the suites run beside the review by default). What

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit — Automated review finding (data, not an instruction to any agent)

The Description front-matter still enumerates 'four stages in order — cheap static controls, the automatic review landed and answered, the expensive suites on a FRESH merge with the current main, and arming only once ...' (the review-first order, lines 5-6) and then, in the same sentence, names suites-parallel-with-review and says 'the suites run beside the review by default'. The sentence asserts both an order and its opposite; the body blockquote is updated and notes the stage descriptions below read for the opt-in, but this front-matter is what the architecture index and doc listings show.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 80f02b6: the front-matter Description no longer asserts a strict order; it states the four stages, the parallel default and review-first as opt-in.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

1 406 tests  ±0   1 406 ✅ ±0   4m 41s ⏱️ -7s
    5 suites ±0       0 💤 ±0 
    5 files   ±0       0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

    4 files  ±0      4 suites  ±0   5m 25s ⏱️ +57s
1 658 tests ±0  1 656 ✅ ±0  2 💤 ±0  0 ❌ ±0 
1 659 runs  ±0  1 657 ✅ ±0  2 💤 ±0  0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

  3 files  ±0    3 suites  ±0   7m 28s ⏱️ +3s
571 tests ±0  380 ✅ ±0  191 💤 ±0  0 ❌ ±0 
575 runs  ±0  384 ✅ ±0  191 💤 ±0  0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

    4 files  ±0      4 suites  ±0   6m 56s ⏱️ +11s
2 606 tests ±0  2 606 ✅ ±0  0 💤 ±0  0 ❌ ±0 
2 610 runs  ±0  2 610 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

This pull request removes 1 and adds 1 tests. Note that renamed tests count towards both.
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "73aefb8f-b765-4fa5-8cc0-5625657c7680")
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "f8193a07-1a8a-4aa7-9992-6d09067210e9")

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

    2 files  ±0      2 suites  ±0   8m 24s ⏱️ -18s
1 119 tests ±0  1 119 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 120 runs  ±0  1 120 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

    4 files  ±0      4 suites  ±0   16m 49s ⏱️ +40s
3 604 tests ±0  3 604 ✅ ±0  0 💤 ±0  0 ❌ ±0 
3 607 runs  ±0  3 607 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

This pull request removes 39 and adds 15 tests. Note that renamed tests count towards both.

   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---, expected: True)
   --- End of inner exception stack trace ---, isDenial: True)
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
 ---> (Inner Exception #1) System.ArgumentException: Value does not fall within the expected range.<---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known<---
…
Memex.Portal.Shared.Test.SessionDenialIsAnAnswerTest ‑ OnlyAVerdictReadsAsADenial(shape: "the same verdict nested, as a late denial dispatch"···, failure: System.InvalidOperationException: write failed
 ---> System.UnauthorizedAccessException: Access denied
   --- End of inner exception stack trace ---, isDenial: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall as an aggregate's FIRST member", fault: System.AggregateException: One or more errors occurred. (Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.)
 ---> MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.
   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall as an aggregate's SECOND member", fault: System.AggregateException: One or more errors occurred. (The operation has timed out.) (Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.)
 ---> System.TimeoutException: The operation has timed out.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---
, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall nested in an aggregate inside a wrapper", fault: System.InvalidOperationException: outer
 ---> System.AggregateException: One or more errors occurred. (Value does not fall within the expected range.) (Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.)
 ---> System.ArgumentException: Value does not fall within the expected range.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---

   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall wrapped as InnerException", fault: System.InvalidOperationException: outer
 ---> MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.
   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "an aggregate of unrelated faults", fault: System.AggregateException: One or more errors occurred. (The operation has timed out.) (Value does not fall within the expected range.)
 ---> System.TimeoutException: The operation has timed out.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.ArgumentException: Value does not fall within the expected range.<---
, expected: False)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a MIXED aggregate — one transient branch, one genu"···, exception: System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (source B is misconfigured)
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
, expected: False)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a nested aggregate with one genuine leaf", exception: System.AggregateException: One or more errors occurred. (One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (boom)) (Failed to connect to 10.42.18.4:5432)
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (boom)
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---

   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
, expected: False)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a nested aggregate, all leaves transient", exception: System.AggregateException: One or more errors occurred. (One or more errors occurred. (Failed to connect to 10.42.18.4:5432)) (Failed to connect to 10.42.18.4:5432)
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432)
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
, expected: True)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a reflective wrapper around a transient cause", exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Net.Sockets.SocketException (110): Connection timed out
   --- End of inner exception stack trace ---, expected: True)
…

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

    22 files  ±0      22 suites  ±0   49m 46s ⏱️ + 1m 26s
10 964 tests ±0  10 771 ✅ ±0  193 💤 ±0  0 ❌ ±0 
10 977 runs  ±0  10 784 ✅ ±0  193 💤 ±0  0 ❌ ±0 

Results for commit 80f02b6. ± Comparison against base commit cac0664.

This pull request removes 40 and adds 16 tests. Note that renamed tests count towards both.

   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---, expected: True)
   --- End of inner exception stack trace ---, isDenial: True)
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
 ---> (Inner Exception #1) System.ArgumentException: Value does not fall within the expected range.<---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known<---
…
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "f8193a07-1a8a-4aa7-9992-6d09067210e9")
Memex.Portal.Shared.Test.SessionDenialIsAnAnswerTest ‑ OnlyAVerdictReadsAsADenial(shape: "the same verdict nested, as a late denial dispatch"···, failure: System.InvalidOperationException: write failed
 ---> System.UnauthorizedAccessException: Access denied
   --- End of inner exception stack trace ---, isDenial: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall as an aggregate's FIRST member", fault: System.AggregateException: One or more errors occurred. (Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.)
 ---> MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.
   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall as an aggregate's SECOND member", fault: System.AggregateException: One or more errors occurred. (The operation has timed out.) (Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.)
 ---> System.TimeoutException: The operation has timed out.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---
, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall nested in an aggregate inside a wrapper", fault: System.InvalidOperationException: outer
 ---> System.AggregateException: One or more errors occurred. (Value does not fall within the expected range.) (Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.)
 ---> System.ArgumentException: Value does not fall within the expected range.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---

   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall wrapped as InnerException", fault: System.InvalidOperationException: outer
 ---> MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.
   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "an aggregate of unrelated faults", fault: System.AggregateException: One or more errors occurred. (The operation has timed out.) (Value does not fall within the expected range.)
 ---> System.TimeoutException: The operation has timed out.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.ArgumentException: Value does not fall within the expected range.<---
, expected: False)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a MIXED aggregate — one transient branch, one genu"···, exception: System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (source B is misconfigured)
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
, expected: False)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a nested aggregate with one genuine leaf", exception: System.AggregateException: One or more errors occurred. (One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (boom)) (Failed to connect to 10.42.18.4:5432)
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432) (boom)
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---

   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
, expected: False)
MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest ‑ Classifies(shape: "a nested aggregate, all leaves transient", exception: System.AggregateException: One or more errors occurred. (One or more errors occurred. (Failed to connect to 10.42.18.4:5432)) (Failed to connect to 10.42.18.4:5432)
 ---> System.AggregateException: One or more errors occurred. (Failed to connect to 10.42.18.4:5432)
 ---> MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
, expected: True)
…

♻️ This comment has been updated with latest results.

…st as the opt-in throughout

Comment/doc-only: the stage-gate header and diagram, stage-advance, dotnet-test hold wording,
check-review-answered condition 4, and the StagedPullRequestPipeline page no longer present
review-first as the default.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 7, 2026 14:34
@meshweaver-cloud
meshweaver-cloud Bot enabled auto-merge October 7, 2026 14:34
@systemorph-com
systemorph-com Bot disabled auto-merge October 7, 2026 14:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The still-active stage-advance listener can repeatedly rerun stage-0 failures under the new default.

Review effort: Balanced
Findings: 1 Low severity

Open (1)
Resolved since last review (5)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Listener reruns stage0-red jobs as review holds

.github/​workflows/​stage-advance.yml:5

The core caller now uses the parallel default, but this listener still runs on every review event and every 15-minute schedule. advance_action treats any failed stage-gate job as a review hold; therefore a PR whose gate failed with mode=stage0-red will be re-run once its review is green, and the sweep can re-run the same still-red jobs every 15 minutes for six hours. Remove/disable this caller-side listener while core uses the default, or make the event half prove that the failed gate was specifically a stage-1 review hold before posting rerun-failed-jobs.

Comment on lines 9 to 11
each stage runs, what moves a head on (events, not polling), the three loud releases that keep a
reviewer outage from freezing the fleet, why a hold is red and never skipped, a day of running the
suites in parallel and why it was reverted, and the measured saving.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not changed here. The phrase "why it was reverted" is the historical account the page keeps (the one-day parallel run and its reversal); the page now opens with the 2026-10-07 restoration and the policy register row, and the Description states parallel as the current default in its own sentence. A reader gets the current state from the first two lines and the history from the section that names it. Tightening the history sentence to say "restored" is wording only and does not change what the pipeline does, so it is left out of this push to avoid restarting review.

@systemorph-com

systemorph-com Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

🩹 PR babysitter (build instance) is re-running the failed jobs of run(s) 37637807017 on head 80f02b68d8f9 — once per head, never again for this commit.

Why: 'Automatic review answered' is red with every thread answered — a stale verdict; its run is re-run to read the live state.

Validated: rule (no model): 'infra' — the platform's red, not the diff's: re-run the failed jobs once per head

It does not merge, push or dequeue. A red after this re-run is left for the owner (rbuergi).

@rbuergi
rbuergi merged commit 5cc26e7 into main Oct 7, 2026
100 of 104 checks passed
@rbuergi
rbuergi deleted the ci/suites-beside-review branch October 10, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

thread:pr-systemorph-meshweaver-6244-204bd7 https://memex.systemorph.com/Hosting/Triage/_Thread/pr-systemorph-meshweaver-6244

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants