Skip to content

feat(patient): appointment detail page with an atomic reschedule flow - #141

Open
believetimothy wants to merge 5 commits into
DocForum:mainfrom
believetimothy:feat/appointment-detail-page-with-an-atomic-reschedule
Open

believetimothy wants to merge 5 commits into
DocForum:mainfrom
believetimothy:feat/appointment-detail-page-with-an-atomic-reschedule

Conversation

@believetimothy

Copy link
Copy Markdown

What changed

Which ROADMAP.md item does this close/progress?

(required — see AGENTS.md doc-update rules)

Docs updated in this PR (check all that apply)

  • ROADMAP.md
  • ARCHITECTURE.md
  • ARCHITECTURE_ESSENTIALS.md
  • PRD.md
  • N/A for this change

Closes #13
Closes #14
Closes #15
Closes #16

@drips-wave

drips-wave Bot commented Oct 17, 2026

Copy link
Copy Markdown

@believetimothy Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@afeezorobsco-cyber

Copy link
Copy Markdown
Contributor

@believetimothy fix CI

@afeezorobsco-cyber

Copy link
Copy Markdown
Contributor

@believetimothy

CI is red on typecheck:

  • App.tsx: AppointmentDetailPage is imported but never used. The route was never added.
  • Test fixtures don't match the Appointment type: they're missing patientName, startsAt and endsAt (RescheduleDialog.test.tsx, useReschedule.test.tsx, cutoff.test.ts).
  • QueuePanel.test.tsx: "checked_in" isn't a valid AppointmentStatus.

The Appointment model in src/types/models.ts changed on main. Please rebase onto the latest main, update the fixtures, and run npm run typecheck locally.

@afeezorobsco-cyber

Copy link
Copy Markdown
Contributor

@believetimothy Thanks for the PR. It can't be merged yet. To unblock it:

CI is failing. Here's what broke:

Frontend (typecheck + test + build):

src/App.tsx(14,10): error TS6133: 'AppointmentDetailPage' is declared but its value is never read.
src/features/appointments/components/RescheduleDialog.test.tsx(38,3): error TS2739: Type '{ id: string; patientProfileId: string; doctorProfileId: string; availabilitySlotId: string; status: "scheduled"; origin:
src/features/appointments/cutoff.test.ts(9,3): error TS2322: Type '{ intake?: IntakeSummary | null; patientName?: string | undefined; startsAt?: string | undefined; endsAt?: string | undefined; reason?: string |
src/features/appointments/hooks/useReschedule.test.tsx(13,7): error TS2739: Type '{ id: string; patientProfileId: string; doctorProfileId: string; availabilitySlotId: string; status: "scheduled"; origin: "direct

Please fix these errors and run the same steps locally before pushing (npm run typecheck && npm test && npm run build, or cargo test for contracts).

Merge conflicts: this branch conflicts with main. Please rebase onto the latest main (git fetch upstream && git rebase upstream/main), resolve the conflicts (often ROADMAP.md, ARCHITECTURE*.md or prisma/schema.prisma), and force-push.

Push to this same branch and CI will re-run. Once it's green and conflict-free, it'll be reviewed for merge.

@github-actions github-actions Bot added the needs-rebase Has merge conflicts with main; the author needs to rebase label Oct 20, 2026
believetimothy and others added 2 commits October 26, 2026 00:46
…reschedule

Resolves conflicts in ROADMAP.md, src/test/render.tsx,
src/services/appointments-service.ts, src/features/appointments/hooks/useAppointments.ts
and the appointment detail page (tsx/module.css/test): the merged page keeps
issue DocForum#14's reschedule flow, intake summary and clinician read alongside
main's live visit-day queue panel, and the appointment list now reads under
main's shared `APPOINTMENTS_KEY` while keeping issue DocForum#14's cache policy.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
…nvalidation at the merged list key

CI failed on the pre-merge branch with duplicate `AppointmentStatus` /
`Appointment` declarations (this branch's issue DocForum#14 types collided with the
ones main landed) plus fixtures typed against the old shape, and
`AppointmentDetailPage` was imported but unrouted after the earlier merge.

- dedupe `src/types/models.ts` onto main's `AppointmentStatus` and adopt
  `PatientAppointment` (with this branch's optional `intake`) across the
  reschedule feature and its tests
- route `/appointments/:id` in `src/App.tsx` again
- invalidate `APPOINTMENTS_KEY` on a successful reschedule: main moved the
  list query onto that key, so `appointmentsKeys.list` alone left the care
  hub's "Coming up" card showing the old time
- restore `placeholderData: keepPreviousData` on `useMyAppointments`
  (never zero appointments mid-reschedule) and make the dashboard's
  "tomorrow" fixture day-agnostic

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
@github-actions

Copy link
Copy Markdown

@believetimothy This PR now has merge conflicts with main, most likely because #157 (feat(platform): complete W7 API client, errors, PWA, and i18n) was just merged, so it can't be merged until it's rebased:

git fetch upstream            # upstream = https://github.com/DocForum/docforum-web.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-lease

The usual culprits are shared docs like ROADMAP.md and ARCHITECTURE*.md. If the conflict is in the ROADMAP.md changelog, move your entry into a new file under changelog.d/ (see changelog.d/README.md) rather than resolving it in place, so it can't conflict again. CI re-runs when you push, and the needs-rebase label is removed automatically once the conflicts are resolved.

Automated message. It won't repeat unless the PR conflicts again after your next push.

@github-actions github-actions Bot removed the needs-rebase Has merge conflicts with main; the author needs to rebase label Oct 26, 2026
@afeezorobsco-cyber

Copy link
Copy Markdown
Contributor

@believetimothy CI is failing at npm run typecheck with a syntax error in the test helper:

src/test/render.tsx(14,10): error TS1005: ':' expected.
src/test/render.tsx(14,51): error TS1005: ',' expected.
src/test/render.tsx(14,100): error TS1011: An element access expression should take an argument.
src/test/render.tsx(17,5): error TS1005: ',' expected.

Line 14 of src/test/render.tsx looks like a half-resolved merge (two versions of the wrapper merged into one line). Please fix it, run npm run typecheck && npm test, and push.

@github-actions github-actions Bot added the needs-rebase Has merge conflicts with main; the author needs to rebase label Oct 27, 2026
@github-actions

Copy link
Copy Markdown

@believetimothy This PR now has merge conflicts with main, most likely because #210 (chore(changelog): fold changelog.d fragments into ROADMAP.md) was just merged, so it can't be merged until it's rebased:

git fetch upstream            # upstream = https://github.com/DocForum/docforum-web.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-lease

The usual culprits are shared docs like ROADMAP.md and ARCHITECTURE*.md. If the conflict is in the ROADMAP.md changelog, move your entry into a new file under changelog.d/ (see changelog.d/README.md) rather than resolving it in place, so it can't conflict again. CI re-runs when you push, and the needs-rebase label is removed automatically once the conflicts are resolved.

Automated message. It won't repeat unless the PR conflicts again after your next push.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-rebase Has merge conflicts with main; the author needs to rebase

Projects

None yet

2 participants