Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
cacaa3f
feat(ui): streamline clinical sidebar navigation
BigSimmo Jul 22, 2026
1165f8e
Merge remote-tracking branch 'origin/main' into codex/chat-sidebar-st…
BigSimmo Jul 22, 2026
cd54e68
test(ui): align therapy wiring with sidebar scope
BigSimmo Jul 23, 2026
754f59b
Merge origin/codex/sidebar-test-fix-20260723 into sidebar land branch
cursoragent Jul 24, 2026
db9e02c
test(ui): align favourites sidebar contract with six-item rail
cursoragent Jul 24, 2026
acb3f74
style: format favourites sidebar contract test
cursoragent Jul 24, 2026
3fe0c14
Merge remote-tracking branch 'origin/main' into cursor/sidebar-six-it…
cursoragent Jul 24, 2026
d97c11e
test(ui): fix guide/settings helpers after sidebar streamlining
cursoragent Jul 24, 2026
3a3f2b6
Merge remote-tracking branch 'origin/cursor/sidebar-six-item-land-cfa…
cursoragent Jul 24, 2026
e72b201
issues: update #066 with sidebar land proof status
cursoragent Jul 24, 2026
3c28afe
issues: pin #066 proof SHA to ledger tip
cursoragent Jul 24, 2026
0ade13a
issues: align #066 tip SHA with branch HEAD
cursoragent Jul 24, 2026
0aaad37
docs: pin #066 proof to content SHA and record review ledger
cursoragent Jul 24, 2026
6756b03
issues: clean #066 proof wording
cursoragent Jul 24, 2026
62eae1e
Merge remote-tracking branch 'origin/main' into cursor/sidebar-six-it…
cursoragent Jul 24, 2026
3fec0dd
Merge remote-tracking branch 'origin/main' into cursor/sidebar-six-it…
cursoragent Jul 24, 2026
3a920cd
Merge cursor/pr-queue-hygiene-72ec for postcss audit + PR branch sync
cursoragent Jul 24, 2026
1f09da1
Merge remote-tracking branch 'origin/main' into cursor/sidebar-six-it…
cursoragent Jul 24, 2026
6d1286a
Merge remote-tracking branch 'origin/main' into HEAD
BigSimmo Jul 24, 2026
c44a5c5
fix(ci): format outstanding issues ledger
BigSimmo Jul 24, 2026
6f383ea
docs: record PR 1174 maintenance
BigSimmo Jul 24, 2026
0c2e8e5
test: update favourites auth gate assertion
BigSimmo Jul 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/branch-review-ledger.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -786,8 +786,10 @@ This file is append-only. Never rewrite or delete an existing review record; app
| 2026-07-24 | execute-audit-code-remediation (PR #1162) | 3cb7c977 | Conflict fix + Bugbot + local review | Before: CONFLICTING (21 files). After: mergeable. Restored atomic upload RPC; aligned private-access tests (133/133). Bugbot 2 medium left open. | private-access-routes 133/133; no provider-backed checks |
| 2026-07-25 | codex/document-clinical-summary-20260725 (PR #1169) | 605a47b551a03774fab41416bf980dfbc9610221 | Open-PR maintenance: malformed persisted profile guard | Before: one actionable thread showed non-array or malformed persisted summary groups could throw during render. After: every priority group is normalized through an array/item guard and malformed values are ignored while valid items still render. | Focused Vitest 7/7 pass; Prettier and diff checks pass; no provider-backed checks run. |
| 2026-07-25 | cursor/search-performance-review-4ee9 (PR #1134) | 692834a86e612cc8b311dc6895e007f182f5c5b8 | Open-PR maintenance: superseded docs-link thread and clean main sync | Before: branch was behind current main with one outdated docs-link thread; its product tree already matched main. After: merged current main cleanly and verified the route-group-aware docs-link fix now covers legacy route references. RAG impact: no retrieval behaviour change — history sync and docs tooling verification only. | `node scripts/check-docs-links.mjs` pass (1154 references); clean merge-tree; no live RAG canary or provider-backed check run. |
| 2026-07-24 | `cursor/sidebar-six-item-land-cfa0` / PR #1174 content-proof `d97c11e6` | `d97c11e6` | #066 land/proof of six-item sidebar from `cd54e68f` onto main | PROVE — feature content landed; focused 20/20; verify:pr-local PASS; ensure spot-check PASS; verify:ui 267/267. Not merged to main. | vitest favourites+therapy; verify:pr-local; ensure+computerUse spot-check; verify:ui |
| 2026-07-25 | codex/hydration-fixes (PR #1131) | 555213fcf4dec82c6dbb445630e59e0d5465149a | Open-PR maintenance: persisted-state hydration coverage | Before: the browser guard covered only an empty-storage dashboard load. After: it seeds theme localStorage plus cookie, sidebar state, and document-viewer PDF mode before navigation, while retaining the default case. | Repository Playwright runner built the isolated production app and passed 3/3 Chromium hydration scenarios; Prettier and diff checks pass; no provider-backed checks run. |
| 2026-07-24 | open-PR conflict sync (20 PRs) | multi-head | Conflict resolution pass | Before: 8 PRs behind/dirty (#1124 #1131 #1162 #1169 #1174-1177). After: merged origin/main into all; all 20 open PRs MERGEABLE behind=0 (BLOCKED only by CI/reviews). | merge origin/main per branch; no provider-backed checks run |
| 2026-07-24 | open-PR conflict sync (22 PRs) | multi-head | Conflict resolution pass | Before: all 22 open PRs behind/dirty vs main (several CONFLICTING/DIRTY). After: merged origin/main into every open head; all pushes OK; merge-tree classified 22/22 clean. | merge origin/main per branch; check:branch-review-ledger on #1172; no provider-backed checks run |
| 2026-07-24 | cursor/pr-queue-hygiene-72ec | pending-push | PR queue hygiene | Add pr-branch-sync workflow + sync:pr-branches helper; bump postcss to clear npm audit high; document anti-churn guidance in AGENTS/process-hardening/pr-babysit/run-pr. | check:github-actions PASS; docs:check-scripts/index PASS; vitest sync-open-pr-branches 3/3; npm audit high clean; no provider-backed checks run |
| 2026-07-24 | codex/apply-phone-layout-to-all-home-pages (PR #1124) | pending | Babysit: ledger dedupe + merge readiness | Before: Static PR failed on exact duplicate ledger rows after main sync. After: removed duplicate rows; squash auto-merge armed. | check:branch-review-ledger PASS; no provider-backed checks run |
| 2026-07-25 | cursor/sidebar-six-item-land-cfa0 (PR #1174) | c44a5c536e43f300feb1b88892d0b2a8ca2c4feb | Run PR sweep: CI fix + threads + drift | Before: GitHub reported DIRTY and Static PR checks failed formatting `docs/outstanding-issues.md`; 0 unresolved threads. After: merged current `origin/main` cleanly and formatted the failing document. | Prettier check pass; `git diff --check` pass; no provider-backed checks run. |
102 changes: 51 additions & 51 deletions docs/outstanding-issues.md

Large diffs are not rendered by default.

49 changes: 26 additions & 23 deletions src/components/ClinicalDashboard.tsx
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,13 +49,12 @@ import {
textMuted,
} from "@/components/ui-primitives";
import { useAuthSession } from "@/lib/supabase/client";
import { AccountSetupDialog } from "@/components/clinical-dashboard/account-setup-dialog";
import { useEventCallback } from "@/components/clinical-dashboard/use-event-callback";
import { AuthPanel } from "@/components/clinical-dashboard/auth-panel";
import { buildMobileSectionFabState, MobileSectionFab, ToolsHub } from "@/components/clinical-dashboard/dashboard-nav";
import { SettingsDialog } from "@/components/clinical-dashboard/settings-dialog";
import { useSidebarCollapsed } from "@/components/clinical-dashboard/use-sidebar-collapsed";
import { useTheme } from "@/components/clinical-dashboard/use-theme";
import * as SidebarDialogs from "@/components/clinical-dashboard/lazy-sidebar-dialogs";
import { useSettingsGuideFlow } from "@/components/clinical-dashboard/use-settings-guide-flow";
import {
deriveSidebarIdentity,
ClinicalDesktopSidebar,
Expand DownExpand Up@@ -209,7 +208,6 @@ import {
maxVisiblePriorTurns,
PriorAnswerTurnSurface,
} from "@/components/clinical-dashboard/answer-thread-turn";

const documentPageSize = 150;
const activeIndexingPollFallbackMs = 5_000;
const indexingWorkDetailsPollMs = 15_000;
Expand DownExpand Up@@ -260,7 +258,6 @@ type IngestionQualityPayload = {
items?: IngestionQualityReviewItem[];
demoMode?: boolean;
};

export const clinicalQueryModeOptions: Array<{ value: ClinicalQueryMode; label: string }> = [
{ value: "auto", label: "Auto" },
{ value: "monitoring_schedule", label: "Monitoring" },
Expand All@@ -270,7 +267,6 @@ export const clinicalQueryModeOptions: Array<{ value: ClinicalQueryMode; label:
{ value: "required_documentation", label: "Documentation" },
{ value: "compare_guidance", label: "Compare" },
];

type SearchResultModePayload =
| {
kind: "documents";
Expand All@@ -288,9 +284,7 @@ type SearchResultModePayload =
query: string;
payload: AnswerPayload;
};

type SourceLibrarySearchMode = Extract<AppModeSearchKind, "documents" | "differentials">;

type LibraryHealthTarget = "documents" | "setup" | "indexing" | "failures";
type IndexingMonitorFilter = "all" | "active" | "failed";
type UploadIndexingTab = "setup" | "upload" | "jobs" | "quality";
Expand DownExpand Up@@ -537,7 +531,6 @@ export function ClinicalDashboard({
const [indexingActive, setIndexingActive] = useState(false);
const [userStartedIngestion, setUserStartedIngestion] = useState(false);
const [nextRefreshDelayMs, setNextRefreshDelayMs] = useState<number | null>(null);
const { theme, toggleTheme } = useTheme();
const auth = useAuthSession();
const {
status: authStatus,
Expand DownExpand Up@@ -664,6 +657,13 @@ export function ClinicalDashboard({
setUploadDrawerOpen,
prefetch: (href) => router.prefetch(href),
});
const settingsGuideFlow = useSettingsGuideFlow({
openGuide,
closeGuide,
openSettings,
openAccountProfile,
setSettingsOpen,
});
const answerThreadOwnerId = auth.session?.user.id ?? (clientDemoMode ? demoRecentQueryOwnerId : null);
const previousAnswerThreadOwnerIdRef = useRef(answerThreadOwnerId);
useEffect(() => {
Expand DownExpand Up@@ -3305,11 +3305,10 @@ export function ClinicalDashboard({
onCollapsedChange={setSidebarCollapsed}
onNewChat={startNewChat}
onPickRecent={pickRecentQuery}
onOpenGuide={openGuide}
onOpenSettings={openSettings}
onOpenAccount={openAccountProfile}
theme={theme}
onToggleTheme={toggleTheme}
onOpenSettings={settingsGuideFlow.openSettingsWithDefaultFocus}
onOpenAccount={settingsGuideFlow.openAccountProfileWithDefaultFocus}
onPrefetchSettings={SidebarDialogs.loadSettingsDialog}
onPrefetchAccount={SidebarDialogs.prefetchAccountDialog}
onPrefetchApplications={prefetchApplications}
showAccountLibrary={favouritesAccessible}
/>
Expand DownExpand Up@@ -4080,15 +4079,20 @@ export function ClinicalDashboard({
hidden
onNavigate={navigateMobileSection}
/>
<GuideDialog open={guideOpen} onClose={closeGuide} />
<SettingsDialog
<GuideDialog open={guideOpen} onClose={settingsGuideFlow.closeGuideWithRestore} />
<SidebarDialogs.SidebarSettingsDialog
open={settingsOpen}
onClose={closeSettings}
identity={sidebarIdentity}
onSignOut={auth.signOut}
onOpenGuide={openGuide}
onOpenGuide={settingsGuideFlow.openGuideFromSettings}
initialFocus={settingsGuideFlow.settingsInitialFocus}
/>
<SidebarDialogs.SidebarAccountSetupDialog
open={accountSetupOpen}
onClose={closeAccountSetup}
intent={accountSetupIntent}
/>
<AccountSetupDialog open={accountSetupOpen} onClose={closeAccountSetup} intent={accountSetupIntent} />
<ClinicalMobileSidebar
open={mobileSidebarOpen}
recentQueries={recentQueries}
Expand All@@ -4097,11 +4101,10 @@ export function ClinicalDashboard({
onOpenChange={setMobileSidebarOpen}
onNewChat={startNewChat}
onPickRecent={pickRecentQuery}
onOpenGuide={openGuide}
onOpenSettings={openSettings}
onOpenAccount={openAccountProfile}
theme={theme}
onToggleTheme={toggleTheme}
onOpenSettings={settingsGuideFlow.openSettingsWithDefaultFocus}
onOpenAccount={settingsGuideFlow.openAccountProfileWithDefaultFocus}
onPrefetchSettings={SidebarDialogs.loadSettingsDialog}
onPrefetchAccount={SidebarDialogs.prefetchAccountDialog}
onPrefetchApplications={prefetchApplications}
showAccountLibrary={favouritesAccessible}
/>
Expand Down
Loading
Loading