Skip to content

refactor: extract SettingsDialog + dashboard-nav overlays from ClinicalDashboard (move-only) - #250

Merged
BigSimmo merged 2 commits into
mainfrom
claude/clinical-dashboard-admin
Jul 3, 2026
Merged

refactor: extract SettingsDialog + dashboard-nav overlays from ClinicalDashboard (move-only)#250
BigSimmo merged 2 commits into
mainfrom
claude/clinical-dashboard-admin

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

What

Continues the ClinicalDashboard decomposition into the deferred admin surfaces (the render-surface modules all landed in #202/#211/#214/#240/#241). Extracts two dashboard-overlay modules, move-only. Monolith 4,684 → 3,934 lines.

settings-dialog.tsxSettingsDialog + its sub-components (SettingsChip, SettingsClinicalContextStrip, SettingsSummaryTile, SettingsRow, SettingsHelpFooter). Empty danger set, no runtime cycle. global-mockup-search-shell (the only other consumer) repointed from the monolith to the new module.

dashboard-nav.tsxToolsHub, MobileSectionFab, and the fab helpers/types (buildMobileSectionFabState, fabToneClassName, mobileSectionItemLabel, MobileSectionFabItem/Tone/State). Monolith imports those 3 back; the module back-imports navigationHashes + mobileSectionFabMediaQuery + ApplicationsLauncherWorkspace (runtime-safe cycle, the same established pattern used elsewhere).

Move fidelity

  • Each block cut verbatim — original ranges diff empty against the new module bodies.
  • data-testid / aria-label sha1 checksum over ClinicalDashboard.tsx + clinical-dashboard/*.tsx is byte-identical to main.
  • Stripped every orphaned monolith import; two pre-existing dead imports left untouched.

Gates

typecheck; lint 0 errors; testid/aria checksum identical; format:check; verify:cheap 994/994.

Remaining (last admin module — separate follow-up)

document-admin.tsx — the DocumentDrawer + DocumentLabelReviewPanel/DocumentTagQualityPanel/DocumentIndexRepairPanel family (~1,000 lines). Mapped and ready; being done as its own focused pass. After it, only the main orchestrator + hooks remain in the monolith.

🤖 Generated with Claude Code

BigSimmoand others added 2 commits July 3, 2026 21:01
Move-only extraction of SettingsDialog + its sub-components (SettingsChip,
SettingsClinicalContextStrip, SettingsSummaryTile, SettingsRow,
SettingsHelpFooter) into clinical-dashboard/settings-dialog.tsx. Block 1470-1824
moved verbatim; testid/aria checksum byte-identical. Empty danger set, no runtime
cycle. Monolith imports SettingsDialog back; global-mockup-search-shell repointed
from the monolith to the new module. Stripped orphaned imports.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rd-nav module
Move-only extraction of ToolsHub, MobileSectionFab, and the mobile-section-fab
helpers/types (buildMobileSectionFabState, fabToneClassName, mobileSectionItemLabel,
MobileSectionFabItem/Tone/State) into clinical-dashboard/dashboard-nav.tsx. Block
moved verbatim; testid/aria checksum byte-identical. Monolith imports ToolsHub +
MobileSectionFab + buildMobileSectionFabState back; the module back-imports
navigationHashes + mobileSectionFabMediaQuery + ApplicationsLauncherWorkspace from
the monolith (runtime-safe cycle, same established pattern). Stripped the orphaned
useDismissableLayer import.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@BigSimmo
BigSimmo enabled auto-merge (squash) July 3, 2026 13:09
@BigSimmo
BigSimmo merged commit c603445 into mainJul 3, 2026
4 checks passed
@BigSimmo
BigSimmo deleted the claude/clinical-dashboard-admin branch July 3, 2026 14:50
BigSimmo added a commit that referenced this pull request Aug 5, 2026
* issues: clarify #250 waves do not outrank A1 acuity
Orphaned follow-up from PR #1624 auto-merge race. Wave packaging is the
engineering track only; recommended-queue A1 rows stay acuity-first, and
Wave 0 queue repair is marked landed with the #249#251 capture.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
* ledger: record prlanded for merged PR #1624
Squash b03b51d landed the 1:1 queue repair; note orphaned #250 clarify
fix-forwarded on this branch.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
* fix(issues): clarify #250 A1 track vs engineering waves
Separate approval-gated A1 work from Wave 4, keep #22/#183 as A2 operator
track, and restore append-only ledger order for the #1624 prlanded row.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
cursorBot pushed a commit that referenced this pull request Aug 7, 2026
CodeRabbit on #1651: clarify Chip compact uses a legacy compat type
step, and stop pointing the multi-wave queue at resolved#201.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
BigSimmo pushed a commit that referenced this pull request Aug 12, 2026
…re-scope the wave plan
Archived with source evidence:
- #166 the verify-before-use caveat ships (verification-notice.tsx:52, rendered
unconditionally by AnswerCard at answer-card.tsx:108). I reported this row as
open twice before reading the code; the archive says so.
- #208 buildAnswerClipboardText composes renderCopyText rather than replacing
formatAnswerRenderCopyText (answer-copy-payload.ts:121-138).
- #216 AnswerCard is adopted on the answer surface and the manifest agrees.
Re-scoped #250: its wave plan names A1 rows that are now closed and hygiene
rows that are in flight, so as written it misdirects. Recorded what actually
remains (#147, #117, #118, #98, #189).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
BigSimmo added a commit that referenced this pull request Aug 13, 2026
… queue text (#1890)
* docs(issues): retire 22 non-actionable ledger rows and correct the #231 queue text
A yield review of all 114 open rows against current main. The queue had become
roughly 60 tasks and 50 notes; this removes the notes and fixes two places where
the ledger was actively misdirecting.
The correction that matters most: the recommended-queue entry for #231, the top
clinical P1, told every session to "measure and fix the fast-route budget /
generation timeout" — an approach #231's own detail records as tested and
rejected, because the decisive 40-second probe completed generation in 25.272s
with route_deadline_exceeded=false and still failed quality. The session-start
hook prints the queue, not the row, so the refuted text was the text agents read.
Closed 22 rows:
- #304 was already done on main (commit d182844 refreshed the ranking
snapshot; generatedAt is 0 days old, not 2026-07-20), yet sat in the queue
advertising a freshness fuse that is not armed.
- #241#244#272#294#300#257 were standing cautions whose own text says
"no action". Each one's knowledge now lives in the code it protects, so
closing the row loses nothing.
- #196-#200 are five steps of the disaster-recovery checklist that is
canonical in docs/operator-backlog.md, with no trigger until a restore.
- #86#188 were index rows over children that are individually findable.
- #250#253#254 were superseded; #250 and #253 say so themselves.
- #156#301#152#236#260 merged into #168, #292 and #169 respectively —
each pair or group was one problem recorded two to four times.
Demoted 20 rows with a stated reason (premature ops for a single-user
prototype, upstream-blocked, measurement-gated, or design-system adoption
competing with an open clinical P1). The Pri cell is unchanged because the
writer has no --pri flag — which is now #313.
Added three rows for mechanism gaps this sweep exposed: rows outliving their
own completion (#312), the missing --pri flag (#313), and the queue being able
to contradict the row it cites with no guard (#314).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DuYJz8hauCsCdx8r4fXiZU
* docs(ledger): record the ledger yield review handoff
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DuYJz8hauCsCdx8r4fXiZU
* Keep recovery work visible and pin forced colors
---------
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@BigSimmo