Arthur Bassi
d8da3a5048
test(work-orders): pin vendor PATCH response as live company assignment
...
Round-trip: board PATCH emits vendorId only; a Pending response keeps Completed
unblocked, while a leftover Refused response still raises Missing: Company.
2026-08-20 15:09:35 -03:00
Arthur Bassi
972e5913f3
fix(work-orders): treat vendor status overlay as local-only on board patch
...
Board PATCH persists vendorId only. primaryDispatchStatus is optimistic until
the producer returns a live dispatch after vendor save.
2026-08-20 14:47:04 -03:00
Arthur Bassi
493104c56d
fix(work-orders): narrow vendor patch type for inline drafts
...
Vendor assignment patch must not carry table-row status, which blocked tsc
because Canceled is not a draft status.
2026-08-20 14:29:57 -03:00
Arthur Bassi
4c9f8b7d81
fix(work-orders): treat vendor save as a live company assignment
...
Clear leftover primary dispatch status on vendor patch so Completed is not
blocked after a new company is chosen. Keep Jira keys out of source comments.
2026-08-20 14:17:20 -03:00
Arthur Bassi
72de2ea78d
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 13:40:53 -03:00
Alexandre Brandizzi
58bdd6bffa
Merge pull request #117 from Sea-Haven-Industries/feat/sh-249-fe-trades
...
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
CI / vendor-visual-regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
fix(vendors): gate trades to canonical list, preserve legacy values (SH-249)
2026-08-20 13:38:23 -03:00
Alexandre Brandizzi
ef04008fa2
Merge branch 'dev' into feat/sh-249-fe-trades
2026-08-20 13:25:09 -03:00
Arthur Bassi
a156db70bc
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 13:24:51 -03:00
Arthur Bassi
f77428ab19
fix(work-orders): map only official primaryDispatchStatus (SH-183)
...
Drop undocumented board aliases so the Completed gate matches the backend DTO field.
2026-08-20 13:22:12 -03:00
Arthur Bassi
632e00a0ce
Merge pull request #124 from Sea-Haven-Industries/feat/sh-241-wo-day-pagination
...
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
CI / vendor-visual-regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
feat(work-orders): add per-day board pagination (SH-241)
2026-08-20 11:57:53 -03:00
Alexandre Brandizzi
4d8e86b264
Merge branch 'dev' into feat/sh-249-fe-trades
2026-08-20 11:48:07 -03:00
Arthur Bassi
75c82e90a5
Merge branch 'dev' into feat/sh-241-wo-day-pagination
2026-08-20 11:37:01 -03:00
Arthur Bassi
5195749623
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 11:32:09 -03:00
Alexandre Brandizzi
3dd174573a
Merge pull request #122 from Sea-Haven-Industries/feat/sh-254-fe-deactivate-confirm
...
fix(vendors): deactivation dialog follows the approved design (SH-254)
2026-08-20 11:31:30 -03:00
Arthur Bassi
e6567c2c0a
Merge branch 'dev' into feat/sh-241-wo-day-pagination
2026-08-20 11:26:47 -03:00
Alexandre Brandizzi
3141adba13
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm
2026-08-20 11:24:12 -03:00
Alexandre Brandizzi
12411dc295
Merge pull request #121 from Sea-Haven-Industries/feat/sh-253-vendor-detail-parity
...
fix(vendors): vendor detail parity with the design prototype (SH-253)
2026-08-20 11:23:29 -03:00
Arthur Bassi
91f30304a2
Merge branch 'dev' into feat/sh-241-wo-day-pagination
2026-08-20 11:16:17 -03:00
Alexandre Brandizzi
326ac18eb0
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm
2026-08-20 11:15:10 -03:00
Codex Review Integration
aebb2c6b1a
Merge remote-tracking branch 'origin/dev' into feat/sh-253-vendor-detail-parity
...
# Conflicts:
# src/test/app/(protected)/vendors/vendor-detail-drawer.test.tsx
2026-08-20 11:14:51 -03:00
Alexandre Brandizzi
3ade310a1a
Merge pull request #120 from Sea-Haven-Industries/feat/sh-255-deactivate-toggle-gate
...
fix(vendors): gate deactivation prompt on saved status (SH-255)
2026-08-20 11:11:40 -03:00
Arthur Bassi
23a80a7a14
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 11:08:36 -03:00
Alexandre Brandizzi
98daf9832d
Merge branch 'dev' into feat/sh-255-deactivate-toggle-gate
2026-08-20 11:06:54 -03:00
Alexandre Brandizzi
6da2e88cbf
Merge pull request #116 from Sea-Haven-Industries/feat/sh-250-fe-additive-add
...
fix(vendors): additive technician add for existing companies (SH-250, SH-246)
2026-08-20 11:06:42 -03:00
Arthur Bassi
ee5eae8927
fix(work-orders): page-aware flash and Unassigned search empty (SH-241)
...
Empty search waits until the Unassigned queue has settled.
Reschedule selects the destination day's page before flashing the row.
2026-08-20 11:00:25 -03:00
Alexandre Brandizzi
fc63948d4e
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm
2026-08-20 10:58:38 -03:00
Alexandre Brandizzi
4e36396868
Merge branch 'dev' into feat/sh-253-vendor-detail-parity
2026-08-20 10:58:34 -03:00
Alexandre Brandizzi
8684cb6c8b
Merge branch 'dev' into feat/sh-255-deactivate-toggle-gate
2026-08-20 10:58:31 -03:00
Alexandre Brandizzi
22bd392794
Merge branch 'dev' into feat/sh-249-fe-trades
2026-08-20 10:58:29 -03:00
Alexandre Brandizzi
8edcb6659d
Merge branch 'dev' into feat/sh-250-fe-additive-add
2026-08-20 10:58:26 -03:00
Arthur Bassi
e9b00bab57
fix(work-orders): ignore inactive primary dispatch on board closability (SH-183)
...
Board Completed must not treat Cancelled/Canceled/Refused leftover vendorId as a live company assignment.
2026-08-20 10:52:43 -03:00
Arthur Bassi
fce8520f33
Merge pull request #123 from Sea-Haven-Industries/feat/sh-240-week-day-nav
...
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
CI / vendor-visual-regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
feat(work-orders): day-scoped week navigation (SH-240)
2026-08-20 10:42:12 -03:00
Arthur Bassi
be975c792c
fix(work-orders): wait for Unassigned queue before empty search (SH-240)
...
Keep SH-165 loading and error visible instead of a premature empty-search shell.
2026-08-20 10:28:04 -03:00
Arthur Bassi
0c514c9bad
feat(work-orders): add per-day board pagination (SH-241)
...
Paginate the selected day's WOs client-side with AAP footer controls.
2026-08-20 10:08:34 -03:00
Arthur Bassi
1a54cbd2af
Merge branch 'dev' into feat/sh-240-week-day-nav
2026-08-20 09:44:33 -03:00
Arthur Bassi
959dda08fe
fix(work-orders): stack week selector with day tabs in the filter bar
...
Keep SH-240 nav grouped under the type row and coerce the Live badge for JSX &&.
2026-08-20 09:40:02 -03:00
Arthur Bassi
0c75bd42f4
fix(work-orders): keep search and reschedule on the selected day (SH-240)
...
Empty search and Schedule On must follow the day-tab board, not the whole week or Unscheduled.
2026-08-20 09:21:45 -03:00
Arthur Bassi
854267e213
test(work-orders): keep Verified and Completed as live company assignment (SH-183)
...
Cancelled/Canceled/Refused stay inactive; verified or completed dispatches still
gate Complete on the vendor that did the work.
2026-08-19 15:16:23 -03:00
Arthur Bassi
b3899d2a51
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-19 15:14:45 -03:00
Arthur Bassi
e3b8360a68
fix(work-orders): treat Canceled and Refused dispatches as inactive (SH-183)
...
Backend returns Cancelled, Canceled, and Refused; only Cancelled was skipped,
so Complete stayed enabled with no live vendor.
2026-08-19 15:04:50 -03:00
Alexandre Brandizzi
871b7b0964
Merge pull request #118 from Sea-Haven-Industries/feat/sh-245-login-parity
...
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
CI / vendor-visual-regression (push) Waiting to run
Deploy / deploy (push) Waiting to run
fix(login): design parity — official logo, h1 welcome heading, label colour (SH-245)
2026-08-19 14:55:17 -03:00
Arthur Bassi
8ab56d9782
refactor(work-orders): extract WoTable loading and empty shells
...
Keep the list table under the changed-file function length gate.
2026-08-19 14:48:04 -03:00
Arthur Bassi
2c14b08945
feat(work-orders): day-scoped week navigation (SH-240)
...
Let dispatchers pick one week and one weekday so the board
replaces rows instead of stacking the full week.
2026-08-19 14:45:59 -03:00
Codex Review Integration
670d03d572
test(vendors): update the deactivation e2e to the confirmation flow (SH-254)
...
The browser smoke encoded the behaviour this ticket changes: it asserted
the Deactivate button was disabled when work orders were linked. It now
asserts the opposite — the work orders are listed as links, "Deactivate
anyway" is enabled, and confirming sends confirmOpenWorkOrders=true.
Also fixes the mock's DELETE route, whose anchored pattern stopped
matching once the request carried a query string. The raced-409 case is
unchanged and still preserves the vendor.
2026-08-19 14:29:01 -03:00
Codex Review Integration
4e5863def5
test(vendors): refresh the vendor detail visual baseline (SH-253)
...
Regenerated in the CI Playwright image so the baseline matches the
container's rendering. Only vendor-detail changed; the list and edit
baselines are untouched, which confirms extracting the table's status
badge left that view pixel-identical.
2026-08-19 13:43:02 -03:00
Codex Review Integration
22b03b8ac0
fix(vendors): deactivation dialog follows the approved design (SH-254)
...
The dialog's wording, its actions and its behaviour all diverged from the
design prototype. It refused deactivation outright when the vendor had
open work orders, which SH-44 and SH-82 left as an open question rather
than a decided requirement.
Deactivation with open work orders now proceeds on explicit confirmation:
the design's title and body copy, the affected work orders listed as
links, and "Deactivate anyway" in place of a disabled button. The API
call carries confirmOpenWorkOrders so the server-side guard is cleared
deliberately rather than removed.
2026-08-19 13:36:37 -03:00
Codex Review Integration
038ce263da
fix(vendors): vendor detail parity with the design prototype (SH-253)
...
Three divergences in the vendor detail drawer:
- The header rendered the company as a subtitle under a title that had
already fallen back to the company, printing the same name twice when
the row carried no technician. The subtitle is now dropped when it
would repeat the title.
- The Google Maps link appeared only when a URL was stored, unlabelled,
so an empty value left no trace of the field. It is now a labelled
field below Address that reads em-dash when unset, as every other
field in the panel does.
- The status sat immediately beside Total Jobs. It now sits opposite it
at the right edge, and reuses the vendors table's dot-plus-text badge
so the state never reads by colour alone.
2026-08-19 13:22:11 -03:00
Codex Review Integration
90a5256dee
fix(vendors): gate deactivation prompt on saved status (SH-255)
...
The drawer's Active toggle asked to deactivate whenever the switch moved
from on to off, reading the unsaved form value. An inactive vendor toggled
on and back off without saving therefore raised "Deactivate this vendor"
for a vendor that was already inactive.
Gate on the persisted technician status from the loaded roster instead,
falling back to the clicked row. Deactivation is a property of the saved
vendor, not of the toggle.
2026-08-19 13:18:17 -03:00
Adam Moussa
d5a04d318a
Merge branch 'dev' into feat/sh-245-login-parity
2026-08-19 11:03:37 -04:00
Arthur Bassi
a43de20ed4
fix(work-orders): ignore cancelled dispatches in detail closability (SH-183)
2026-08-19 12:02:17 -03:00