Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
15b0ae3
feat(therapy): converge mode with shared site infrastructure
BigSimmo Aug 15, 2026
30f096f
fix(therapy): gate unreviewed content and unify ranking
BigSimmo Aug 15, 2026
1efc557
test(therapy): prove shared ranking and refresh drift evidence
BigSimmo Aug 15, 2026
7694929
chore(review): record Therapy convergence handoff
BigSimmo Aug 15, 2026
bf8fd7a
fix(therapy): resolve review blockers
BigSimmo Aug 15, 2026
af33951
fix(therapy): preserve retry error state
BigSimmo Aug 15, 2026
5a216a7
fix: preserve final favourite toggle intent
BigSimmo Aug 16, 2026
6dcc5f8
chore(pr): probe PR 1992 merge conflicts
BigSimmo Aug 16, 2026
2c6f6e6
chore(pr): fix merge conflict probe identity
BigSimmo Aug 16, 2026
8039b95
ci: report PR 1992 merge conflict hunks
BigSimmo Aug 16, 2026
a6b0cf5
ci: simplify PR 1992 conflict diagnostics
BigSimmo Aug 16, 2026
a3ea720
chore(pr): add temporary PR 1992 reconciliation script
BigSimmo Aug 16, 2026
72e4212
chore(pr): run guarded PR 1992 reconciliation
BigSimmo Aug 16, 2026
31b9016
chore(pr): fix PR 1992 reconciliation harness
BigSimmo Aug 16, 2026
6f288a3
chore(pr): pull pinned database image for drift replay
BigSimmo Aug 16, 2026
91c98c8
chore(pr): scope print provenance token repair
BigSimmo Aug 16, 2026
2f8e881
chore(pr): verify ledger discipline after merge commit
BigSimmo Aug 16, 2026
bb7c185
chore(pr): allow verified main-ledger merge push
BigSimmo Aug 16, 2026
255b30c
merge: reconcile main into therapy convergence
BigSimmo Aug 16, 2026
b39e2e5
chore(ci): retrigger exact-head checks
BigSimmo Aug 16, 2026
e21741c
chore(pr): format PR 1992 exact-head files
BigSimmo Aug 16, 2026
1169094
style: format favourite serialization regressions
BigSimmo Aug 16, 2026
9e21ea4
chore(ci): retrigger formatted exact-head checks
BigSimmo Aug 16, 2026
a985d7c
fix: unblock Therapy convergence PR
BigSimmo Aug 16, 2026
0c0feae
Merge main and fix Answer cross-mode state
BigSimmo Aug 16, 2026
59b874f
Fix PR 1992 CI blockers
BigSimmo Aug 17, 2026
c11f15a
fix(pr-1992): repair required CI checks
claude Aug 17, 2026
a3d81a6
merge: sync PR 1992 with latest main
claude Aug 17, 2026
f63b6cc
Merge branch 'main' into codex/therapy-global-convergence-20260814
BigSimmo Aug 17, 2026
05f2c91
Merge branch 'main' into codex/therapy-global-convergence-20260814
BigSimmo Aug 17, 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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-08-14 | codex/therapy-global-convergence-20260814 | 0011a058fd1d68e7fb98f3411d505b71bee104cf | Therapy global mode convergence: navigation, shared shell, search, favourites, sources, print (supersedes 2026-08-14) | All three P2 findings resolved; no remaining Therapy-scoped review findings. Additional favourites-map, cross-mode search, shared-switch target, and stale-contract regressions corrected. Broad gate remains partial only for Docker-gated drift manifest and unchanged baseline checks. | typecheck PASS; focused Vitest 221 PASS plus repair contracts 68 PASS; phone contracts 129 PASS; focused phone 13 PASS; full UI 423 PASS/4 repaired then focused PASS; Therapy accessibility PASS; lint/docs/ledger PASS; RAG fixtures PASS; medication index PASS; drift manifest BLOCKED Docker unavailable; unchanged session hook and lexicon baseline failures remain |
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-08-16 | codex/therapy-global-convergence-20260814 | 9e21ea498fde13e98a9cd749dae16aba0b4c83ab | PR #1992 unblocking review-and-fix | P1/P2 PR regressions fixed: clear/write ordering, failed Therapy retry intent, offline-only route verification, hidden-mode canonicalisation, and global bundle leak; stale-load finding pre-existing | exact-head CI diagnosis; TS/TSX transpile 8 PASS; focused mutation models 3 PASS; static repair contracts 9 PASS; full Node 24 gates delegated to post-push CI; Lighthouse not run by authorization |
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-08-14 | codex/therapy-global-convergence-20260814 | 0011a058fd1d68e7fb98f3411d505b71bee104cf | Therapy global mode convergence: navigation, shared shell, search, favourites, sources, print | P2 findings: four focused contract failures, missing Therapy tabpanel ownership, stale information-page adoption registry; implementation review otherwise safe and scoped | format:changed PASS; therapy-data-index PASS 205; design-system-contract PASS; focused Vitest 201 PASS/4 FAIL; typecheck BLOCKED by coordinator; phone/full UI UNRUN |
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-08-16 | codex/therapy-global-convergence-20260814 | a985d7cb75ebaacd94df5cf55589e10908334510 | PR #1992 exact-head CI follow-up and base sync | Fixed stale Answer cross-mode suggestions on unsubmitted shared home; incorporated main 8f8d111abf1d302ca94899d15be7843071a8537b | Production UI shard 2 diagnosis; TS/TSX transpile 3 PASS; focused submission-state cases 6 PASS; exact-head Node 24 matrix delegated to post-push CI; Lighthouse not run by authorization |
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-08-15 | codex/therapy-global-convergence-20260814 | 1efc557287e05ed7a0d584a23df4505fe7794941 | Therapy global convergence release handoff | Accepted with production content gate; human clinical sign-off and live provider checks remain | focused Therapy 69 pass; format/lint/typecheck/build pass; drift replay pass; verify:pr-local partial from unrelated/baseline failures; live checks blocked missing env |
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-08-15 | codex/therapy-global-convergence-20260814 | 0011a058fd1d68e7fb98f3411d505b71bee104cf | Therapy versus other modes: remaining shared-site differences and issues | P1: production-visible Therapy exposes 205/205 records awaiting review and permits clinical outputs. P2: save failures are silent, catalogue/universal ranking differs, provenance is not source-resolvable, print and visual controls remain Therapy-specific, all rich routes fetch the 2.53 MB catalogue, and release state is stale. | Read-only source/diff review; local catalogue diagnostics (205 total, 0 reviewed; one shared uploaded source; 47 null references); ranking parity diagnostic (multiple top-five mismatches); git overlap review (42 commits behind, 4 overlapping files). Tests not run for review-only task. No provider calls. |
2 changes: 1 addition & 1 deletion docs/codebase-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ sequenceDiagram
One shared composer (`master-search-header.tsx`) serves every mode. Placement:

