Skip to content

fix: resolve design and UX review findings#471

Merged
BigSimmo merged 16 commits into
mainfrom
codex/design-ux-review-integration
Jul 10, 2026
Merged

fix: resolve design and UX review findings#471
BigSimmo merged 16 commits into
mainfrom
codex/design-ux-review-integration

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

  • Add a strict type-scale guard and wire it into the cheap verification gate.
  • Preserve search intent across application, medication, document, and mode navigation.
  • Standardize touch targets, composer spacing, typography, and shared surface shadows.
  • Keep the architecture review's lightweight evidence-panel split while applying the answer-view touch-target fix in its new owner.
  • Merge cleanly over the quality review and the latest Tools layout fix.

Why

The open Codex design-system and UX review tasks confirmed five issue groups: an undefined shadow token, lost search context during navigation, undersized interactive targets, excess composer whitespace, and arbitrary type-scale drift.

Areas touched

Design tokens and global CSS, dashboard/search navigation, mode/document/medication routes, shared UI primitives, dialogs and headers, type-scale guard/tests, and the branch review ledger.

Verification

  • npm run check:type-scale — passed.
  • Focused Vitest before integration — 3 files, 19 tests passed.
  • Combined design + quality Vitest after integration — 8 files, 42 tests passed.
  • verify:cheap stages passed through runtime, action pins, sitemap, type-scale, and lint.
  • Focused Prettier and git diff --check — passed.

Checks not run

Local typecheck stopped because this older worktree's dependency install predates the @next/bundle-analyzer package now imported by current main. No live provider/API check was run. Hosted CI's clean install is the authoritative typecheck/build and UI verification.

Risk and governance

This changes navigation context and responsive UI behavior but does not alter database schema, clinical generation, private document authorization, credentials, or production data. Query context is encoded locally in existing route parameters, and regression tests cover the new navigation helpers.

@supabase

supabase Bot commented Jul 10, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The changes add validated URL persistence for clinical query context, propagate that context into document and differentials search requests, update responsive design tokens and component styling, and extend verification and regression tests.

Changes

Search Context and UI Updates

Layer / File(s) Summary
Navigation context serialization
src/lib/search-navigation-context.ts, tests/search-navigation-context.test.ts
Adds validated encoding and decoding for query modes and scope filters, including normalization, allowlists, UUID checks, signatures, and round-trip tests.
URL state routing and dashboard synchronization
src/lib/app-modes.ts, src/lib/document-flow-routes.ts, src/components/ClinicalDashboard.tsx, src/components/clinical-dashboard/global-mockup-search-shell.tsx, tests/app-modes.test.ts, tests/clinical-dashboard-merge-artifacts.test.ts, tests/ui-smoke.spec.ts
Preserves query mode and scope filters across mode changes, searches, uploads, URL synchronization, reruns, and navigation helpers.
Search request integrations
src/components/master-document-flow-mockups.tsx, src/components/differentials/differentials-home-page.tsx, src/lib/differentials-search-request.ts, tests/document-flow-routes.test.ts, tests/differentials-search-request.test.ts
Builds document and differentials search request bodies from URL context and updates searches when routed parameters change.
Design tokens and responsive styling
src/app/globals.css, src/components/**/*.tsx, scripts/check-type-scale.mjs, package.json, docs/branch-review-ledger.md
Adds typography and shadow tokens, updates tap-target and responsive typography classes, and includes strict type-scale checks in verification.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant GlobalMockupSearchShell
  participant ClinicalDashboard
  participant MasterDocumentSearch
  participant DocumentSearchAPI
  User->>GlobalMockupSearchShell: Select mode, query, or scope filters
  GlobalMockupSearchShell->>ClinicalDashboard: Navigate with serialized context
  ClinicalDashboard->>ClinicalDashboard: Synchronize URL state
  MasterDocumentSearch->>MasterDocumentSearch: Build request body from URL context
  MasterDocumentSearch->>DocumentSearchAPI: POST document search request
