Codex Review Integration
2844d97a36
feat(work-orders): show the vendor location map in the Vendor dialog
...
The last of SH-271's five acceptance bullets. The Work Order Vendor dialog
gets one composed address line from the vendor dropdown payload, not the
structured parts the form and detail drawer hold, so the preview takes the
line directly — it is saved data either way, and the completeness rule exists
to stop a map of half-typed input, not to reject a stored address.
The dialog's hand-built maps URL now goes through the shared helper, so the
link and the preview cannot drift apart.
2026-09-10 16:36:09 -03:00
Codex Review Integration
aa707cb370
feat(vendors): structure the address into Street/City/State with autocomplete
...
The Vendor form carried one free-text "Address (optional)" line, with City,
State and Zip already present but hidden behind display:none, and a separate
"Google Maps URL" input someone had to paste into by hand.
Street Address, City and State are now three required fields. Typing three
characters in Street Address offers up to four candidates; picking one fills
all three at once, and typing without picking stays plain free text. The
Google Maps URL input is gone — the location is derived from the address, the
Street Address itself is the link in view mode, and a keyless map preview
renders once all three parts are present. Zip stays in the payload but out of
the form; the ticket scopes the visible set to three.
The suggestion algorithm, candidate cities and copy are ported from the
approved prototype rather than invented, so dev and design agree on what a
dispatcher sees. Suggestions are deterministic for a given input on purpose:
a reshuffling list moves a row out from under the pointer mid-click.
Test fixtures that predate the requirement now carry an address, so each test
still fails for the reason it is about. The two drawer tests asserting the
stored-URL "Open in Google Maps" row are rewritten to the behaviour that
replaced it.
Delivers SH-271.
2026-09-10 16:31:56 -03:00
Alexandre Brandizzi
73346371e5
Merge pull request #167 from Sea-Haven-Industries/feat/sh-298-sentry
...
Frontend checks / Build and test (push) Waiting to run
Frontend checks / governance (push) Waiting to run
Frontend checks / Visual regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
Deploy / Upload private source maps (push) Blocked by required conditions
feat: add browser Sentry tracing (SH-298)
2026-09-10 15:52:28 -03:00
Codex Review Integration
fdd97c24f9
Merge branch 'dev' into feat/sh-298-sentry
...
Three conflicts, all where dev refactored code this branch had instrumented:
- api.ts — dev extracted the session-expiry helper into
lib/auth/expire-session. Took dev's import, dropped the now-duplicate local
copy, kept the tracing import.
- work-order-board-documents-api.ts — dev replaced the ky upload with
uploadFormWithProgress, an XHR path that exists because ky's
onUploadProgress streams the body and browsers refuse that over HTTP/1.1.
Kept dev's helper and wrapped it in traceHttpOperation so the upload stays
instrumented; neither change is lost.
- work-orders-api.test.ts — kept both mock surfaces, since the merged
work-orders-api calls apiRequestRaw while other code uses the ky instance.
getMediaContent arrived from dev calling `api.get` directly, which this file
no longer imports; routed it through apiRequestRaw like its siblings, which
also brings it under tracing.
2026-09-10 14:44:12 -03:00
Arthur Bassi
b7d531f554
Merge pull request #173 from Sea-Haven-Industries/feat/SH-186-schedule-clear
...
Frontend checks / Build and test (push) Waiting to run
Frontend checks / governance (push) Waiting to run
Frontend checks / Visual regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
feat(work-orders): persist Schedule On clear for SH-186
2026-09-09 18:31:17 -03:00
Arthur Bassi
1fdecdd45d
Merge remote-tracking branch 'origin/dev' into feat/SH-186-schedule-clear
2026-09-09 18:18:11 -03:00
Arthur Bassi
8e0f7617aa
Merge pull request #172 from Sea-Haven-Industries/feat/SH-171-wo-documents
...
feat(work-orders): complete Extra Docs authorized attachment lifecycle
2026-09-09 18:17:59 -03:00
Arthur Bassi
117f7949f5
fix(work-orders): pass HTTP status into Extra Docs error helper
2026-09-09 18:05:03 -03:00
Arthur Bassi
15de3fca0a
Merge remote-tracking branch 'origin/dev' into feat/SH-186-schedule-clear
2026-09-09 17:47:37 -03:00
Arthur Bassi
11743caa61
Merge remote-tracking branch 'origin/dev' into feat/SH-171-wo-documents
2026-09-09 17:46:41 -03:00
Arthur Bassi
a7d359ffc4
Merge pull request #171 from Sea-Haven-Industries/fix/SH-181-vendor-save-gate
...
Frontend checks / Build and test (push) Waiting to run
Frontend checks / governance (push) Waiting to run
Frontend checks / Visual regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
fix(workorders): correct vendor save behavior
2026-09-09 17:46:19 -03:00
Arthur Bassi
eab83f6562
Merge branch 'dev' into feat/SH-171-wo-documents
2026-09-09 17:46:10 -03:00
Arthur Bassi
54671baf5c
Merge remote-tracking branch 'origin/dev' into fix/SH-181-vendor-save-gate
2026-09-09 17:33:58 -03:00
Arthur Bassi
ef2ba9da1f
Merge pull request #170 from Sea-Haven-Industries/feat/SH-299-completion-doc-diag
...
fix: restore work-order completion media uploads
2026-09-09 17:33:04 -03:00
Arthur Bassi
a54fcaae9f
fix(work-orders): persist extra media placement
2026-09-09 17:09:28 -03:00
Arthur Bassi
252c0d0856
fix(work-orders): remove stale schedule clear handlers
2026-09-09 17:09:26 -03:00
Arthur Bassi
ba69706fcf
fix(work-orders): make extra document opening reliable
2026-09-09 17:09:26 -03:00
Arthur Bassi
3bb7acde2d
fix(work-orders): preserve staged vendor selection
2026-09-09 17:09:26 -03:00
Arthur Bassi
c71d9482ec
feat(work-orders): align Schedule On clear with shared demotion path
...
Board Clear uses empty-week patch; slide-over Save derives Pending via mergeAutoSchedulePatch.
2026-09-09 15:44:49 -03:00
Arthur Bassi
dee1578efe
feat(work-orders): persist Schedule On clear from board and slide-over
...
Clearing a concrete date must go through the shared schedule patch so status can revert to Pending.
2026-09-09 10:23:23 -03:00
Arthur Bassi
e761e0dae5
test(work-orders): drop Photos categorize-after-upload assertion
2026-09-08 13:53:17 -03:00
Arthur Bassi
1607bac8ad
fix(work-orders): align Extra Docs and Photos copy with AAP
2026-09-08 13:48:02 -03:00
Arthur Bassi
47f78fec89
feat(work-orders): open Extra Docs through authorized content
2026-09-08 11:33:21 -03:00
Arthur Bassi
edf4a51d4c
feat(work-orders): fetch Extra Docs via authenticated content GET
2026-09-08 11:31:12 -03:00
Arthur Bassi
599e38aae3
feat(work-orders): add media content API path
2026-09-08 11:30:04 -03:00
Arthur Bassi
4006145ef8
feat(work-orders): keep Photos allowlist media-only at 50MB
2026-09-08 11:28:48 -03:00
Arthur Bassi
807d8ac1a8
feat(work-orders): match Extra Docs AAP accept copy
2026-09-08 11:28:37 -03:00
Arthur Bassi
6c765e8b42
feat(work-orders): align Extra Docs accept and 50MB limits
2026-09-08 11:27:52 -03:00
Arthur Bassi
747515870e
fix(workorders): correct vendor save behavior
2026-09-07 20:48:30 -03:00
Arthur Bassi
74e5c58e5d
fix(work-orders): restore completion media uploads over HTTP/1.1
...
Use XHR for media progress so Ky does not stream the body on HTTP/1.1
(Vite proxy), and keep completion vs extra tiles from mixing after upload.
2026-09-07 15:19:39 -03:00
Arthur Bassi
793230f0c2
Merge pull request #168 from Sea-Haven-Industries/feat/SH-170-wo-inline-type-correction
...
Frontend checks / Build and test (push) Has been cancelled
Frontend checks / governance (push) Has been cancelled
Frontend checks / Visual regression (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
feat(work-orders): align inline type correction with the board AAP
2026-09-07 12:19:18 -03:00
Arthur Bassi
dc9cc07a73
Merge branch 'dev' into feat/SH-170-wo-inline-type-correction
2026-09-07 11:51:30 -03:00
Arthur Bassi
ccdad96170
fix(work-orders): persist type via PATCH and lock completed rows
2026-09-07 11:39:12 -03:00
Arthur Bassi
a766dc9c50
Merge pull request #169 from Sea-Haven-Industries/feat/SH-310-schedule-on-range
...
Frontend checks / Build and test (push) Has been cancelled
Frontend checks / governance (push) Has been cancelled
Frontend checks / Visual regression (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
fix(work-orders): restore Range tab on Schedule On for inline and slide-over
2026-09-04 18:07:18 -03:00
Arthur Bassi
f51f6bd493
chore(work-orders): keep type/severity audit rules after merging origin/dev
2026-09-04 16:41:42 -03:00
Arthur Bassi
418eb3749d
fix(work-orders): restore Range tab on Schedule On for inline and slide-over
...
Share Week/Date/Range on inline, board, and slide-over DateCell.
A selected range lands on the start day, matching the wizard.
2026-09-04 15:59:53 -03:00
Arthur Bassi
7cc7cc19d0
Merge pull request #165 from Sea-Haven-Industries/feat/SH-169-wo-inline-lifecycle
...
Frontend checks / Build and test (push) Waiting to run
Frontend checks / governance (push) Waiting to run
Frontend checks / Visual regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
feat(work-orders): align inline lifecycle transitions with AAP
2026-09-04 14:58:44 -03:00
Arthur Bassi
b0c58958ae
Merge branch 'dev' into feat/SH-169-wo-inline-lifecycle
2026-09-04 14:47:38 -03:00
Arthur Bassi
3ed8600beb
fix(work-orders): promote dated pre-schedule picks to Scheduled
...
Align create, wizard, and board status patches with AAP maybeAutoSchedule.
Include the previous status in audit copy when the API sends it.
2026-09-04 14:31:08 -03:00
Alexandre Brandizzi
d6163e7eb6
Merge branch 'dev' into feat/sh-298-sentry
2026-09-04 14:23:41 -03:00
Arthur Bassi
fc07371f0d
Merge pull request #164 from Sea-Haven-Industries/feat/SH-168-wo-board-row-order
...
Frontend checks / Build and test (push) Waiting to run
Frontend checks / governance (push) Waiting to run
Frontend checks / Visual regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
feat(work-orders): persist board row order locally and support keyboard reorder
2026-09-04 14:07:28 -03:00
Arthur Bassi
b8349783a7
chore(work-orders): keep carry-over display and local board row-order
2026-09-04 13:46:04 -03:00
Arthur Bassi
e3ffa5a94b
Merge pull request #163 from Sea-Haven-Industries/feat/sh-167-wo-board-carry-over
...
feat(work-orders): show carry-over pill and map day-tab for prior-week WOs
2026-09-04 13:43:48 -03:00
Arthur Bassi
9f9aa5c824
fix(work-orders): restore AAP span grip while keeping keyboard reorder
2026-09-04 13:27:53 -03:00
Codex Review Integration
fa866c5ea7
fix(observability): preserve HTTP error status
2026-09-03 21:51:40 -03:00
Codex Review Integration
207199559f
feat(observability): identify and scrub Sentry transactions
2026-09-03 17:12:49 -03:00
Arthur Bassi
27ddeb2903
feat(work-orders): align inline type correction with the board AAP
...
Keep type correction on the board: Type & severity, SEV toast, and audit copy.
2026-09-03 16:30:10 -03:00
Codex Review Integration
dc313dc50a
fix: capture React root errors in Sentry
2026-09-03 15:53:50 -03:00
Codex Review Integration
a24002bc24
feat: activate Sentry deployment environments
2026-09-03 15:10:01 -03:00
Arthur Bassi
370b2a68ad
fix(work-orders): align reorder grip button box-model with prior span
...
Reset display, vertical-align, and box-sizing so visual snapshots stay on the approved grip.
2026-09-03 14:42:22 -03:00