Alexandre Brandizzi
3058a96edb
Merge branch 'dev' into fix/ab/sh-368-completion-uploads
2026-09-17 15:46:15 -03:00
Alexandre Brandizzi
3a6f101776
Merge branch 'dev' into fix/ab/sh-368-completion-uploads
2026-09-17 15:30:20 -03:00
Alexandre Brandizzi
d53507731e
Merge branch 'dev' into feat/ab/sh-326-team-member
2026-09-17 15:30:16 -03:00
Alexandre Brandizzi
b9c3b11a74
Merge branch 'dev' into fix/ab/sh-368-completion-uploads
2026-09-17 15:16:27 -03:00
Alexandre Brandizzi
6eacdc09f6
Merge branch 'dev' into feat/ab/sh-336-dashboard
2026-09-17 15:16:22 -03:00
Alexandre Brandizzi
873e3e32de
Merge branch 'dev' into feat/ab/sh-326-team-member
2026-09-17 15:16:18 -03:00
Alexandre Brandizzi
0876e9c3f0
Merge branch 'dev' into feat/ab/sh-336-dashboard
2026-09-17 15:10:22 -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
b149d3c275
Merge branch 'dev' into fix/ab/sh-368-completion-uploads
2026-09-17 14:48:23 -03:00
Alexandre Brandizzi
318859fb1b
Merge branch 'dev' into fix/ab/sh-321-wizard-vendor-notes
2026-09-17 14:48:19 -03:00
Codex Review Integration
6a18cc321a
test(dashboard): update visual baselines for Team Members nav item
2026-09-17 14:46:16 -03:00
Alexandre Brandizzi
40779566c3
Merge branch 'dev' into fix/ab/sh-368-completion-uploads
2026-09-17 14:26:37 -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
b2b25d7bae
Merge branch 'dev' into feat/ab/sh-336-dashboard
2026-09-17 14:26:27 -03:00
Alexandre Brandizzi
1a13787ecb
Merge branch 'dev' into feat/ab/sh-207-uplift-queue-frontend
2026-09-17 14:26:21 -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
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
Codex Review Integration
1271d3c11e
feat(dashboard): dispatcher scope picker, status distribution, region drilldown, perf counts
...
- SH-336: add the dispatcher-scope picker (All / My WOs / individual) for
Scheduler/Admin via a new viewAllDispatchersOnDashboard role gate, a static
'My WOs' label for Dispatcher, and hide the dispatcher tables (and skip their
queries) when the viewer cannot see all dispatchers. Scope drives dispatcherId
on stats, workload, performance, and regions (SH-347 contract).
- SH-352: add the Status Distribution module with its empty state and status
drill-down.
- SH-347: show Assigned/Completed counts and colour the completion rate
(green >=90, amber 70-89, red <70) on Dispatcher Performance.
- SH-348: drill a region bar into the board region filter; hold the
unconfirmed 'Unmapped/Other' bucket off the chart.
- SH-349: label Vendor Insights as all-time, company-wide.
- Make the drilldown-filters effect fire only on URL change; add a deterministic
clock to the status-drilldown test; add the dashboard visual regression spec
and baselines.
2026-09-17 02:56:31 -03:00
Codex Review Integration
ebbbd91f83
test(uplifts): serve can-approve in the uplift e2e workflow mock
2026-09-17 02:49:24 -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
aa407bc012
test(visual): regenerate vendor and work-order baselines in CI container
...
The new TEAM / Team Members sidebar nav group (SH-326) shifts the shared
layout on every page. The origin/dev merge overwrote the branch's refreshed
baselines with dev's pre-nav versions, so the 16 vendor and work-order visual
checks failed. Regenerated all affected baselines inside the Playwright CI
container (mcr.microsoft.com/playwright:v1.61.1-noble) so they match the
Linux runner rendering.
2026-09-17 00:27:48 -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
Codex Review Integration
e33f513975
test(team-members): refresh visual baselines (SH-326)
2026-09-16 23:28:51 -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
9160dd472a
test(work-orders): refresh startup visual baselines (SH-324)
2026-09-16 22:53:03 -03:00
Codex Review Integration
a4ce537ed6
test(work-orders): tolerate cold visual page startup (SH-324)
2026-09-16 22:50:55 -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
4bee428c71
test(team-members): refresh sidebar visual baselines (SH-324)
2026-09-16 22:39:09 -03:00
Codex Review Integration
6b84db18ca
fix(uplifts): align approval journey test (SH-207)
2026-09-16 22:07:54 -03:00
Codex Review Integration
49923c9a02
test(work-orders): target the Insert WO # placeholder in the SH number e2e
...
The inline create row now renders the empty WO # cell as a required
"Insert WO # *" field instead of "-", so the spec waited for a cell that
no longer exists.
2026-09-16 22:07:46 -03:00
Alexandre Brandizzi
6682fcd7c2
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-16 20:30:17 -03:00
Alexandre Brandizzi
fc21321148
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area
2026-09-16 20:16:18 -03:00
Alexandre Brandizzi
7aa964aa0f
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-16 20:16:15 -03:00
Alexandre Brandizzi
c6ed6072ff
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips
2026-09-16 19:46:30 -03:00
Alexandre Brandizzi
1c1c6b5670
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area
2026-09-16 19:46:26 -03:00
Alexandre Brandizzi
ace66f52e5
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-16 19:46:22 -03:00
Alexandre Brandizzi
3ec6540271
Merge branch 'dev' into fix/ab/sh-194-week-scoped-search
2026-09-16 19:30:44 -03:00
Alexandre Brandizzi
331de59f97
Merge branch 'dev' into feat/ab/sh-278-vendor-service-area
2026-09-16 19:18:25 -03:00
Alexandre Brandizzi
a793e1c2d9
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-16 19:18:18 -03:00
Alexandre Brandizzi
9cce2966f1
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips
2026-09-16 19:16:15 -03:00
Alexandre Brandizzi
ac2642d5b9
Merge branch 'dev' into fix/ab/sh-320-inline-sh-prefix-wo-number
2026-09-16 18:28:25 -03:00
Alexandre Brandizzi
92fa61ad57
Merge branch 'dev' into feat/ab/sh-195-date-header-tooltips
2026-09-16 18:20:16 -03:00
Codex Review Integration
4eb929e1c8
test(work-orders): remove query devtools overlay after navigation
...
Also drops ticket keys from shipped comments and test names.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 15:15:52 -03:00
Codex Review Integration
59a5bc9252
test(work-orders): clear query devtools overlay in mobile upload journey
...
Also drops ticket keys from shipped comments and test names.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 15:15:03 -03:00
Alexandre Brandizzi
1f405bbcaf
Merge branch 'dev' into fix/ab/sh-356-due-date-after-schedule
2026-09-16 15:03:34 -03:00
Alexandre Brandizzi
30c43a4d86
SH-281: group vendor directory rows by company ( #188 )
...
* fix(vendors): add accessible trade overflow tooltip
* fix(vendors): add accessible trade overflow tooltip
* refactor(vendors): satisfy row maintainability gate
* feat(vendors): group directory rows by company
* chore(vendors): trigger SH-281 review checks
* test(vendors): align company directory visuals
* test(vendors): complete company visual baselines
* fix(vendors): keep empty states in viewport
* test(vendors): align centered empty baseline
* fix(vendors): use grouped directory endpoint
* test(vendors): follow grouped directory endpoint
* test(vendors): refresh combined visual snapshots
---------
Co-authored-by: Codex Review Integration <codex-review@local.invalid>
2026-09-16 14:40:24 -03:00
Codex Review Integration
5d53b8e810
fix(api): send multipart uploads with their Content-Type (SH-368)
...
The shared ky instance declared Content-Type: application/json for every
request. Ky bakes instance headers into the Request it builds, so a FormData
body left with that header, and the beforeRequest hook that deleted it ran
after the boundary had already been dropped: the multipart body went out
with no Content-Type at all. ASP.NET then cannot bind [FromForm] fields, so
the completion-doc upload (dialog and slide-over "Upload signed PDF")
returned 400 "The file field is required.", media category updates arrived
without category or workOrderVersion, and the legacy edit form post lost its
fields.
Drop the instance-wide Content-Type. Ky still sets application/json for
json bodies, and the runtime sets multipart/form-data with the boundary.
The old unit test tolerated a missing header, and ran under jsdom whose
FormData the Node Request cannot serialize. It now runs in the node
environment and requires a multipart Content-Type whose boundary matches the
body. A Pixel 7 viewport e2e covers the signed PDF upload and JPG/MP4/MOV
media upload plus categorize.
2026-09-16 13:39:20 -03:00
Codex Review Integration
fdc275ab9a
test(work-orders): cover the Due Date floor in the wizard
2026-09-16 13:35:12 -03:00
Codex Review Integration
7c090571c5
test(work-orders): cover wizard vendor company notes journey
2026-09-16 13:20:32 -03:00