-
Next up — Feature, currently in Plan
-
- A single denormalized FK `config_repos.last_merged_proposal_id` points at the most recently merged proposal for each config repo.
- Plan approved; run /impl-execute to ship
- /impl-execute docs/02_product/planned_features/feat_config_repo_baseline_tracking/implementation_plan.md --all
+
+
@@ -395,15 +395,15 @@ Next up
+ All scoped MVP1 features shipped 🎉
+
+ Pull from the Idea backlog or capture a new feature spec.
+
RelyLoop MVP1 Dashboard
MVP1 Progress
-
+
@@ -667,19 +667,7 @@ Scoped items done
- 66 / 67
- 99% of feat_/infra_/chore_/epic_ items past idea stage
-
+
67 / 67
+ 100% of feat_/infra_/chore_/epic_ items past idea stage
+ Pending work
- 16
+ 15
every not-done feat/infra/chore/bug across all priorities
@@ -425,7 +425,7 @@
MVP1 Progress
P2 (default)
- 14
+ 13
important to file, not blocking
@@ -435,7 +435,7 @@
MVP1 Progress
Legacy "Path to MVP1"
- 9
+ 8
scoped not-done + bugs + chore-ideas only (excludes feat/infra ideas)
Spec 0
-
@@ -689,7 +677,7 @@ Plan 1
- -
-
-
-
+ A single denormalized FK `config_repos.last_merged_proposal_id` points at the most recently merged proposal for each config repo.
-
-
-Plan 0
Implementing 0
-
Done 78
+Done 79
@@ -730,6 +718,19 @@
+Done 78
+
+
+
+
+
A single denormalized FK `config_repos.last_merged_proposal_id` points at the most recently merged proposal for each config repo.
+
+
+
@@ -1717,8 +1718,6 @@ via on both proposals table rows + proposal detail page header, two new glossary entries (proposal.currently_live + proposal.currently_live_filter), and a two-state "Currently live only" filter chip on /proposals with empty-state copy override. Backend 1128 unit tests passing; integration + contract tests written for AC-1..AC-15 (skip locally without Postgres but run in CI); ui/src/lib/types.ts manually patched with the three new fields; UI vitest case for the badge added. Spec converged at GPT-5.5 cycle 3 (21 findings: 15 cycle-1 + 5 cycle-2 + 1 cycle-3, all accepted, 0 rejected); plan converged at GPT-5.5 cycle 3 (17 findings: 14 cycle-1 + 3 cycle-2 + 0 cycle-3, 15 accepted + 2 rejected with codebase counter-evidence). Earlier: `docs/finalize-mvp1-5-ubi-foundation` — finalization docs PR after PR #200 (`594f7b4`) merged 2026-05-23; introduced the MVP1.5 / v0.1.5 "Real Signals" release tier (planning artifact — `feat_ubi_judgments` (P1) + `bug_dashboard_depends_on_column_bloat` (P2) idea files + canonical-matrix update). `feature/mvp1-5-ubi-foundation` branch deleted post-merge. Earlier: `docs/finalize-ir-measures-migration` — finalization docs PR after PR #198 (`350b2fc`) merged 2026-05-23; moves the feature folder to `implemented_features/2026_05_23_infra_ir_measures_migration/` per CLAUDE.md convention. `feature/infra-ir-measures-migration` branch deleted post-merge by the user. Earlier: `docs/finalize-guides-glossary-faq-and-regen` — finalization docs PR after PR #195 (`ea2b242`) merged 2026-05-22; moves the three planned-feature folders to `implemented_features/` per CLAUDE.md convention. `feature/guides-glossary-faq-and-regen` branch deleted post-merge by `gh pr merge --delete-branch`. Earlier: `docs/finalize-study-preflight-overlap-probe` — finalization docs PR after PR #193 (`ca835e0`) merged 2026-05-22. `feature/study-preflight-overlap-probe` branch deleted post-merge. Earlier: `docs/finalize-orchestrator-zero-streak-abort` — finalization docs PR after PR #191 (`51ae4b3c`) merged 2026-05-22. `feature/orchestrator-zero-streak-abort` branch deleted post-merge. Earlier: `docs/finalize-home-first-run-demo-nudge` — finalization docs PR after PR #188 (`21325432`) merged 2026-05-22. `feature/home-first-run-demo-nudge` branch deleted post-merge. Earlier: `docs/finalize-e2e-test-rows-isolation` — finalization docs PR after PR #186 (`a444b94`) merged 2026-05-21. `chore/e2e-test-rows-isolation` branch deleted post-merge. Earlier: `docs/finalize-study-target-judgment-mismatch-guard` — finalization docs PR after PR #184 (`ce3fcf4`) merged 2026-05-21. `feature/study-target-judgment-mismatch-guard` branch deleted post-merge. Earlier: `docs/finalize-pr-metric-confidence` — finalization docs PR after PR #180 (`d0a8358`) merged 2026-05-21. `feat_pr_metric_confidence` branch deleted post-merge. Earlier: `docs/finalize-agent-propose-search-space` — finalization docs PR after PR #175 (`5d29355`) merged 2026-05-21. `feature/agent-propose-search-space` deleted post-merge. Earlier: `docs/finalize-cluster-target-filter` — finalization docs PR after PR #168 (`57d3ba0`) + PR #169 (`c44d774`) both merged. Prior `main` post-merge of PR #168 squash `57d3ba0` (`feat_cluster_target_filter`) + PR #169 squash `c44d774` (`chore_seed_meaningful_demos`) 2026-05-20. Earlier: PR #165 squash commit `bd4516a` 2026-05-20. Finalization docs branch `docs/finalize-create-study-target-autocomplete`. Prior squash same day: PR #163 `c703953` (`feat_create_study_search_space_builder`). Finalization docs PR off `docs/finalize-create-study-search-space-builder`. Prior squashes (same day): PR #161 `0879df2` (`chore_create_study_modal_e2e_stability`), PR #160 `160ff6b` (`bug_err_metric_frontend_backend_drift`), PR #159 `52e106d` (`bug_tutorial_template_param_boost_naming`), PR #158 `308c315` (finalize chore_create_study_wizard_polish), PR #157 `075c46b` (`chore_create_study_wizard_polish`). Prior squash: PR #155 `9a72514` 2026-05-19. Prior squashes: PR #154 `ed4121f` 2026-05-19 (`chore_form_dropdown_guide_screenshot_refresh`), PR #153 `199e225` 2026-05-19 (`chore_extract_shadcn_select_test_mock`), PR #152 `476db78` 2026-05-19 (`chore_ci_prettier_check`), PR #151 `110dc5a` 2026-05-19 (finalize chore_data_table_columnvisibility_tanstack), PR #150 `c1e4545` 2026-05-19 (`chore_data_table_columnvisibility_tanstack`), PR #149 `da9506b` 2026-05-19 (finalize infra_e2e_wire_seed_helper_into_studies_spec), PR #148 `65f4150` 2026-05-19 (`infra_e2e_wire_seed_helper_into_studies_spec` — `?study_id=` filter bug + E2E test restore), PR #147 `8854e47` 2026-05-18 (capture chore_detail_page_shell_primitive idea), PR #146 `7299fca` 2026-05-18 (bug_install_skip_ui_rebuild — `make up`/`make down` lifecycle fix), PR #136 `cb7d9ee` 2026-05-18 (chore_form_dropdown_primitive), PR #132 `ee4c8d4` 2026-05-17 (chore_data_table_primitive_followups items 1+2+4+6), PR #130 `13b3383` 2026-05-17 (infra_e2e_seed_completed_study), PR #128 `73459d2` 2026-05-17 (bug_cursor_decode_value_validation), PR #126 `d6115b3` 2026-05-16 (feat_data_table_primitive). `v0.1.0` annotated tag still on `main` commit `d099536` 2026-05-13; GitHub Release at https://github.com/SoundMindsAI/relyloop/releases/tag/v0.1.0.
-- **Active feature:** `feat_config_repo_baseline_tracking` (32nd MVP1-era artifact, in implementation; PR opening next). Substrate for the downstream `feat_auto_followup_studies` work — tracks the most recently merged proposal per config_repo via a denormalized FK, exposed on ConfigRepoDetail + ProposalSummary + a proposals-page filter chip. Captured pre-existing reconciler bug `bug_pr_reconciler_blocked_by_closed_fallback` (out of scope for this PR; documented limitation only). Prior: none in flight (PR #200 introduced the MVP1.5 / v0.1.5 "Real Signals" release tier on 2026-05-23 as a **planning artifact, not a shipped feature** — added `feat_ubi_judgments` (P1) and `bug_dashboard_depends_on_column_bloat` (P2) ideas + spec patches + canonical-matrix update; only the docs/finalize-mvp1-5-ubi-foundation finalization docs PR remains). Prior: none in flight (PR #198 closed `infra_ir_measures_migration` on 2026-05-23 as the **31st MVP1-era artifact** merged; only this finalization docs PR remains). Prior: none in flight (PR #195 closed `chore_guides_glossary_route` + `chore_guides_faq` + `chore_guide_06_screenshot_refresh_confidence_panel` on 2026-05-22; only this finalization docs PR remains. The three siblings shipped bundled per "one branch, one PR" memory). Prior: none in flight (PR #193 closed `feat_study_preflight_overlap_probe` on 2026-05-22 as the **27th MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #191 closed `feat_orchestrator_zero_streak_abort` on 2026-05-22 as the **26th MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #188 closed `feat_home_first_run_demo_nudge` on 2026-05-22 as the **25th MVP1 feature** merged; only finalization docs PR remains. Phase 2 reseed-endpoint work captured in [`feat_home_demo_reseed_endpoint/idea.md`](docs/02_product/planned_features/feat_home_demo_reseed_endpoint/idea.md)). Prior: none in flight (PR #186 closed `chore_e2e_test_rows_isolation` on 2026-05-21 as the **24th MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #184 closed `feat_study_target_judgment_mismatch_guard` on 2026-05-21 as the **23rd MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #180 closed `feat_pr_metric_confidence` on 2026-05-21 as the **22nd MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #175 closed `feat_agent_propose_search_space` on 2026-05-21; only finalization docs PR remains for the 21st MVP1 feature). Prior — none in flight (PR #168 closed `feat_cluster_target_filter` + PR #169 closed `chore_seed_meaningful_demos` on 2026-05-20; only finalization docs PR remains for the 20th MVP1 feature). Prior — none in flight (PR #165 closed `feat_create_study_target_autocomplete` + the bundled `bug_get_schema_unhandled_connect_error` fix on 2026-05-20). Prior — none in flight (PR #163 closed `feat_create_study_search_space_builder` + the `bug_judgment_lists_listing_ignores_query_set_filter` bundled fix on 2026-05-20). PR #168 closed `feat_cluster_target_filter` + PR #169 closed `chore_seed_meaningful_demos` (sibling). **Three PRs shipped 2026-05-15:** PR #122 (Phase 1, 16th MVP1 feature — Tooltip primitive + 26 placements on create-study modal + study detail), PR #123 (Phase 1 finalization docs), PR #124 (Phases 2 + 3 — 17th MVP1 feature; 21 additional tooltips on judgments + proposals + cluster registration + 2 new first-run components: chat ExamplePrompts strip + Stripe-style StartHereChecklist on home page). The original "MVP1 Phase 1 only" scope-lock was reversed mid-day: operator decided to ship Phases 2 + 3 together with a Stripe-style design call rather than wait for MVP2. PR #124 took 2 hours from idea-folder reuse to merge. 47 total tooltip placements + 2 new first-run components live in `main`. **PR #122 shipped 2026-05-15 morning** — `feat_contextual_help` Phase 1 (16th MVP1 feature). Adds the first Tooltip primitive (`@radix-ui/react-tooltip@~1.2.8` + shadcn-style wrapper at `ui/src/components/ui/tooltip.tsx`), two glossary-backed wrappers (`InfoTooltip` standalone + asChild modes; `HelpPopover` click-to-open with `react-markdown` safety filter), and a 49-key glossary source-of-truth at `ui/src/lib/glossary.ts` (8 enum groups parity-tested against `enums.ts`). 26 tooltip placements across the create-study modal (Step 1 target + Step 3 template + 9 Step 5 inputs), study-header (status badge dynamic key + Best metric + Trials), trials-table (5 column headers + Sort label), and digest panel (5 section labels + Open PR enabled + Open PR disabled). The disabled Open PR button refactored from native `disabled` to `aria-disabled="true"` so it stays focusable and the tooltip reveals on focus (AC-11). Gemini Code Assist: 2 findings (1 accepted + fixed, 1 rejected with cited counter-evidence). Final GPT-5.5 review: 1 Medium accepted-framing-but-deferred. Spec converged at GPT-5.5 cycle 3 (24 findings, 23 accepted + 1 rejected); plan converged at cycle 2 (12 findings, 10 accepted + 1 rejected + 1 spec patch). UI vitest now **279 passing across 48 files** (was 249 across 45 — +3 new test files, +30 cases). Playwright E2E **8 passing** (was 5 — +3 new contextual-help tests). One follow-up filed: `infra_e2e_seed_completed_study/idea.md` tracks the E2E gap for digest-panel triggers + AC-11 (cross-subsystem helper for seeding a completed study with digest + proposal; component-level coverage is in place). Phases 2 + 3 deferred to MVP2 via `feat_contextual_help_mvp2/` (judgments + proposals tooltips; chat + cluster + home onboarding; the home-page "Start here" panel is the only product-design-shaped item).
+- **Branch:** `docs/finalize-config-repo-baseline-tracking` — finalization docs PR after PR #202 (`435badf`) merged 2026-05-23; moves the feature folder to `implemented_features/2026_05_23_feat_config_repo_baseline_tracking/` per CLAUDE.md convention. `feature/config-repo-baseline-tracking` branch deleted post-merge by `gh pr merge --delete-branch`. Earlier: `feature/config-repo-baseline-tracking` — implementation branch for `feat_config_repo_baseline_tracking` (32nd MVP1-era artifact). 10 stories across 3 epics shipped: Alembic 0016 (config_repos.last_merged_proposal_id + FK + partial index + backfill), three new repo helpers (update_config_repo_last_merged_pointer with SELECT FOR UPDATE + strict-monotonic-timestamp guard, find_currently_live_proposal_ids, get_config_repo_with_last_merged_proposal), webhook handler patch at github.py:181-194 (FR-3), pr_reconcile.py patch at line 173 (FR-3a — with documented limitation for the `merged_at=null` fallback path captured as bug_pr_reconciler_blocked_by_closed_fallback), ConfigRepoDetail.last_merged_proposal API field with embed-side is_currently_live=True derivation, ProposalSummary/Detail.is_currently_live pointer-only derivation in the existing batch serializer, ?is_last_merged=true|false NULL-safe EXISTS/NOT EXISTS filter, frontend via on both proposals table rows + proposal detail page header, two new glossary entries (proposal.currently_live + proposal.currently_live_filter), and a two-state "Currently live only" filter chip on /proposals with empty-state copy override. Backend 1128 unit tests passing; integration + contract tests written for AC-1..AC-15 (skip locally without Postgres but run in CI); ui/src/lib/types.ts manually patched with the three new fields; UI vitest case for the badge added. Spec converged at GPT-5.5 cycle 3 (21 findings: 15 cycle-1 + 5 cycle-2 + 1 cycle-3, all accepted, 0 rejected); plan converged at GPT-5.5 cycle 3 (17 findings: 14 cycle-1 + 3 cycle-2 + 0 cycle-3, 15 accepted + 2 rejected with codebase counter-evidence). Earlier: `docs/finalize-mvp1-5-ubi-foundation` — finalization docs PR after PR #200 (`594f7b4`) merged 2026-05-23; introduced the MVP1.5 / v0.1.5 "Real Signals" release tier (planning artifact — `feat_ubi_judgments` (P1) + `bug_dashboard_depends_on_column_bloat` (P2) idea files + canonical-matrix update). `feature/mvp1-5-ubi-foundation` branch deleted post-merge. Earlier: `docs/finalize-ir-measures-migration` — finalization docs PR after PR #198 (`350b2fc`) merged 2026-05-23; moves the feature folder to `implemented_features/2026_05_23_infra_ir_measures_migration/` per CLAUDE.md convention. `feature/infra-ir-measures-migration` branch deleted post-merge by the user. Earlier: `docs/finalize-guides-glossary-faq-and-regen` — finalization docs PR after PR #195 (`ea2b242`) merged 2026-05-22; moves the three planned-feature folders to `implemented_features/` per CLAUDE.md convention. `feature/guides-glossary-faq-and-regen` branch deleted post-merge by `gh pr merge --delete-branch`. Earlier: `docs/finalize-study-preflight-overlap-probe` — finalization docs PR after PR #193 (`ca835e0`) merged 2026-05-22. `feature/study-preflight-overlap-probe` branch deleted post-merge. Earlier: `docs/finalize-orchestrator-zero-streak-abort` — finalization docs PR after PR #191 (`51ae4b3c`) merged 2026-05-22. `feature/orchestrator-zero-streak-abort` branch deleted post-merge. Earlier: `docs/finalize-home-first-run-demo-nudge` — finalization docs PR after PR #188 (`21325432`) merged 2026-05-22. `feature/home-first-run-demo-nudge` branch deleted post-merge. Earlier: `docs/finalize-e2e-test-rows-isolation` — finalization docs PR after PR #186 (`a444b94`) merged 2026-05-21. `chore/e2e-test-rows-isolation` branch deleted post-merge. Earlier: `docs/finalize-study-target-judgment-mismatch-guard` — finalization docs PR after PR #184 (`ce3fcf4`) merged 2026-05-21. `feature/study-target-judgment-mismatch-guard` branch deleted post-merge. Earlier: `docs/finalize-pr-metric-confidence` — finalization docs PR after PR #180 (`d0a8358`) merged 2026-05-21. `feat_pr_metric_confidence` branch deleted post-merge. Earlier: `docs/finalize-agent-propose-search-space` — finalization docs PR after PR #175 (`5d29355`) merged 2026-05-21. `feature/agent-propose-search-space` deleted post-merge. Earlier: `docs/finalize-cluster-target-filter` — finalization docs PR after PR #168 (`57d3ba0`) + PR #169 (`c44d774`) both merged. Prior `main` post-merge of PR #168 squash `57d3ba0` (`feat_cluster_target_filter`) + PR #169 squash `c44d774` (`chore_seed_meaningful_demos`) 2026-05-20. Earlier: PR #165 squash commit `bd4516a` 2026-05-20. Finalization docs branch `docs/finalize-create-study-target-autocomplete`. Prior squash same day: PR #163 `c703953` (`feat_create_study_search_space_builder`). Finalization docs PR off `docs/finalize-create-study-search-space-builder`. Prior squashes (same day): PR #161 `0879df2` (`chore_create_study_modal_e2e_stability`), PR #160 `160ff6b` (`bug_err_metric_frontend_backend_drift`), PR #159 `52e106d` (`bug_tutorial_template_param_boost_naming`), PR #158 `308c315` (finalize chore_create_study_wizard_polish), PR #157 `075c46b` (`chore_create_study_wizard_polish`). Prior squash: PR #155 `9a72514` 2026-05-19. Prior squashes: PR #154 `ed4121f` 2026-05-19 (`chore_form_dropdown_guide_screenshot_refresh`), PR #153 `199e225` 2026-05-19 (`chore_extract_shadcn_select_test_mock`), PR #152 `476db78` 2026-05-19 (`chore_ci_prettier_check`), PR #151 `110dc5a` 2026-05-19 (finalize chore_data_table_columnvisibility_tanstack), PR #150 `c1e4545` 2026-05-19 (`chore_data_table_columnvisibility_tanstack`), PR #149 `da9506b` 2026-05-19 (finalize infra_e2e_wire_seed_helper_into_studies_spec), PR #148 `65f4150` 2026-05-19 (`infra_e2e_wire_seed_helper_into_studies_spec` — `?study_id=` filter bug + E2E test restore), PR #147 `8854e47` 2026-05-18 (capture chore_detail_page_shell_primitive idea), PR #146 `7299fca` 2026-05-18 (bug_install_skip_ui_rebuild — `make up`/`make down` lifecycle fix), PR #136 `cb7d9ee` 2026-05-18 (chore_form_dropdown_primitive), PR #132 `ee4c8d4` 2026-05-17 (chore_data_table_primitive_followups items 1+2+4+6), PR #130 `13b3383` 2026-05-17 (infra_e2e_seed_completed_study), PR #128 `73459d2` 2026-05-17 (bug_cursor_decode_value_validation), PR #126 `d6115b3` 2026-05-16 (feat_data_table_primitive). `v0.1.0` annotated tag still on `main` commit `d099536` 2026-05-13; GitHub Release at https://github.com/SoundMindsAI/relyloop/releases/tag/v0.1.0.
+- **Active feature:** none in flight (PR #202 closed `feat_config_repo_baseline_tracking` on 2026-05-23 as the **32nd MVP1-era artifact** merged; only this finalization docs PR remains. Substrate for the downstream `feat_auto_followup_studies` work — tracks the most recently merged proposal per config_repo via a denormalized FK, exposed on ConfigRepoDetail + ProposalSummary + a proposals-page filter chip. Captured pre-existing reconciler bug `bug_pr_reconciler_blocked_by_closed_fallback` as a separate planned idea — out of scope for the merge; documented limitation surfaced in `webhook-debugging.md §8`). Prior: none in flight (PR #200 introduced the MVP1.5 / v0.1.5 "Real Signals" release tier on 2026-05-23 as a **planning artifact, not a shipped feature** — added `feat_ubi_judgments` (P1) and `bug_dashboard_depends_on_column_bloat` (P2) ideas + spec patches + canonical-matrix update; only the docs/finalize-mvp1-5-ubi-foundation finalization docs PR remains). Prior: none in flight (PR #198 closed `infra_ir_measures_migration` on 2026-05-23 as the **31st MVP1-era artifact** merged; only this finalization docs PR remains). Prior: none in flight (PR #195 closed `chore_guides_glossary_route` + `chore_guides_faq` + `chore_guide_06_screenshot_refresh_confidence_panel` on 2026-05-22; only this finalization docs PR remains. The three siblings shipped bundled per "one branch, one PR" memory). Prior: none in flight (PR #193 closed `feat_study_preflight_overlap_probe` on 2026-05-22 as the **27th MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #191 closed `feat_orchestrator_zero_streak_abort` on 2026-05-22 as the **26th MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #188 closed `feat_home_first_run_demo_nudge` on 2026-05-22 as the **25th MVP1 feature** merged; only finalization docs PR remains. Phase 2 reseed-endpoint work captured in [`feat_home_demo_reseed_endpoint/idea.md`](docs/02_product/planned_features/feat_home_demo_reseed_endpoint/idea.md)). Prior: none in flight (PR #186 closed `chore_e2e_test_rows_isolation` on 2026-05-21 as the **24th MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #184 closed `feat_study_target_judgment_mismatch_guard` on 2026-05-21 as the **23rd MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #180 closed `feat_pr_metric_confidence` on 2026-05-21 as the **22nd MVP1 feature** merged; only finalization docs PR remains). Prior: none in flight (PR #175 closed `feat_agent_propose_search_space` on 2026-05-21; only finalization docs PR remains for the 21st MVP1 feature). Prior — none in flight (PR #168 closed `feat_cluster_target_filter` + PR #169 closed `chore_seed_meaningful_demos` on 2026-05-20; only finalization docs PR remains for the 20th MVP1 feature). Prior — none in flight (PR #165 closed `feat_create_study_target_autocomplete` + the bundled `bug_get_schema_unhandled_connect_error` fix on 2026-05-20). Prior — none in flight (PR #163 closed `feat_create_study_search_space_builder` + the `bug_judgment_lists_listing_ignores_query_set_filter` bundled fix on 2026-05-20). PR #168 closed `feat_cluster_target_filter` + PR #169 closed `chore_seed_meaningful_demos` (sibling). **Three PRs shipped 2026-05-15:** PR #122 (Phase 1, 16th MVP1 feature — Tooltip primitive + 26 placements on create-study modal + study detail), PR #123 (Phase 1 finalization docs), PR #124 (Phases 2 + 3 — 17th MVP1 feature; 21 additional tooltips on judgments + proposals + cluster registration + 2 new first-run components: chat ExamplePrompts strip + Stripe-style StartHereChecklist on home page). The original "MVP1 Phase 1 only" scope-lock was reversed mid-day: operator decided to ship Phases 2 + 3 together with a Stripe-style design call rather than wait for MVP2. PR #124 took 2 hours from idea-folder reuse to merge. 47 total tooltip placements + 2 new first-run components live in `main`. **PR #122 shipped 2026-05-15 morning** — `feat_contextual_help` Phase 1 (16th MVP1 feature). Adds the first Tooltip primitive (`@radix-ui/react-tooltip@~1.2.8` + shadcn-style wrapper at `ui/src/components/ui/tooltip.tsx`), two glossary-backed wrappers (`InfoTooltip` standalone + asChild modes; `HelpPopover` click-to-open with `react-markdown` safety filter), and a 49-key glossary source-of-truth at `ui/src/lib/glossary.ts` (8 enum groups parity-tested against `enums.ts`). 26 tooltip placements across the create-study modal (Step 1 target + Step 3 template + 9 Step 5 inputs), study-header (status badge dynamic key + Best metric + Trials), trials-table (5 column headers + Sort label), and digest panel (5 section labels + Open PR enabled + Open PR disabled). The disabled Open PR button refactored from native `disabled` to `aria-disabled="true"` so it stays focusable and the tooltip reveals on focus (AC-11). Gemini Code Assist: 2 findings (1 accepted + fixed, 1 rejected with cited counter-evidence). Final GPT-5.5 review: 1 Medium accepted-framing-but-deferred. Spec converged at GPT-5.5 cycle 3 (24 findings, 23 accepted + 1 rejected); plan converged at cycle 2 (12 findings, 10 accepted + 1 rejected + 1 spec patch). UI vitest now **279 passing across 48 files** (was 249 across 45 — +3 new test files, +30 cases). Playwright E2E **8 passing** (was 5 — +3 new contextual-help tests). One follow-up filed: `infra_e2e_seed_completed_study/idea.md` tracks the E2E gap for digest-panel triggers + AC-11 (cross-subsystem helper for seeding a completed study with digest + proposal; component-level coverage is in place). Phases 2 + 3 deferred to MVP2 via `feat_contextual_help_mvp2/` (judgments + proposals tooltips; chat + cluster + home onboarding; the home-page "Start here" panel is the only product-design-shaped item).
**Earlier — seven PRs shipped 2026-05-14:** `feat_judgments_periodic_resume_sweep` (PR #104, 14th MVP1 feature), `bug_query_inline_crud_since_filter_uuidv7_ms_collision` (PR #106 — UUIDv7 ms-collision test flake), `infra_dashboard_regen_pre_commit_conflict §2+§4` (PR #108 — dashboard regen idempotency + relative-link rewriting), `infra_make_targets_split_backend_only` (PR #110 — `make backend-fmt/lint/typecheck` + symmetric `ui-fmt` so Node-18 contributors aren't blocked), `chore_digest_worker_narrow_except` (PR #112 — narrowed `except Exception` allowlist to `(ValueError,)` + ERROR-level `digest_importance_failed_unexpected` event), `infra_structlog_test_helpers` (PR #114 — factored the two structlog test-assertion patterns into `backend/tests/_log_helpers.py`), and `chore_chat_last_message_preview` (PR #117 — `last_message_preview` + `last_message_at` on `ConversationSummary` via LATERAL JOIN; frontend shows preview under title + swaps displayed timestamp from `created_at` to `last_message_at`). Plus PR #116 dropped `chore_studies_ui_shadcn_polish` as won't-do (forward-compat audit on NavigationMenu primitive + ClusterFilterSelect precedent on native `