- **Mode homes** (`/services`, `/forms`, `/favourites`, `/differentials`, `/dsm`, `/specifiers`, `/formulation`, `/factsheets`, `/therapy-compass`, `/tools`, and dashboard homes): inline in the hero via the `mode-home-composer-slot` portal, on phone and tablet+ alike. (`/applications` is a redirect to `/tools`, not a composer surface.)
- **Information (detail) pages**: catalogue/record routes under each mode (`/services/[slug]`, `/forms/[slug]`, `/medications/[slug]`, `/specifiers/[slug]`, `/formulation/[slug]`, `/factsheets/[slug]`, `/dsm/diagnoses/[slug]`, …). Route detection: `src/lib/information-pages.ts` (`isInformationPage`). Shared outer chrome: `src/components/information-page-shell.tsx` (`InformationPageShell`, breadcrumbs, optional footer). Specifier/formulation mode shells re-export that primitive. Intentional opt-outs: document viewer, therapy-compass CSS workspace, differentials presentation workflow.
- **Information (detail) pages**: catalogue/record routes under each mode (`/services/[slug]`, `/forms/[slug]`, `/medications/[slug]`, `/specifiers/[slug]`, `/formulation/[slug]`, `/factsheets/[slug]`, `/therapy-compass/[slug]`, `/dsm/diagnoses/[slug]`, …). Route detection: `src/lib/information-pages.ts` (`isInformationPage`). Shared outer chrome: `src/components/information-page-shell.tsx` (`InformationPageShell`, breadcrumbs, optional footer). Specifier/formulation mode shells re-export that primitive. Intentional opt-outs: document viewer and the differentials presentation workflow.
- **Result and detail views**: fixed bottom dock on phone (compact variant on submitted searches), sticky top from `sm` up.
- **Results routing**: standalone routes own their submitted searches via `?q=…&run=1` (`/services` → `ServicesNavigatorPage`, `/forms` → `FormsSearchResultsPage`, `/differentials` → `DifferentialsHome` results view, `/formulation` → local mechanism results, `/favourites` filters the command library in place). Answer, Documents, and Prescribing submitted searches render inside `ClinicalDashboard` — intentional, since they need retrieval/answer state. Bare `/?mode=<id>` always renders the shared home with that mode preselected; only a submitted deep link (`q` plus `run=1`) resolves to the mode's own search surface (proxy early-redirect still covers favourites/differentials/specifiers for those submitted aliases).
- **Intentionally composer-free routes**: `/differentials/presentations/*` and `/differentials/compare` (comparison workflow owns its chrome), `/documents/[id]` viewer (has its own in-document ask composer), `/documents/source/*` (document flow owns mobile chrome). Do not re-flag these in search-consistency audits.
Expand Down
14 changes: 7 additions & 7 deletions docs/design-system/COMPONENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,7 @@ tests to run.