Loading

Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
Verification Claims ❌ Error The PR description includes vague claims like “Focused Vitest before integration” and “verify:cheap stages passed” instead of exact command/check + result. Rewrite each verification bullet as an exact command/check plus result, e.g. “Ran npm run check:type-scale: passed” or “Not run: stale deps blocked typecheck”.
Docstring Coverage ⚠️ Warning Docstring coverage is 3.85% which is insufficient. The required threshold is 70.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (9 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the PR’s main scope: resolving design and UX review findings.
Description check ✅ Passed It includes the required summary, verification, and risk sections with enough detail, even though it doesn’t use the exact checklist format.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Generated And Sensitive Files ✅ Passed Only docs/src/tests changed; no real secrets, logs, caches, build outputs, browser artifacts, or local dumps. Tracked .env.example/.npmrc are safe templates/config.
Risky Git Or Deployment Actions ✅ Passed No touched file recommends force-push, reset --hard, destructive clean, branch deletion, or unchecked deploys; the added test is unrelated.
Supabase Project And Schema Safety ✅ Passed Changed files are docs/UI/tests/package scripts only; no supabase/, migrations, env examples, or RLS/policy code changed.
Runtime And Package Manager Integrity ✅ Passed Package.json still pins npm@11.17.0/Node 24, .npmrc keeps engine-strict=true, and no lockfile or package-manager bypass flags were added.
Api Route Failure Handling ✅ Passed Touched search paths already handle 401/non-ok/network/abort/timeouts, and new URL-context helpers sanitize invalid params; no new unsafe API/provider integration found.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/design-ux-review-integration
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch codex/design-ux-review-integration

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd23d67d53

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/clinical-dashboard/global-mockup-search-shell.tsx

Copy link
Copy Markdown
Owner Author

Resolved the phone mode-home composer overlap in 42e77a222: standalone mode homes now reserve the full fixed bottom-dock height on phones while retaining inline spacing from sm upward. Added a focused regression guard; tests/clinical-dashboard-merge-artifacts.test.ts passes (4/4), type-scale passes, and the branch is updated with current main.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 10, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ea6c0d759e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/lib/document-flow-routes.ts

Copy link
Copy Markdown
Owner Author

Fixed the scoped document-search contract in b17061615. MasterDocumentSearch now derives its POST body from the validated route context and forwards both filters and queryMode to /api/search. The focused test proves medication, locality, current-source status, and monitoring intent are included; route/context Vitest passes (7/7) and focused ESLint passes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b170616156

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/ClinicalDashboard.tsx

Copy link
Copy Markdown
Owner Author

Fixed the routed-context stale-result path in 5426f0cdf and merged the latest main as 1f70e0459. Auto-run identity now includes mode, query, validated scope, and query intent; same-query routed context changes rerun with the URL context, while ordinary answer composer drafts remain suppressed. Focused Vitest passes (12/12 before sync, 8/8 after sync) and focused ESLint passes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f70e04593

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/ClinicalDashboard.tsx Outdated
Comment thread src/components/ClinicalDashboard.tsx Outdated
coderabbitai[bot]
coderabbitai Bot previously requested changes Jul 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
tests/search-navigation-context.test.ts (1)

29-47: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Add a regression case for the slice-before-filter ordering bug.

This test places the valid sourceStatuses entry ("current") before the invalid one, and well within the 4-item limit, so it doesn't exercise the ordering bug flagged in src/lib/search-navigation-context.ts (uniqueTrimmed slices before the allowed-value filter runs). Consider adding a case with more invalid entries than the limit, followed by a valid one, to lock in the fix.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/search-navigation-context.test.ts` around lines 29 - 47, Add a
regression test for readSearchNavigationContext covering more than four invalid
sourceStatuses values followed by a valid "current" value, and assert that the
valid status is retained. Ensure the case specifically verifies filtering
allowed values occurs before the uniqueTrimmed four-item limit.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/lib/search-navigation-context.ts`:
- Around line 98-119: Validation currently occurs after limit truncation,
allowing invalid values to consume the limit and hide valid entries. Update
uniqueTrimmed and the callers allowedValues, appendValues, and importBatchIds
handling so trimming, emptiness, length, allowed-value, and UUID checks happen
before applying slice(0, limit), while preserving deduplication and output
behavior.

---

Nitpick comments:
In `@tests/search-navigation-context.test.ts`:
- Around line 29-47: Add a regression test for readSearchNavigationContext
covering more than four invalid sourceStatuses values followed by a valid
"current" value, and assert that the valid status is retained. Ensure the case
specifically verifies filtering allowed values occurs before the uniqueTrimmed
four-item limit.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8fabed09-cc89-455b-b74f-b65c6a71a706

📥 Commits

Reviewing files that changed from the base of the PR and between 0e338b6 and b170616.

📒 Files selected for processing (24)
  • docs/branch-review-ledger.md
  • package.json
  • scripts/check-type-scale.mjs
  • src/app/globals.css
  • src/components/ClinicalDashboard.tsx
  • src/components/clinical-dashboard/account-setup-dialog.tsx
  • src/components/clinical-dashboard/clinical-output-helpers.tsx
  • src/components/clinical-dashboard/evidence-panels.tsx
  • src/components/clinical-dashboard/global-mockup-search-shell.tsx
  • src/components/clinical-dashboard/master-search-header.tsx
  • src/components/clinical-dashboard/medication-prescribing-workspace.tsx
  • src/components/clinical-dashboard/medication-record-page.tsx
  • src/components/clinical-dashboard/settings-dialog.tsx
  • src/components/master-document-flow-mockups.tsx
  • src/components/mode-home-template.tsx
  • src/components/source-overlay-redesign-mockups.tsx
  • src/components/ui-primitives.tsx
  • src/lib/app-modes.ts
  • src/lib/document-flow-routes.ts
  • src/lib/search-navigation-context.ts
  • tests/app-modes.test.ts
  • tests/clinical-dashboard-merge-artifacts.test.ts
  • tests/document-flow-routes.test.ts
  • tests/search-navigation-context.test.ts

Comment thread src/lib/search-navigation-context.ts Outdated

Copy link
Copy Markdown
Owner Author

Resolved the remaining routed-context review items in 4d9be5e1c and 64a8fb9f7: scoped legacy answer restores now rerun while unscoped restores remain deduplicated; query-mode URL rewrites use the routed override; constrained enum/UUID values are validated before limits so invalid tokens cannot hide later valid filters. Focused Vitest passes (13/13), focused ESLint passes, and git diff --check passes.

@BigSimmo
BigSimmo dismissed coderabbitai[bot]’s stale review July 10, 2026 21:56

All actionable findings from this review were fixed and their threads resolved. Commit 64a8fb9 validates constrained URL values before applying limits and adds the requested invalid-before-valid regression case; focused Vitest and ESLint pass. The review targeted older head b170616.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 64a8fb9f7b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/clinical-dashboard/global-mockup-search-shell.tsx

Copy link
Copy Markdown
Owner Author

Fixed standalone differentials scope propagation in 0d34f8c62. The page now builds /api/search requests from the validated routed context and preserves that context on subsequent differential searches. The focused request-body test proves monitoring intent, current-source status, and local-only scope are forwarded; focused Vitest passes (10/10) and focused ESLint passes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d34f8c628

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/ClinicalDashboard.tsx
coderabbitai[bot]
coderabbitai Bot previously requested changes Jul 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/differentials/differentials-home-page.tsx`:
- Around line 31-57: Prevent stale requests in runSearch from updating state
after a newer routed search starts. Track the latest request with an
incrementing identifier or AbortController, and before committing
documentMatches or loading state, verify the response belongs to the current
request; update the effect/callback cleanup as needed so older searches cannot
overwrite newer URL-context results.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fe72bffd-29a4-4770-8863-7babcdddb078

📥 Commits

Reviewing files that changed from the base of the PR and between 1f70e04 and 0d34f8c.

📒 Files selected for processing (8)
  • docs/branch-review-ledger.md
  • src/components/ClinicalDashboard.tsx
  • src/components/clinical-dashboard/master-search-header.tsx
  • src/components/differentials/differentials-home-page.tsx
  • src/lib/differentials-search-request.ts
  • src/lib/search-navigation-context.ts
  • tests/differentials-search-request.test.ts
  • tests/search-navigation-context.test.ts
✅ Files skipped from review due to trivial changes (2)
  • docs/branch-review-ledger.md
  • src/components/clinical-dashboard/master-search-header.tsx
🚧 Files skipped from review as they are similar to previous changes (3)
  • src/lib/search-navigation-context.ts
  • tests/search-navigation-context.test.ts
  • src/components/ClinicalDashboard.tsx

Comment thread src/components/differentials/differentials-home-page.tsx
@BigSimmo
BigSimmo dismissed coderabbitai[bot]’s stale review July 10, 2026 22:20

Obsolete after fixes 777b848 and 09f008d. Both actionable threads were resolved with focused regression coverage, and CodeRabbit re-reviewed current head 09f008d without opening a new thread.

coderabbitai[bot]
coderabbitai Bot previously requested changes Jul 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/ui-smoke.spec.ts`:
- Around line 1492-1506: Update the answer request tracking in the test around
mockDemoApi and onAnswerRequest to capture each request body, not only the
query. Preserve the existing query assertion, then add an assertion for the
second request verifying its filters.sourceStatuses value is exactly
["outdated"] after the scoped URL rerun.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e6b576ad-3550-4391-b435-7776e190b462

📥 Commits

Reviewing files that changed from the base of the PR and between 0d34f8c and 777b848.

📒 Files selected for processing (2)
  • src/components/ClinicalDashboard.tsx
  • tests/ui-smoke.spec.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/components/ClinicalDashboard.tsx

Comment thread tests/ui-smoke.spec.ts
@BigSimmo
BigSimmo dismissed coderabbitai[bot]’s stale review July 10, 2026 22:23

Obsolete after cc7581a strengthened the scoped-rerun regression and resolved its only thread. CodeRabbit re-reviewed current head cc7581a without opening a new thread.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
tests/ui-smoke.spec.ts (1)

1882-1918: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Assert the second /api/search request actually carries the routed sourceStatuses scope

The mock keys its response purely on requestCount ordinal (Line 1890), never inspecting the actual request body/params. The test proves stale-response ordering is handled correctly, but it can't catch a regression where the differentials search request fails to forward scope.sourceStatuses=outdated into the /api/search payload — two requests would still fire and render distinct mocked source counts regardless of what was actually requested. A reviewer already flagged the identical gap on a related test elsewhere in this file (scoped answer rerun not asserting filters.sourceStatuses in the request body).

🧪 Suggested addition to capture and assert the request body
     let requestCount = 0;
+    const requestBodies: unknown[] = [];
     await page.route(/\/api\/search$/, async (route) => {
       requestCount += 1;
       const currentRequest = requestCount;
+      requestBodies.push(route.request().postDataJSON());
       if (currentRequest === 1) await new Promise((resolve) => setTimeout(resolve, 500));
     await expect.poll(() => requestCount).toBe(2);
+    expect(requestBodies[1]).toMatchObject({ filters: { sourceStatuses: ["outdated"] } });
     const sourceStatus = page.getByRole("heading", { name: "Source status" }).locator("..");
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/ui-smoke.spec.ts` around lines 1882 - 1918, Update the test using the
`/api/search` route handler and test body assertions so the second request is
validated for the routed `sourceStatuses` scope. Capture or parse each request’s
payload, assert the second request includes `scope.sourceStatuses=outdated`
(matching the API’s actual payload shape), and retain the existing
stale-response ordering assertions; do not rely solely on requestCount to select
mock responses.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@tests/ui-smoke.spec.ts`:
- Around line 1882-1918: Update the test using the `/api/search` route handler
and test body assertions so the second request is validated for the routed
`sourceStatuses` scope. Capture or parse each request’s payload, assert the
second request includes `scope.sourceStatuses=outdated` (matching the API’s
actual payload shape), and retain the existing stale-response ordering
assertions; do not rely solely on requestCount to select mock responses.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ea653f2b-159f-459f-bfbb-1f589c460806

📥 Commits

Reviewing files that changed from the base of the PR and between 777b848 and 09f008d.

📒 Files selected for processing (2)
  • src/components/differentials/differentials-home-page.tsx
  • tests/ui-smoke.spec.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/components/differentials/differentials-home-page.tsx

@BigSimmo
BigSimmo merged commit b7d877b into main Jul 10, 2026
18 of 19 checks passed
@BigSimmo
BigSimmo deleted the codex/design-ux-review-integration branch July 10, 2026 22:26

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cc7581a680

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -67,7 +77,15 @@ export function DifferentialsHomePage({ query = "", autoRunSearch = false }: Dif
documentMatches={documentMatches}
desktopComposerSlotId={modeHomeDesktopComposerSlotId}
onRunSearch={(nextQuery) => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve routed filters for differential suggestions

When a standalone /differentials page has routed queryMode or scope.* filters, this only wraps the explicit onRunSearch path; DifferentialsHome also uses handleSuggestedSearch for the Recent work/library-match pills, and without an onSuggestedSearch prop it falls back to router.push(appModeHomeHref("differentials", { query, run: true, focus: true })), dropping the active filters before the next auto-run. A focused check would open /differentials?scope.sourceStatuses=current, click a suggested pill, and assert the resulting URL/API body still includes that scope.

Useful? React with 👍 / 👎.

Sign up for free to 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