Context
#10903 Phase 1 audit identified ~30 unit-test failures across Buckets A-F. Phase 2 fixes for all 6 buckets landed (#10907, #10910, #10919, #10920, #10921). Lane C followup PR #10922 re-added the unit matrix row to test the cascade closure — exposed a NEW set of unit-test substrate failures NOT covered by Buckets A-F.
Per @neo-gpt's empirical CI inspection on run 25514310691: 7 failed, 4 flaky, 72 skipped, 27 did not run, 1 non-test error despite NEO_TEST_SKIP_CI=true.
The Problem (Bucket G)
Failure classes NOT covered by existing buckets:
G1: Missing required environment variables: GEMINI_API_KEY
3 test failures throwing from Neo.ai.provider.Gemini when GEMINI_API_KEY env var is absent in CI. Tests instantiate the Gemini provider eagerly without skip-guarding.
G2: ChromaConnectionError: Failed to connect to chromadb
3 test failures expecting a live Chroma instance. Tests don't currently skip-guard for missing Chroma daemon.
G3: SqliteError: disk I/O error
3 test failures when SQLite test-DB writes fail under CI sandbox restrictions. Adjacent shape to #10714 (Codex sandbox bootstrap probe).
G4: Namespace collision in unitTestMode for Neo.ai.mcp.server.github-workflow.Config
1 test failure — Neo class registration collision under unitTestMode. Could be test-isolation issue (parallel-test contamination) OR real bug in class-loading.
G5: 4 flaky tests (intermittent failures)
Flaky — not deterministic. May be timing-sensitive substrate or genuine race conditions.
G6: 27 "did not run"
Tests skipped at the runner level due to upstream failure. Phase 1 diagnostic needed: are these all blocked by setup of one common substrate, or independent?
The Fix (Investigation-Shaped)
This is investigation-shaped — root causes vary across G1-G6.
Phase 1 (this ticket): per-class triage
For each of G1-G5, determine:
- Whether to skip-guard via
NEO_TEST_SKIP_CI (canonical bucket-skip pattern)
- Whether to fix at substrate (e.g., add config defaults that make the test substrate self-bootstrapping)
- Whether to test-fixture migrate (e.g., mock the dependency)
For G6, identify the upstream-blocking root and address it.
Phase 2 (sub-tickets): per-class fixes
Each G1-G6 likely warrants its own small PR.
Phase 3 (final): re-attempt Lane C unit matrix row addition
Once Phase 2 complete + #10923 setMcpServer regression fixed, re-file Lane C followup PR adding unit row.
Acceptance Criteria
Out of Scope
- #10923
setMcpServer regression (filed concurrently — different shape, code regression not test-substrate gap).
- Integration-spec deferrals from Bucket F (already handled via #10919 + #10920).
Related
- Predecessor: #10903 (Buckets A-F audit).
- Sibling: #10923 (setMcpServer regression).
- Surfacing context: Lane C followup PR #10922 closure attempt (CI exposed Bucket G).
- Adjacent shape: #10714 (Codex sandbox SQLite — possibly G3 root).
Origin Session ID: 7e897a0b-33ce-4d6c-b1a9-a1ff93e4e571
Retrieval Hint: query_raw_memories(query="Bucket G unit-test failures GEMINI_API_KEY ChromaConnection SqliteError namespace collision Phase 1 triage")
Context
#10903 Phase 1 audit identified ~30 unit-test failures across Buckets A-F. Phase 2 fixes for all 6 buckets landed (#10907, #10910, #10919, #10920, #10921). Lane C followup PR #10922 re-added the
unitmatrix row to test the cascade closure — exposed a NEW set of unit-test substrate failures NOT covered by Buckets A-F.Per @neo-gpt's empirical CI inspection on run 25514310691:
7 failed, 4 flaky, 72 skipped, 27 did not run, 1 non-test errordespiteNEO_TEST_SKIP_CI=true.The Problem (Bucket G)
Failure classes NOT covered by existing buckets:
G1:
Missing required environment variables: GEMINI_API_KEY3 test failures throwing from
Neo.ai.provider.GeminiwhenGEMINI_API_KEYenv var is absent in CI. Tests instantiate the Gemini provider eagerly without skip-guarding.G2:
ChromaConnectionError: Failed to connect to chromadb3 test failures expecting a live Chroma instance. Tests don't currently skip-guard for missing Chroma daemon.
G3:
SqliteError: disk I/O error3 test failures when SQLite test-DB writes fail under CI sandbox restrictions. Adjacent shape to #10714 (Codex sandbox bootstrap probe).
G4:
Namespace collision in unitTestMode for Neo.ai.mcp.server.github-workflow.Config1 test failure — Neo class registration collision under
unitTestMode. Could be test-isolation issue (parallel-test contamination) OR real bug in class-loading.G5: 4 flaky tests (intermittent failures)
Flaky — not deterministic. May be timing-sensitive substrate or genuine race conditions.
G6: 27 "did not run"
Tests skipped at the runner level due to upstream failure. Phase 1 diagnostic needed: are these all blocked by setup of one common substrate, or independent?
The Fix (Investigation-Shaped)
This is investigation-shaped — root causes vary across G1-G6.
Phase 1 (this ticket): per-class triage
For each of G1-G5, determine:
NEO_TEST_SKIP_CI(canonical bucket-skip pattern)For G6, identify the upstream-blocking root and address it.
Phase 2 (sub-tickets): per-class fixes
Each G1-G6 likely warrants its own small PR.
Phase 3 (final): re-attempt Lane C
unitmatrix row additionOnce Phase 2 complete + #10923 setMcpServer regression fixed, re-file Lane C followup PR adding
unitrow.Acceptance Criteria
unitmatrix row passes in CI.Out of Scope
setMcpServerregression (filed concurrently — different shape, code regression not test-substrate gap).Related
Origin Session ID:
7e897a0b-33ce-4d6c-b1a9-a1ff93e4e571Retrieval Hint:
query_raw_memories(query="Bucket G unit-test failures GEMINI_API_KEY ChromaConnection SqliteError namespace collision Phase 1 triage")