Registered public components: 54
Components with a valid design-sync preview: 54
Components with product imports: 32
Components with product imports: 33

This generated snapshot is a local source-derived inventory. It does not assert remote design-project publication.

Expand All @@ -966,7 +966,7 @@ This generated snapshot is a local source-derived inventory. It does not assert
| `AnswerFooter` | answer | yes | yes | no | yes | no | 0 |
| `AsyncButton` | controls | yes | yes | inherited-global-root | yes | no | 4 |
| `Breadcrumb` | layout | yes | yes | inherited-global-root | yes | no | 1 |
| `Button` | controls | yes | yes | inherited-global-root | yes | no | 2 |
| `Button` | controls | yes | yes | inherited-global-root | yes | no | 3 |
| `Checkbox` | controls | yes | yes | no | yes | no | 0 |
| `Chip` | controls | yes | yes | inherited-global-root | yes | no | 3 |
| `Citation` | source | yes | yes | no | yes | no | 0 |
Expand Down Expand Up @@ -999,20 +999,20 @@ This generated snapshot is a local source-derived inventory. It does not assert
| `RetrievalStateBanner` | answer | yes | yes | inherited-global-root | yes | no | 1 |
| `SafeBoldText` | layout | yes | yes | inherited-global-root | yes | no | 8 |
| `SearchField` | controls | yes | yes | no | yes | no | 0 |
| `SegmentedControl` | controls | yes | yes | inherited-global-root | yes | no | 10 |
| `SegmentedControl` | controls | yes | yes | inherited-global-root | yes | no | 12 |
| `Select` | controls | yes | yes | inherited-global-root | yes | no | 2 |
| `Sheet` | layout | yes | yes | inherited-global-root | yes | no | 25 |
| `Skeleton` | feedback | yes | yes | inherited-global-root | yes | no | 6 |
| `SourceDesignationBadge` | source | yes | yes | inherited-global-root | yes | no | 1 |
| `SourceDesignationBadge` | source | yes | yes | inherited-global-root | yes | no | 2 |
| `SourceProvenance` | source | yes | yes | inherited-global-root | yes | no | 1 |
| `SourceStatusBadge` | source | yes | yes | inherited-global-root | yes | no | 1 |
| `SourceStatusBadge` | source | yes | yes | inherited-global-root | yes | no | 2 |
| `StageList` | feedback | yes | yes | no | yes | no | 0 |
| `StatusMark` | source | yes | yes | inherited-global-root | yes | no | 2 |
| `Tabs` | controls | yes | yes | no | yes | no | 0 |
| `Tabs` | controls | yes | yes | inherited-global-root | yes | no | 2 |
| `TextField` | controls | yes | yes | inherited-global-root | yes | no | 4 |
| `TextLink` | controls | yes | yes | no | yes | no | 0 |
| `ToastRegion` | feedback | yes | yes | no | yes | no | 0 |
| `ToggleSwitch` | controls | yes | yes | inherited-global-root | yes | no | 2 |
| `ToggleSwitch` | controls | yes | yes | inherited-global-root | yes | no | 3 |
| `Tooltip` | feedback | yes | yes | no | yes | no | 0 |
| `VerificationNotice` | answer | yes | yes | inherited-global-root | yes | no | 1 |

