docs(state): finalize feat_list_count_columns (PR #436)#437
Conversation
…shness-gate framing - Prepend feat_list_count_columns (PR #436, 606d43d) to Last 5 merges. - Correct the infra_generated_artifact_freshness_gate entry: it merged as PR #433 (c5c36c6) + docs PR #435 — the prior text was committed on the feature branch before the PR number existed and still said "PR forthcoming". - Drop feat_studies_convergence_visibility to the older-entries pointer (keeps the list at 5). - Reset "Current branch / execution context" + "In flight" to main / nothing-in-flight (both 2026-06-03 features merged). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: SoundMindsAI <eric.starr@soundminds.ai>
There was a problem hiding this comment.
Code Review
This pull request updates the execution context and merge history in state.md to reflect that the infra_generated_artifact_freshness_gate and feat_list_count_columns features have been successfully merged into main. The review feedback correctly identifies a duplication where infra_smoke_reseed_runtime_budget (PR #424) is listed in both the detailed recent merges and the older entries list, and provides a suggestion to remove the redundant reference.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| - **2026-06-02** — `infra_smoke_reseed_runtime_budget` (PR #424, squash-merged `035d7941`). Clears the last of the three-PR Solr-CI debt chain (`infra_solr_ci_readiness` backend half → `infra_solr_smoke_stability` Solr boot → this, the reseed-runtime half). The smoke job's `demo-ubi.spec.ts` `beforeAll` reseed exceeded the 25-min `timeout-minutes` cap once Solr actually booted (AC-8 of `feat_demo_ubi_study_comparison` bounds the in-flight reseed at 1140s/~19 min hard ceiling, ~28 min worst case per §14 — Playwright + setup overhead pushed total past 25 min; PR #383 run 26790636716 hit it at 25:18). **Fix (Option A, locked at idea-preflight):** extend `ui/playwright.config.ts`'s `testIgnore` CI-gated branch by one entry (`'**/demo-ubi.spec.ts'`, the 7th alongside the 6 pre-existing demo-data-dependent specs) — the `process.env.CI ? [...] : []` ternary gates it to GHA runs, so local `make up` smoke (`CI=` unset) keeps full demo-ubi coverage. Option B (timeout bump → 35 min) rejected (D-3: <7 min margin against §14 worst case); Option C (env-var reseed scenario filter, ~2-3h multi-file) deferred per operator (D-2). New vitest regression guard `ui/src/__tests__/playwright-config-test-ignore.test.ts` (3 assertions: demo-ubi in CI branch, all 7 entries present, demo-ubi not outside the ternary). Runbook `docs/03_runbooks/smoke-solr-stability.md` §5 documents the exclusion + the reseed-runtime-vs-Solr-stability split; pr.yml + state.md stale "exceeds the cap" framing refreshed to "runtime block cleared, flip `SMOKE_TEST=true` after the §16 `playwright test --list` verification". 5 stories / 1 epic. No `backend/app/` source, no migration (head stays `0022`). §16 manual verification confirmed AC-1 (`CI=true` → 86 tests/30 files, 0 demo-ubi) + AC-2 (`CI=` unset → 110 tests/37 files, demo-ubi discovered). Cross-model: spec GPT-5.5 3 cycles (13 findings, all applied), plan GPT-5.5 3 cycles (11 findings, all applied), Gemini 2 (both accepted — `import.meta.url` path resolution + CRLF normalization), GPT-5.5 final 3 (2 accepted: §4→§5 pointer + runbook markdown links; 1 rejected: AC-7 file-shape re-raise, counter-evidence cited). All 12 `pr.yml` checks green. | ||
| - **2026-06-02** — `feat_studies_convergence_visibility` (Epic 1 via PR #421 `e5c3b8b9`; Epic 2 via PR #422 `49a0e1b0`). **Epic 1** — studies-list convergence visibility: `GET /api/v1/studies` items gain `trial_count` (non-baseline total) + `convergence_verdict` (reuses the shipped `classify_convergence` via a count-gated path; bounded to 1–2 queries/page via `count_trials_for_studies` + `resolve_list_convergence_verdicts`); `/studies` UI gains Trials + Convergence columns reusing `CONVERGENCE_VERDICT_VALUES` + the `convergence_verdict` glossary key. (Epic 1 landed bundled inside the PR #421 squash-merge alongside `complementary-architecture.md` — surfaced during the Epic 2 CI watch; the Epic 2 branch was rebased onto `e5c3b8b9` to drop the duplicate Epic 1 commits.) **Epic 2** — demo data that shows real optimization: rewrote the 5 small `SCENARIOS` with the decoy-by-title pattern (best-answer terms in description/body/bullets, decoy terms in title) so the equal-midpoint baseline under-ranks and a differentiated boost lifts ≥ 0.10 (per-scenario headroom: baseline 0.561–0.690, lift +0.230 to +0.295, all `best < 0.99`); bumped small-scenario `max_trials` 12 → 50 via the new shared `DEMO_SMALL_STUDY_MAX_TRIALS` constant single-sourced from `scripts/seed_meaningful_demos.py` (imported by `demo_seeding.py` so CLI + home-button reseed can't drift) so demo studies clear `STUDIES_TPE_WARMUP_FLOOR` and convergence reads `converged`/`still_improving` instead of a uniform `too_few_trials`. New tests: engine-backed headroom (6 — 5 scenarios + resolver-parity guard; ES/OS hard-gated in CI via `_require_es_or_fail`, Solr skip-gated per D-18); shape invariants (21 — full {0,1,2,3} rubric per query); max_trials single-source guards (4); heavy-lane AC-7/AC-8 block reading persisted `Study.baseline_metric`/`best_metric` via the live list path. Tangential inline fix: `/healthz` contract test now accepts the `solr` subsystem the live response carries (live since 2026-05-31). No migration (head stays `0022`). Cross-model: Epic 2 phase-gate GPT-5.5 cycle 1 (6 findings — 4 accepted+fixed, 1 accepted-as-comment, 1 deferred to docs), cycle 2 clean; final GPT-5.5 review (2 findings — both rejected: Solr-CLI scope is `infra_adapter_solr` Story A13 territory, header-tooltip UX matches the sibling-column convention); Gemini (2 pre-rebase findings on Epic 1 code — moot after rebase). All 12 `pr.yml` checks green. | ||
| _(older entries — full narrative in [`state_history.md`](state_history.md): `bug/cli-seed-ubi-missing-engine-type` PR #419, `chore_template_library_expansion` PR #416, `infra_smoke_reseed_runtime_budget` PR #424, `infra_solr_smoke_stability` PR #383, `infra_solr_ci_readiness` Phase 1 PR #367, MVP2 backlog batch PR #364, `feat_study_convergence_indicator` PR #352, `feat_overnight_autopilot` PR #343, `infra_adapter_solr` PR #336, …)_ | ||
| _(older entries — full narrative in [`state_history.md`](state_history.md): `feat_studies_convergence_visibility` PR #421/#422, `bug/cli-seed-ubi-missing-engine-type` PR #419, `chore_template_library_expansion` PR #416, `infra_smoke_reseed_runtime_budget` PR #424, `infra_solr_smoke_stability` PR #383, `infra_solr_ci_readiness` Phase 1 PR #367, MVP2 backlog batch PR #364, `feat_study_convergence_indicator` PR #352, `feat_overnight_autopilot` PR #343, `infra_adapter_solr` PR #336, …)_ |
There was a problem hiding this comment.
The feature infra_smoke_reseed_runtime_budget (PR #424) is currently listed in the "Last 5 merges" list (on line 33) and is also duplicated in the "older entries" list on line 34. It should be removed from the "older entries" list to avoid redundancy.
| _(older entries — full narrative in [`state_history.md`](state_history.md): `feat_studies_convergence_visibility` PR #421/#422, `bug/cli-seed-ubi-missing-engine-type` PR #419, `chore_template_library_expansion` PR #416, `infra_smoke_reseed_runtime_budget` PR #424, `infra_solr_smoke_stability` PR #383, `infra_solr_ci_readiness` Phase 1 PR #367, MVP2 backlog batch PR #364, `feat_study_convergence_indicator` PR #352, `feat_overnight_autopilot` PR #343, `infra_adapter_solr` PR #336, …)_ | |
| _(older entries — full narrative in [`state_history.md`](state_history.md): `feat_studies_convergence_visibility` PR #421/#422, `bug/cli-seed-ubi-missing-engine-type` PR #419, `chore_template_library_expansion` PR #416, `infra_solr_smoke_stability` PR #383, `infra_solr_ci_readiness` Phase 1 PR #367, MVP2 backlog batch PR #364, `feat_study_convergence_indicator` PR #352, `feat_overnight_autopilot` PR #343, `infra_adapter_solr` PR #336, …)_ |
Summary
Finalization for #436 (
feat_list_count_columns, squash-merged606d43d9). Docs-only —state.mdonly.feat_list_count_columnsto "Last 5 merges".infra_generated_artifact_freshness_gateentry — it merged as PR infra(freshness-gate): CI gates for generated artifacts (copy-docs + openapi.json + types.ts) #433 / docs PR docs: finalize infra_generated_artifact_freshness_gate (PR #433 merged) #435, but the text (committed on the feature branch before the PR number existed) still read "PR forthcoming".feat_studies_convergence_visibilityto the older-entries pointer (keeps the list at 5).Ad-hoc feature → no feature folder to move; this is the only finalization artifact.
Test plan
state.mdonly🤖 Generated with Claude Code