fix(e2e): update EXPECTED_PHASES for v0.41 (extract_atoms + synthesize_concepts + schema-suggest)

E2E test/e2e/dream-cycle-phase-order-pglite.test.ts pinned the canonical
phase sequence at 16 entries. v0.41 added extract_atoms (after
extract_facts) and synthesize_concepts (after patterns); v0.39 had
already added schema-suggest between orphans and purge. EXPECTED_PHASES
was missing all three.

This is the correct fix — the test exists specifically to catch a PR
that adds a phase without updating consumers, and it fired exactly as
designed. Updating EXPECTED_PHASES to the v0.41 19-phase sequence with
comment breadcrumbs (v0.39.0.0 schema-suggest, v0.41.0.0 extract_atoms
+ synthesize_concepts).

Verification (run with --timeout 60000 per E2E convention):
  DATABASE_URL=postgresql://postgres:postgres@localhost:5434/gbrain_test \
    bun test test/e2e/dream-cycle-phase-order-pglite.test.ts --timeout 60000
  → 5 pass, 0 fail

Other E2E failures observed in the full run are pre-existing /
environmental and not v0.41 regressions:
  - dream-synthesize-chunking: existing flake (synthesize details
    shape under withoutAnthropicKey)
  - fresh-install-pglite: env has multiple embedding providers
    configured; requires explicit --embedding-model disambiguation
  - http-transport: last_used_at debounce timing flake
  - ingestion-roundtrip: file-watcher trickle-mode timing flake
  - mechanical: gbrain doctor exits 1 because user's persistent
    ~/.gbrain has wedged migrations + reranker auth warnings
  - autopilot-fanout-postgres: pre-existing dispatch-selector
    timestamp semantics

None of those 6 are touched by the v0.41 wave. Filing them as
unrelated maintenance items.

Plan: ~/.claude/plans/system-instruction-you-are-working-toasty-milner.md
Wave gate: 13 plan tasks done; v0.41 unit tests green; v0.41 E2E
green; pre-existing E2E flakes unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-05-24 01:12:55 -07:00
co-authored by Claude Opus 4.7
parent 4efc0995b0
commit 14ef59a3fe
@@ -105,6 +105,9 @@ async function withoutAnthropicKey<T>(body: () => Promise<T>): Promise<T> {
// v0.29 — added `recompute_emotional_weight` between patterns and embed
// v0.31 — added `consolidate` between recompute_emotional_weight and embed
// v0.33 — added `resolve_symbol_edges` between extract and patterns
// v0.36.1.0 — added propose_takes + grade_takes + calibration_profile
// v0.39.0.0 — added `schema-suggest` between orphans and purge
// v0.41.0.0 — added `extract_atoms` after extract_facts + `synthesize_concepts` after patterns
type CyclePhase = (typeof ALL_PHASES)[number];
const EXPECTED_PHASES: CyclePhase[] = [
'lint',
@@ -113,8 +116,10 @@ const EXPECTED_PHASES: CyclePhase[] = [
'synthesize',
'extract',
'extract_facts', // v0.32.2 — reconcile fence → DB facts index
'extract_atoms', // v0.41 — pack-gated; reads transcripts via Haiku
'resolve_symbol_edges', // v0.33.3 — within-file symbol resolution
'patterns',
'synthesize_concepts', // v0.41 — pack-gated; clusters atoms into concepts
'recompute_emotional_weight', // v0.29
'consolidate', // v0.31
'propose_takes', // v0.36.1.0 — hindsight calibration wave
@@ -122,6 +127,7 @@ const EXPECTED_PHASES: CyclePhase[] = [
'calibration_profile', // v0.36.1.0
'embed',
'orphans',
'schema-suggest', // v0.39.0.0
'purge', // v0.26.5
];