Expand Down
68 changes: 53 additions & 15 deletions docs/design-system/adoption-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -280,11 +280,13 @@
"directImportFiles": [
"src/components/AccessibleTable.tsx",
"src/components/clinical-dashboard/signed-image.tsx",
"src/components/ui/confirm-dialog.tsx"
"src/components/ui/confirm-dialog.tsx",
"src/components/ui/print-output.tsx"
],
"productImportFiles": [
"src/components/AccessibleTable.tsx",
"src/components/clinical-dashboard/signed-image.tsx"
"src/components/clinical-dashboard/signed-image.tsx",
"src/components/ui/print-output.tsx"
],
"designSync": {
"listedInSourceMap": true,
Expand Down Expand Up @@ -1405,6 +1407,8 @@
"src/components/in-page-nav/in-page-nav-header.tsx",
"src/components/services/services-navigator-page.tsx",
"src/components/specifiers/specifiers-home-page.tsx",
"src/components/therapy-compass/screens/compare-screen.tsx",
"src/components/therapy-compass/screens/sheets-screen.tsx",
"src/components/tools/tools-search-results-page.tsx"
],
"productImportFiles": [
Expand All @@ -1417,6 +1421,8 @@
"src/components/in-page-nav/in-page-nav-header.tsx",
"src/components/services/services-navigator-page.tsx",
"src/components/specifiers/specifiers-home-page.tsx",
"src/components/therapy-compass/screens/compare-screen.tsx",
"src/components/therapy-compass/screens/sheets-screen.tsx",
"src/components/tools/tools-search-results-page.tsx"
],
"designSync": {
Expand All @@ -1429,6 +1435,7 @@
"tests/design-sync-visual-exports.test.ts",
"tests/factsheets-search-page.dom.test.tsx",
"tests/search-results-header-band.dom.test.tsx",
"tests/therapy-compass-responsive-contract.test.ts",
"tests/ui-v2-components.dom.test.tsx"
],
"baseline": {
Expand Down Expand Up @@ -1562,12 +1569,14 @@
"tests/image-lightbox-geometry.test.ts",
"tests/in-page-nav-route-sections.dom.test.tsx",
"tests/mobile-sheet-safe-area-contract.test.ts",
"tests/mode-nav-contract.test.ts",
"tests/mode-nav.dom.test.tsx",
"tests/rag-answer-fallback.test.ts",
"tests/settings-dialog-actions.dom.test.tsx",
"tests/sheet-focus-stress.dom.test.tsx",
"tests/sheet-focus.dom.test.tsx",
"tests/sheet.dom.test.tsx",
"tests/therapy-global-convergence-contract.test.ts",
"tests/ui-accessibility.spec.ts",
"tests/ui-overlay-css-contract.test.ts",
"tests/ui-phone-scroll-page-owned.spec.ts",
Expand Down Expand Up @@ -1635,8 +1644,14 @@
"source": "src/components/ui-primitives.tsx",
"sourceExported": true,
"entryExported": true,
"directImportFiles": ["src/components/clinical-dashboard/document-admin.tsx"],
"productImportFiles": ["src/components/clinical-dashboard/document-admin.tsx"],
"directImportFiles": [
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
],
"productImportFiles": [
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
Expand Down Expand Up @@ -1691,8 +1706,14 @@
"source": "src/components/ui-primitives.tsx",
"sourceExported": true,
"entryExported": true,
"directImportFiles": ["src/components/clinical-dashboard/document-admin.tsx"],
"productImportFiles": ["src/components/clinical-dashboard/document-admin.tsx"],
"directImportFiles": [
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
],
"productImportFiles": [
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
Expand Down Expand Up @@ -1779,15 +1800,26 @@
"source": "src/components/ui/tabs.tsx",
"sourceExported": true,
"entryExported": true,
"directImportFiles": [],
"productImportFiles": [],
"directImportFiles": [
"src/components/therapy-compass/screens/brief-screen.tsx",
"src/components/therapy-compass/screens/compare-screen.tsx"
],
"productImportFiles": [
"src/components/therapy-compass/screens/brief-screen.tsx",
"src/components/therapy-compass/screens/compare-screen.tsx"
],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
"preview": ".design-sync/previews/Tabs.tsx",
"previewValid": true
},
"testFiles": ["tests/design-sync-visual-exports.test.ts", "tests/ui-v2-components.dom.test.tsx"],
"testFiles": [
"tests/design-sync-visual-exports.test.ts",
"tests/therapy-compass-responsive-contract.test.ts",
"tests/therapy-tabs.dom.test.tsx",
"tests/ui-v2-components.dom.test.tsx"
],
"baseline": {
"targetLayer": "v2",
"liveLayer": "v2",
Expand All @@ -1796,8 +1828,8 @@
},
"built": true,
"locallyRegistered": true,
"v2ShellMounted": false,
"v2MountMode": "none",
"v2ShellMounted": true,
"v2MountMode": "inherited-global-root",
"proofDeclared": true,
"baselineCommitted": false
},
Expand Down Expand Up @@ -1903,19 +1935,25 @@
"entryExported": true,
"directImportFiles": [
"src/components/clinical-dashboard/patient-profile-panel.tsx",
"src/components/forms/forms-search-results-page.tsx"
"src/components/forms/forms-search-results-page.tsx",
"src/components/therapy-compass/screens/sheets-screen.tsx"
],
"productImportFiles": [
"src/components/clinical-dashboard/patient-profile-panel.tsx",
"src/components/forms/forms-search-results-page.tsx"
"src/components/forms/forms-search-results-page.tsx",
"src/components/therapy-compass/screens/sheets-screen.tsx"
],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
"preview": ".design-sync/previews/ToggleSwitch.tsx",
"previewValid": true
},
"testFiles": ["tests/design-sync-visual-exports.test.ts", "tests/ui-primitives.dom.test.tsx"],
"testFiles": [
"tests/design-sync-visual-exports.test.ts",
"tests/therapy-compass-responsive-contract.test.ts",
"tests/ui-primitives.dom.test.tsx"
],
"baseline": {
"targetLayer": "v2",
"liveLayer": "v2",
Expand Down Expand Up @@ -3400,7 +3438,7 @@
"summary": {
"registeredComponentCount": 54,
"previewCount": 54,
"productImportedComponentCount": 32,
"productImportedComponentCount": 33,
"rootCount": 59,
"productionRouteCount": 51,
"nextUiEntryCount": 103
Expand Down
2 changes: 1 addition & 1 deletion docs/site-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ This file is generated by `npm run docs:update` (or `npm run sitemap:update` dir
- `/medications` - Medication mode. Search kind: `documents`. Query example: `/?mode=prescribing&q=acamprosate+renal+dose&focus=1&run=1`.
- `/tools` - Tools mode. Search kind: `tools`. Query example: `/tools?q=medications&focus=1&run=1`.
- `/calculators` - Calculators mode. Search kind: `calculators`. Query example: `/calculators?q=PHQ-9&focus=1&run=1`.
- `/therapy-compass` - Therapy mode. Search kind: `tools`. Query example: `/therapy-compass?q=behavioural+activation&focus=1&run=1`.
- `/therapy-compass` - Therapy mode. Search kind: `therapies`. Query example: `/therapy-compass/search?q=behavioural+activation&focus=1&run=1`.
- `/factsheets` - Factsheets mode. Search kind: `tools`. Query example: `/factsheets/search?q=sertraline&focus=1&run=1`.

## Mode page index
Expand Down
Loading
Loading