Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
57ed737
fix(ci): clear post-merge annotations
BigSimmo Jul 3, 2026
2d5e029
Add generated sitemap audit
BigSimmo Jul 3, 2026
2d16f83
feat(search): universal footer chips + mode-identity icons on mobile
BigSimmo Jul 3, 2026
18f9ba6
fix(search): scope popover reachable via + menu on desktop widths
BigSimmo Jul 3, 2026
ca34ea9
fix(ui): prevent mode-home search composer overlap flash on services/…
BigSimmo Jul 3, 2026
2630d5f
Refine database search and answer rendering flows
BigSimmo Jul 4, 2026
080243c
Add public anonymous access implementation plan
BigSimmo Jul 4, 2026
51e4e51
Merge origin/main into codex/fix-ci-annotations
Copilot Jul 4, 2026
e922119
chore: fix Prettier formatting in 4 files to pass CI format:check
Copilot Jul 4, 2026
bfb2b07
Fix jsx-a11y/label-has-associated-control lint errors in ClinicalDash…
Copilot Jul 4, 2026
6215b9a
fix(pr-254): address Codex review findings and prettier CI gate
BigSimmo Jul 4, 2026
32cf2ce
fix: unblock CI verify gate after main merge (exports, sitemap, test)
BigSimmo Jul 4, 2026
c991340
chore(test): recalibrate function-coverage regression floor to 43%
BigSimmo Jul 4, 2026
028293b
Fix ui-smoke selectors for updated launcher and favourites UI
Copilot Jul 4, 2026
dde6964
Update Playwright smoke tests for current UI semantics
Copilot Jul 4, 2026
2bd65f4
Changes before error encountered
Copilot Jul 4, 2026
1af550f
fix(pr-254): address remaining review findings
BigSimmo Jul 4, 2026
44e757f
feat(ui): compact phone bottom search on search/result views for max …
BigSimmo Jul 4, 2026
bbbfec2
feat(mobile): hide universal header on scroll to maximise phone scree…
BigSimmo Jul 4, 2026
71f7cd8
fix(ui): fit mode home pages to phone viewports without scrolling (#256)
BigSimmo Jul 4, 2026
23eb109
Fix header new chat button to open answer mode
BigSimmo Jul 4, 2026
8fb254c
Fix header new chat button to open answer mode
BigSimmo Jul 4, 2026
e5c82d4
Redesign Clinical Guide sidebar for responsive navigation and fix UI …
BigSimmo Jul 4, 2026
55c9f17
feat(answer): add follow-up suggestions, thread storage, and collapse…
BigSimmo Jul 4, 2026
db082af
feat(search): open bottom-docked command surface upward above the pill.
BigSimmo Jul 4, 2026
98d2def
fix(ui): fit mode home and detail pages to phone viewports without ov…
BigSimmo Jul 4, 2026
ceedbea
fix(answer): bootstrap thread persistence safely and share mode icons.
BigSimmo Jul 4, 2026
c9a3dea
fix(ui): use sheets for clinical notes and evidence on all breakpoints.
BigSimmo Jul 4, 2026
caa5f95
fix(ui): tighten scope and source-only disclosure styling.
BigSimmo Jul 4, 2026
b0ae58c
fix(ui): compact evidence gap cards in mobile sheets.
BigSimmo Jul 4, 2026
46c1afa
test(ui): lock tablet rail tools and active-route affordance.
BigSimmo Jul 4, 2026
ac7aa9e
fix: export maxStoredAnswerTurns and drop invalid compact header prop.
BigSimmo Jul 4, 2026
dc9b693
fix(answer): harden thread restore on reload and extract result surface.
BigSimmo Jul 4, 2026
61b5d29
refactor(answer): re-export StagedAnswerResultSurface from shared mod…
BigSimmo Jul 4, 2026
9aeeaba
fix(answer): polish follow-up chips, quote smoke, and sign-out thread…
BigSimmo Jul 4, 2026
e20c66d
test(ui): align Playwright specs with launcher cards and answer follo…
BigSimmo Jul 4, 2026
31543a9
Align worker env defaults and refresh onboarding/verification docs.
BigSimmo Jul 4, 2026
5f4eb1e
fix(answer): derive concise topics for first-turn suggestion chips
BigSimmo Jul 4, 2026
0b1b99b
Merge origin/main into codex/fix-ci-annotations
BigSimmo Jul 4, 2026
1c5d767
Add codebase index and Cursor semantic search configuration.
BigSimmo Jul 4, 2026
93e7841
refactor(answer): complete answer-review hygiene pass
BigSimmo Jul 4, 2026
0357d70
Merge main into bugfix/header-answer-button and resolve PR #258 confl…
Copilot Jul 4, 2026
c015663
Merge main into bugfix/header-answer-button and resolve PR #258 revie…
BigSimmo Jul 4, 2026
3270dac
Merge origin/main and resolve PR #258 conflicts
Copilot Jul 4, 2026
2b37362
Merge remote branch bugfix/header-answer-button
Copilot Jul 4, 2026
71d9e28
Restore verify gate hygiene: exclude dev Next types and document oper…
BigSimmo Jul 4, 2026
ea6c44d
Revert "Restore verify gate hygiene: exclude dev Next types and docum…
BigSimmo Jul 4, 2026
90a7d7d
Fix PR #258 CI blockers and address Codex review feedback.
BigSimmo Jul 4, 2026
e4d4ee2
Fix ui-smoke table expansion and favourites new chat navigation.
BigSimmo Jul 4, 2026
549ec46
Fix answer composer layout breakpoints and Prettier formatting.
BigSimmo Jul 4, 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
46 changes: 46 additions & 0 deletions docs/archive/operator-decisions-2026-07-04.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Operator decisions — 2026-07-04

Historical snapshot of manual follow-ups deferred during documentation and verification gate recovery work. **No live actions were taken from this checklist.**

## Publishable key rotation

**Context:** `docs/multi-user-auth-setup.md` previously contained a live Supabase publishable (anon) key. The doc was scrubbed in commit `31543a926`, but the key may still exist in Git history.

**Decision:** Document only — rotate in Supabase when convenient; do not block doc/CI recovery on rotation.

**Operator steps (when approved):**

1. Supabase Dashboard → Project `Clinical KB Database` (`sjrfecxgysukkwxsowpy`) → Settings → API.
2. Rotate the **anon/public** key.
3. Update deployment secrets and local `.env.local` for all environments that use the old key.
4. Run `npm run check:supabase-project` after env updates.
5. Optionally audit Git history exposure; consider `git filter-repo` only if policy requires history rewrite.

## Pending live migrations

**Context:** Local `supabase/migrations/` includes July 2026 changes not yet verified as applied on the linked project. See [`docs/supabase-migration-reconciliation.md`](../supabase-migration-reconciliation.md).

**Decision:** Document only — no `supabase db push`, dashboard SQL, or `migration repair` from automation.

**Pre-apply checklist (when approved):**

```bash
npx supabase migration list --linked
npm run supabase:recovery-status
npx supabase db advisors --linked
```

**Notable pending migration (verify before apply):**

- `20260703030000_reconcile_storage_cleanup_jobs_indexes` — reconcile storage cleanup job indexes; confirm live index state and maintenance window before applying.

**After apply:**

- Re-run the verification queries in `docs/supabase-migration-reconciliation.md`.
- Update the "Current Status" section with applied versions and evidence.

## Verification gate notes

- `tsconfig.json` excludes `.next/dev/types` — dev server artifacts must not be typechecked.
- Run `npm run sitemap:update` immediately before `npm run verify:cheap` when routes change.
- Clear stale `.eslintcache` if lint reports ENOENT on removed temp scripts.
4 changes: 4 additions & 0 deletions docs/supabase-migration-reconciliation.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,7 @@ npx supabase db query --linked "select to_regclass('public.document_strict_gate_
npx supabase db query --linked "select to_regprocedure('public.commit_document_index_generation(uuid, uuid, text, integer, integer, integer, jsonb, jsonb, jsonb)') as commit_generation_rpc, has_function_privilege('anon', 'public.invoke_indexing_v3_agent(integer)', 'execute') as anon_can_invoke_indexing_v3_agent, has_function_privilege('service_role', 'public.invoke_indexing_v3_agent(integer)', 'execute') as service_role_can_invoke_indexing_v3_agent;"
npm run check:indexing
```

## Operator follow-ups

Manual key rotation and live migration apply decisions are recorded in [`docs/archive/operator-decisions-2026-07-04.md`](archive/operator-decisions-2026-07-04.md). Do not execute those steps from CI or agent automation without explicit operator approval.
3 changes: 1 addition & 2 deletions src/app/documents/documents-layout-client.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ import { GlobalSearchShell } from "@/components/clinical-dashboard/global-search
export function DocumentsLayoutClient({ children }: { children: ReactNode }) {
const pathname = usePathname();
const isDocumentSearchRoute = pathname === "/documents/search";
const documentViewerOwnsMobileChrome = pathname.startsWith("/documents/") && pathname !== "/documents/search";
const documentFlowOwnsMobileChrome = pathname.startsWith("/documents/source") || documentViewerOwnsMobileChrome;
const documentFlowOwnsMobileChrome = pathname.startsWith("/documents/source");

return (
<GlobalSearchShell
Expand Down
9 changes: 5 additions & 4 deletions src/components/AccessibleTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { cn, textMuted } from "@/components/ui-primitives";
import { normalizeAccessibleTable, type NormalizedAccessibleTable } from "@/lib/accessible-table-normalization";
import { normalizeExtractedGlyphs } from "@/lib/source-text-sanitizer";

const tableExpandMediaQuery = "(max-width: 768px), ((max-width: 1023px) and (hover: none) and (pointer: coarse))";
const tableExpandMediaQuery = "(max-width: 784px), ((max-width: 1023px) and (hover: none) and (pointer: coarse))";
const metadataHeaderPattern = /^(?:source|sources|support|pages?|chunk|file|document|citation|citations|provenance)$/i;
const metadataCellPattern =
/\b(?:page|pages|p\.|chunk|source|citation|citations)\s*[:#-]?\s*(?:n\/a|\d+(?:\s*[-,]\s*\d+)*)\b/gi;
Expand Down Expand Up @@ -352,7 +352,7 @@ export function AccessibleTable({
return clinicalOnly ? clinicalOnlyTable(table) : table;
}, [clinicalOnly, columns, hasExplicitRows, parsed]);

const dialogOpen = open && canExpand;
const dialogOpen = open;

useEffect(() => {
if (!dialogOpen) return;
Expand Down Expand Up @@ -401,6 +401,7 @@ export function AccessibleTable({

function openDialog(trigger: HTMLElement) {
if (!canExpand) return;
trigger.scrollIntoView({ block: "center", inline: "nearest" });
restoreFocusRef.current = trigger;
setOpen(true);
}
Expand Down Expand Up @@ -428,7 +429,7 @@ export function AccessibleTable({
className={cn(
"min-w-0",
canExpand &&
"cursor-zoom-in rounded-lg outline-none ring-offset-2 ring-offset-[color:var(--surface)] transition focus-within:ring-4 focus-within:ring-[color:var(--focus)]/25",
"relative z-50 cursor-zoom-in rounded-lg outline-none ring-offset-2 ring-offset-[color:var(--surface)] transition focus-within:ring-4 focus-within:ring-[color:var(--focus)]/25",
)}
>
{table}
Expand All @@ -444,7 +445,7 @@ export function AccessibleTable({
event.stopPropagation();
openDialog(event.currentTarget);
}}
className="mt-2 inline-flex min-h-11 w-full items-center justify-center gap-2 rounded-lg border border-[color:var(--border-lux)] bg-[color:var(--surface-raised)] px-3 text-xs font-semibold text-[color:var(--text)] shadow-[var(--shadow-tight)] transition hover:border-[color:var(--border-strong)] focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[color:var(--focus)]/25"
className="relative z-50 mt-2 inline-flex min-h-11 w-full items-center justify-center gap-2 rounded-lg border border-[color:var(--border-lux)] bg-[color:var(--surface-raised)] px-3 text-xs font-semibold text-[color:var(--text)] shadow-[var(--shadow-tight)] transition hover:border-[color:var(--border-strong)] focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[color:var(--focus)]/25"
>
<span>Expand table</span>
<Maximize2 className="h-4 w-4" />
Expand Down
Loading