Alexandre Brandizzi
873e3e32de
Merge branch 'dev' into feat/ab/sh-326-team-member
2026-09-17 15:16:18 -03:00
Alexandre Brandizzi
5b6991c93a
Merge branch 'dev' into feat/ab/sh-326-team-member
2026-09-17 15:10:19 -03:00
Alexandre Brandizzi
bf916019f9
Merge branch 'dev' into fix/ab/sh-321-wizard-vendor-notes
2026-09-17 15:02:13 -03:00
Alexandre Brandizzi
318859fb1b
Merge branch 'dev' into fix/ab/sh-321-wizard-vendor-notes
2026-09-17 14:48:19 -03:00
Alexandre Brandizzi
2d5e7cdd42
Merge branch 'dev' into fix/ab/frontend-test-stability
2026-09-17 14:48:13 -03:00
Codex Review Integration
827d52add7
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-326-team-member
2026-09-17 14:36:45 -03:00
Alexandre Brandizzi
b48d1a24be
Merge branch 'dev' into fix/ab/sh-321-wizard-vendor-notes
2026-09-17 14:34:36 -03:00
Alexandre Brandizzi
99481c49e9
Merge branch 'dev' into feat/ab/sh-207-uplift-queue-frontend
2026-09-17 14:34:27 -03:00
Alexandre Brandizzi
6c88df6c5f
Merge branch 'dev' into fix/ab/frontend-test-stability
2026-09-17 14:34:24 -03:00
Alexandre Brandizzi
e5df5b46c0
Merge branch 'dev' into fix/ab/sh-321-wizard-vendor-notes
2026-09-17 14:26:33 -03:00
Alexandre Brandizzi
2f659bb6cd
Merge branch 'dev' into feat/ab/sh-326-team-member
2026-09-17 14:26:24 -03:00
Alexandre Brandizzi
1a13787ecb
Merge branch 'dev' into feat/ab/sh-207-uplift-queue-frontend
2026-09-17 14:26:21 -03:00
Alexandre Brandizzi
a81fd14d7d
Merge branch 'dev' into feat/ab/sh-325-add-team-member
2026-09-17 14:20:16 -03:00
Alexandre Brandizzi
3550b64ba3
Merge branch 'dev' into fix/ab/frontend-test-stability
2026-09-17 14:20:12 -03:00
Alexandre Brandizzi
0055f5c3b9
Merge branch 'dev' into fix/ab/frontend-test-stability
2026-09-17 14:04:21 -03:00
Alexandre Brandizzi
8d2adb4472
Merge branch 'dev' into fix/ab/sh-375-edit-error-copy
2026-09-17 14:04:19 -03:00
Codex Review Integration
8bc6c5e687
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-326-team-member
...
# Conflicts:
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-error.png
2026-09-17 14:00:03 -03:00
Codex Review Integration
a65f282b51
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-325-add-team-member
2026-09-17 13:47:06 -03:00
Alexandre Brandizzi
d6518bc065
Merge branch 'dev' into feat/ab/sh-324-team-members-list
2026-09-17 13:28:10 -03:00
Codex Review Integration
dee81b0a44
Merge remote-tracking branch 'origin/dev' into fix/ab/sh-321-wizard-vendor-notes
...
# Conflicts:
# src/app/(protected)/workorders/_components/wizard/use-new-wo-wizard-controller.ts
2026-09-17 13:20:31 -03:00
Alexandre Brandizzi
c991c9e89f
Merge branch 'dev' into feat/ab/sh-187-service-picker
2026-09-17 13:02:18 -03:00
Alexandre Brandizzi
8427182209
Merge branch 'dev' into feat/ab/sh-187-service-picker
2026-09-17 12:58:17 -03:00
Alexandre Brandizzi
a9247a1997
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-17 12:50:18 -03:00
Codex Review Integration
b551421115
fix(work-orders): show duplicate-WO copy for edit conflicts (SH-375)
...
A duplicate work order number edit returns 422 DuplicateWoNumber from the
board PATCH endpoint, which mapped to the generic save-failed copy. Add the
code to the known validation copy map so edits reuse the same duplicate-WO
product text as create, and share the message constant across both paths.
2026-09-17 06:15:23 -03:00
Codex Review Integration
5c093e8c26
Merge remote-tracking branch 'origin/dev' into fix/ab/sh-375-edit-error-copy
2026-09-17 05:59:25 -03:00
Codex Review Integration
8bc8ff30b6
fix(uplifts): gate Approve and Reject on the backend tier permission (SH-207)
...
Wire the backend's GET uplifts/can-approve tier decision into the
pending row and detail modal actions. Approve/Reject now stay disabled
with the plain 'Requires Tier N role' tooltip unless the backend says
the current user may decide at that tier, so roles the backend refuses
(Dispatcher) never get a clickable action or a refusal toast.
2026-09-17 02:33:29 -03:00
Codex Review Integration
824001dc5e
fix(work-orders): make service picker search placeholder type-neutral
2026-09-17 01:40:58 -03:00
Codex Review Integration
c0f7bb26eb
fix(team-members): keep legacy roles and colors editable in the detail drawer
...
Members created before the SH-326 model can carry data the current
backend contract rejects (PUT team-members accepts only the
Dispatcher/Scheduler/Admin roles and the ten palette colors), which made
them impossible to edit.
- Legacy roles (e.g. Manager) now show as "<role> (legacy)" in the edit
form with helper copy asking to choose Dispatcher, Scheduler, or Admin;
save stays blocked until one is chosen and the legacy value is never
sent. View mode marks the stored role as legacy too.
- Stored colors outside the current palette are canonicalized when they
only differ by casing; otherwise the nearest palette color (RGB
distance, first as fallback) is preselected with a notice naming the
replaced value, so saving never fails on an untouched legacy color.
- Role/color options move to team-member-form-options.ts with unit tests
for canonicalization, nearest-color matching, and replacement notices.
2026-09-17 01:06:03 -03:00
Codex Review Integration
7cef338e34
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-324-team-members-list
...
# Conflicts:
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-add.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-detail.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-edit.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-empty.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-error.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-filter.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-inactive.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-list.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-mobile-navigation.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-detail.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-empty.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-error.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-filters.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-list.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-new.png
2026-09-17 00:49:09 -03:00
Codex Review Integration
dd1b029124
style(uplifts): apply prettier to the uplift detail modal
2026-09-17 00:18:32 -03:00
Codex Review Integration
4bffdac175
fix(uplifts): restrict revoke to admins and quiet permission failures (SH-207)
...
- Gate the Revoke action on the approved queue row and the detail modal
to admin users; non-admins get a disabled button with a plain
'Only admins can revoke uplifts' tooltip and the dialog cannot open.
- Stop nesting an h2 inside DialogTitle in the uplift detail modal
(hydration error) by rendering the title text as a non-heading.
- Handle work-order detail/uplift query 403s quietly in the detail
modal: sections fall back to 'Unavailable' and the queries suppress
the global error toast (QueryCache now honors suppressErrorToast).
- Extract UpliftDecisionDialogs and openUpliftEvidence from the page to
meet the changed-file maintainability gate (complexity 23 -> pass).
2026-09-17 00:13:54 -03:00
Codex Review Integration
16a2ab5511
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-325-add-team-member
2026-09-17 00:06:18 -03:00
Codex Review Integration
1207df6ed8
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-325-add-team-member
...
# Conflicts:
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-add.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-detail.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-edit.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-empty.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-error.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-filter.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-inactive.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-list.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-mobile-navigation.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-detail.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-empty.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-error.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-filters.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-list.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-new.png
2026-09-17 00:04:46 -03:00
Codex Review Integration
6ded458af0
Merge remote-tracking branch 'origin/dev' into feat/ab/sh-326-team-member
...
# Conflicts:
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-add.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-detail.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-edit.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-empty.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-error.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-filter.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-inactive.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-list.png
# e2e/__screenshots__/vendors/vendors.visual.spec.ts/vendor-mobile-navigation.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-detail.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-empty.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-error.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-filters.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-list.png
# e2e/__screenshots__/work-orders/work-orders.visual.spec.ts/wo-new.png
2026-09-16 23:59:24 -03:00
Alexandre Brandizzi
bc40c17285
Merge branch 'dev' into fix/ab/sh-359-wo-board-column-order
2026-09-16 23:44:07 -03:00
Codex Review Integration
633fcdc52c
fix(team-members): preserve detail and load states (SH-326)
2026-09-16 23:28:41 -03:00
Codex Review Integration
0ac8c4473e
fix(team-members): harden team member flows (SH-325)
2026-09-16 23:14:51 -03:00
Codex Review Integration
ae255f59a6
fix(team-members): destructure load error prop (SH-324)
2026-09-16 22:58:46 -03:00
Codex Review Integration
6a2b9eb80c
test(uplifts): cover detail evidence callback (SH-209)
2026-09-16 22:50:40 -03:00
Codex Review Integration
5aed31392c
fix(uplifts): complete approval queue review fixes (SH-208)
2026-09-16 22:44:37 -03:00
Codex Review Integration
6f8b502116
fix(uplifts): align approval queue contracts (SH-207)
2026-09-16 22:40:48 -03:00
Codex Review Integration
1df3e5d292
fix(team-members): render load failures distinctly (SH-324)
2026-09-16 22:38:53 -03:00
Codex Review Integration
d1b36ed1c0
style(work-orders): apply prettier to day-view hook
2026-09-16 22:21:17 -03:00
Codex Review Integration
58fc323ea2
fix(work-orders): use local calendar day for Past Due and stabilize slow suites
...
computeIsPastDue and the day view's todayKey derived today from
toISOString() (UTC). West of UTC that rolls over hours early, so work
scheduled for today showed as Past Due every evening. Both now use the
local todayIso() helper the board already uses; regression tests pin
23:30 and 00:30 in America/Sao_Paulo with fake Date.
Test stability:
- adv-search page sync: scope pagination queries with within() instead of
scanning ~330 buttons / 3000 nodes on every waitFor poll
- pm-schedules-list-actions: static import of the edit page so module
transform does not count against the 5s test budget
- vendor create modal / detail drawer: userEvent.setup({ delay: null });
15s describe budget for full MUI dialog renders under parallel load
2026-09-16 22:06:33 -03:00
Alexandre Brandizzi
e6f5199da9
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-16 21:56:20 -03:00
Codex Review Integration
2d54ff12f8
fix(work-orders): show fixed copy for edit conflict toasts (SH-375)
2026-09-16 21:22:07 -03:00
Codex Review Integration
afc98a9daa
fix(work-orders): normalize partial-save and generic edit error toasts (SH-375)
2026-09-16 21:20:16 -03:00
Codex Review Integration
fc25d8f7c7
fix(work-orders): show generic copy for unknown edit errors (SH-375)
2026-09-16 21:14:25 -03:00
Codex Review Integration
0d95a32071
feat(uplifts): refresh work-order views after decisions (SH-214)
2026-09-16 21:12:22 -03:00
Codex Review Integration
111b813e9e
fix(uplifts): show scheduled work order date (SH-209)
2026-09-16 21:02:21 -03:00