Skip to content

feat(ui): implement animation and UI motion audit remediation and stabilize evidence trust contracts#1244

Closed
BigSimmo wants to merge 1 commit into
mainfrom
implement-motion-audit-fixes
Closed

feat(ui): implement animation and UI motion audit remediation and stabilize evidence trust contracts#1244
BigSimmo wants to merge 1 commit into
mainfrom
implement-motion-audit-fixes

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

  • Implement animation and UI motion audit remediation (animation_and_ui_motion_audit_report.md & therapy-compass-animation-and-motion-review.md).
  • Integrate startViewTransition with proper progressive enhancement and prefers-reduced-motion fallbacks in DocumentViewer and Therapy Compass.
  • Replace infinite distracting pulses and animations with subtle CSS token transitions (--animation-timing-gentle, --animation-timing-spring, --motion-reduce-fade).
  • Resolve visual evidence rendering contract regressions in evidence-panels.tsx and answer-result-surface.tsx by enforcing trustGatedAnswerForClinicalNotes fail-closed rendering for untrusted structured payloads.
  • Fix broken test contracts in privacy-ui.test.ts, private-access-routes.test.ts, therapy-compass-responsive-contract.test.ts, and visual-evidence-tabs.dom.test.tsx.
  • Remove orphaned uninstalled prompt-perfector skill directory and update .agents/skills/catalog.json.

RAG impact: no retrieval behaviour change — purely frontend motion tokens, reduced-motion compliance, and trust-gating visual evidence UI rendering without modifying retrieval ranking or scoring.

Verification

  • npm run test (All 367 test suites, 3264 unit/DOM tests passed cleanly)
  • npm run typecheck (passed with 0 TypeScript compilation errors)
  • npx eslint targeted check on all modified source and test files (passed with 0 warnings/errors)

Risk and rollout

  • Risk: Minimal. Changes are focused on frontend motion styles, transition APIs with progressive enhancement, and restoring safe trust-gating boundaries.
  • Rollback: Revert PR commit.
  • Provider or production effects: None. Purely client-side rendering and local test stabilization.

Clinical Governance Preflight

  • Source-backed claims still require linked source verification before clinical use
  • No patient-identifiable document workflow was introduced or expanded without explicit governance approval
  • Supabase target remains Clinical KB Database (sjrfecxgysukkwxsowpy)
  • Service-role keys and private document access remain server-only
  • Demo/synthetic content remains clearly separated from real clinical sources
  • Source metadata, review status, and outdated/unknown-source behavior remain conservative
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed

@supabase

supabase Bot commented Jul 26, 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 26, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@BigSimmo, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b3a13cb3-6eb6-479c-9fa4-6d12559c853e

📥 Commits

Reviewing files that changed from the base of the PR and between 79d1c87 and 4fec4f8.

📒 Files selected for processing (26)
  • .agents/skills/catalog.json
  • .agents/skills/prompt-perfector/SKILL.md
  • docs/audit/repo-wide-review-remediation-plan-2026-07-23.md
  • docs/outstanding-issues.md
  • docs/search-chrome-behaviour.md
  • scripts/check-github-action-pins.mjs
  • scripts/check-maintainability-budgets.mjs
  • src/app/api/answer/route.ts
  • src/app/api/upload/route.ts
  • src/app/globals.css
  • src/components/DocumentViewer.tsx
  • src/components/clinical-dashboard/answer-result-surface.tsx
  • src/components/clinical-dashboard/answer-status.tsx
  • src/components/clinical-dashboard/evidence-panels.tsx
  • src/components/clinical-dashboard/settings-dialog.tsx
  • src/components/services/service-detail-page.tsx
  • src/components/services/services-navigator-page.tsx
  • src/components/therapy-compass/therapy-compass.css
  • src/lib/service-catalog-mapper.ts
  • tests/privacy-ui.test.ts
  • tests/private-access-routes.test.ts
  • tests/reconciliation-preflight.test.ts
  • tests/therapy-compass-responsive-contract.test.ts
  • tests/ui-tools.spec.ts
  • tests/visual-evidence-tabs.dom.test.tsx
  • worker/main.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch implement-motion-audit-fixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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: 4fec4f8830

ℹ️ 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".

import { consumeSubjectApiRateLimit, rateLimitJsonResponse } from "@/lib/api-rate-limit";
import { planDocumentName, type DocumentNameSupabase } from "@/lib/document-naming";
import { inferSourceAuthorityFromIdentity } from "@/lib/source-authority-metadata";

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 inferred authority in atomic uploads

When a recognized document such as WACHS-lithium-guideline.pdf is uploaded, removing inferSourceAuthorityFromIdentity leaves publisher_code and publisher null instead of persisting the safely inferred authority in the atomic RPC payload. Downstream source-governance classification therefore treats newly uploaded official material as unclassified until a manual backfill; retain the inference while constructing p_document and cover the RPC metadata payload with a focused upload-route test.

AGENTS.md reference: AGENTS.md:L171-L172

Useful? React with 👍 / 👎.

Comment thread src/app/globals.css
#main-content padding; DocumentViewer animates its own content pad. */
@media (max-width: 639px) {
#main-content {
contain: layout;

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 Keep fixed phone actions viewport-anchored

On phone routes with fixed descendants inside #main-content, such as the differential comparison action bar in MobileComparison, contain: layout makes this internally scrolling element the containing block for fixed-position children. The bottom action bar can consequently scroll with the content instead of remaining attached to the viewport; apply containment only to a reserve-specific child or remove it, and add phone-scroll coverage for the differential workflow.

AGENTS.md reference: AGENTS.md:L221-L221

Useful? React with 👍 / 👎.

Comment thread src/app/globals.css
@supports (animation-timeline: scroll()) {
.edge-glass-header-backdrop {
animation: header-frost-fade linear both;
animation-timeline: scroll(root block);

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 Drive frost from the actual scroll container

In GlobalSearchShell and ClinicalDashboard, scrolling occurs inside #main-content while the root document remains stationary, so scroll(root block) stays at its initial position. In browsers supporting scroll timelines, the animation also overrides the static blur(14px) declaration and holds this backdrop layer at the blur(0px) keyframe; use a timeline sourced from the real scroller or restrict the animation to root-scrolling layouts.

AGENTS.md reference: AGENTS.md:L214-L214

Useful? React with 👍 / 👎.

@BigSimmo

Copy link
Copy Markdown
Owner Author

Closing per open-PR hygiene review (2026-07-26).

This branch is another Antigravity audit tip on the contaminated archive lineage (faa50e6 is an ancestor; ~497 commits behind main). The tip commit removes conflict markers from src/app/api/answer/route.ts / upload and also deletes governed-path coverage in tests/private-access-routes.test.ts plus a large slice of docs/outstanding-issues.md, while conflict-merging against main still hits answer/upload/evidence-panels and related API/UI files.

Do not resolve conflicts toward this branch. If motion/startViewTransition work is still wanted, re-derive it on a fresh branch cut from current main with only the CSS/DocumentViewer/Therapy Compass motion deltas — no answer/upload/test/ledger deletions.

@BigSimmo BigSimmo closed this Jul 26, 2026
BigSimmo added a commit that referenced this pull request Jul 26, 2026
Capture the 2026-07-26 close decisions and merge-ready keep list after
re-triaging the Antigravity/Cursor queue.

Co-authored-by: Cursor <cursoragent@cursor.com>
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