ci: run A2 app and session suites - #42
Merged
Merged
Conversation
The deterministic Swift step names five targets. Package.swift declares nine, and two of the omitted ones carry PR #32's load-bearing regressions: NeuralComposeAppTests 116 tests fail-closed runtime, presentation DialecticSessionTests 5 tests headless runtime factory 121 tests that CI has never executed, which is most of the gap between the 417 CI reports and the 616 in the historical acceptance record. Both pass on this base with 0 failures. A `--filter` matching nothing exits 0, so adding the targets alone would risk another green step that ran nothing. The guard asserts one sentinel class per target and floors each target's discovered count, since sentinels alone would still pass if the rest of a target vanished. Floors sit below the current 116/5 so ordinary additions never trip them. RuntimeIdentityPresentationTests is deliberately not asserted: it arrives with #32 and does not exist on this base. Grepping for it here would fail CI immediately. #32 adds it as a third sentinel when that file lands. BCILLMTests and WorldModelDemoTests remain unselected — MLX .eval() faults on a GPU-less runner, and the WorldModel demo needs exported CoreML artifacts. ci.yml stays under its named D0/CI lane owner rather than growing #32 by a twenty-second unrelated file. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prerequisite for #32's operator matrix. Owned by the D0/CI lane, so
ci.ymlstays with its named owner rather than growing #32 by a twenty-second unrelated file.CI runs 5 of 9 declared test targets
Package.swiftdeclares nine test targets. The deterministic step names five. Two of the omitted ones carry #32's load-bearing regressions:NeuralComposeAppTestsDialecticSessionTestsThat is 121 tests CI has never executed, including the app-level fail-closed runtime, runtime-presentation, cancellation, and headless runtime-factory behaviour #32 depends on. Both targets pass on this base with 0 failures.
This also accounts for most of the 417-vs-616 gap.
swift test listdiscovers 580 tests on this base; CI's filtered subset executes 417.BCILLMTestsandWorldModelDemoTestsstay unselected deliberately — MLX.eval()faults on a GPU-less runner, and the WorldModel demo needs exported CoreML artifacts.The guard is the point
A
--filterthat matches nothing exits 0. Adding the targets without a guard would risk exactly the failure mode this repository keeps finding: a green step that ran nothing.Two layers:
AppViewModelRuntimeFailClosedTests,RuntimeFactoryClaudeResolutionTests.One correction to the proposed guard
The directive specified a third sentinel,
RuntimeIdentityPresentationTests. It does not exist on this base — it is one of #32's own 21 files, andswift test list | grep -creturns 0 for it here.Including it would have failed this PR's CI on the first run. It is omitted with a comment telling #32 to add it as a third sentinel when that file lands, so the guard stays true at every revision rather than being aspirational at this one.
Verification
Rehearsed locally against this exact base:
After this merges
Merge-forward
docs/eeg-methods-scopeinto #32 again, confirm A–G plus9eabad6plus the new merge-forward all remain ancestors, confirm the #32 diff is still the same 21 application files, and confirm all three surfaces green — deterministic subset, the new A2 app/session step, and Python 53 + 89/89. Only then start the packaged operator matrix.