Commit graph

108 commits

Author SHA1 Message Date
arthur.bassi
1810f1559a chore(work-orders): resolve closability conflicts with platform-polish 2026-08-12 15:33:15 -03:00
arthur.bassi
d701befc42 fix(work-orders): fail closed until board detail closability is ready 2026-08-12 15:16:50 -03:00
arthur.bassi
cc14949e4a chore(work-orders): sync platform-polish with wizard-board-create tip 2026-08-12 14:34:38 -03:00
arthur.bassi
64c485025b fix(work-orders): enforce single-service wizard create per SH-118
Use single service selection in the wizard and omit extraServices from board create.
2026-08-11 17:42:48 -03:00
arthur.bassi
8bfa600301 feat(work-orders): board wizard create with service notes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 17:06:49 -03:00
Arthur Bassi
1005186ea7 Merge branch 'dev' into feature/wo-detail-comp-doc 2026-08-11 15:23:55 -03:00
Arthur Bassi
969f99a576 fix(work-orders): send workOrderVersion on media categorize/delete
Align CompDoc media mutations with backend PR #47 so categorize and
delete no longer return 422 WorkOrderVersionRequired.
2026-08-11 14:52:41 -03:00
Adam Moussa
4949508d43
Merge branch 'dev' into feat/sh-101-uplift-lifecycle 2026-08-11 13:35:55 -04:00
arthur.bassi
e4370591ef fix(query): scope broadcast channel per account and clear on auth
Isolate TanStack Query broadcast by userId, dispose and clear on
logout/401, and extract vendor filter drawers for governance.
2026-08-11 14:12:40 -03:00
Arthur Bassi
f35fce9bd5
feat(work-orders): comment @mentions autocomplete (SH-217) (#91)
* docs(work-orders): add pending BE contract checklist for design parity gaps

* feat(work-orders): add mentions in work-order comments composer

* docs(work-orders): align pr description with jira and qa residuals

* refactor(workorders): split work order view page into view components

* fix(work-orders): export comment assignment vendor input types for view hook

* fix(work-orders): drop preferredContact from vendor update payload

Align with WorkOrderVendorUpdatePayload on current dev so the mentions branch typechecks.

* fix(work-orders): remove Preferred Contact from WO vendor editor (SH-180)

EOF

* fix(work-orders): harden comment mentions and clear draft on success

* fix(work-orders): harden mention highlight boundary and submit catch [SH-217]

* fix(work-orders): keep mention cursor sync on current value [SH-217]

* fix(work-orders): keep mention menu open after typing @

Pass live text into syncCursor instead of a render-time valueRef.
Add a composer interaction regression for @ autocomplete visibility.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-08-11 14:07:02 -03:00
arthur.bassi
5e3b7b8057 fix(work-orders): use authoritative type/doc/media for detail closability
Stop treating integration source as WorkOrderType.
Enrich detail from board detail for SH-114/SH-183 gates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 14:06:54 -03:00
Arthur Bassi
a30ac73d29
feat(work-orders): draft technician until vendor dialog save (SH-193) (#89)
Some checks are pending
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
* docs(work-orders): add pending BE contract checklist for design parity gaps

* feat(work-orders): add technician affordance in wo vendor dialog

* fix(work-orders): defer technician create until vendor dialog save

* docs(work-orders): align pr description with jira and qa residuals

* fix(vendors): harden draft technician optional field typing

* refactor(workorders): extract vendor dialog body footer and save hook

* fix(work-orders): coerce null company vendor for add-technician prop

* fix(work-orders): preserve draft technician staging on save [SH-193]

* fix(work-orders): select technicians by stable id [SH-193]

Keep selectedKey as explicit dialog state (SiteDialog pattern) so same-name drafts do not collide with existing vendors, and cover the regression with interaction tests.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-08-11 14:01:31 -03:00
Alexandre Brandizzi
b177987081
Merge branch 'dev' into feat/sh-101-uplift-lifecycle 2026-08-11 13:52:26 -03:00
Arthur Bassi
9c7b42e96b
feat(work-orders): SH-132 FE — Due Date distinct from Schedule On + Emergency calendar modal (#82)
* feat(work-orders): align Due Date and Past Due with SH-132 FE contract [SH-132]

* fix(work-orders): highlight Schedule On for unscheduled rows

Restore forceScheduleHighlight for Unscheduled section rows while keeping Due Date highlight for past-due and attempt feedback.

Co-authored-by: Cursor <cursoragent@cursor.com>

* test(work-orders): cover unscheduled Schedule On highlight [SH-132]

Add row-level public-interface regression proving Unscheduled rows force-highlight Schedule On, not Due Date (SH-165).

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-08-11 13:49:41 -03:00
Alexandre Brandizzi
34ebad390f fix(uplifts): align revise validation contract 2026-08-11 13:49:03 -03:00
Arthur Bassi
f66284d78c Merge remote-tracking branch 'origin/dev' into feature/wo-detail-comp-doc 2026-08-11 09:47:20 -03:00
Alexandre Brandizzi
c0e203a090 feat(uplifts): complete SH-101 vendor workflow 2026-08-11 08:57:38 -03:00
Alexandre Brandizzi
bd12351c87
Merge branch 'dev' into feat/sh-98-portal-lifecycle-recovered 2026-08-11 08:53:28 -03:00
arthur.bassi
55449a9e31 merge(work-orders): sync with platform-polish tip 2026-08-10 19:07:45 -03:00
arthur.bassi
c8a8522499 fix(work-orders): send wizard status and clear POC notes on site change
Map draft.status to lifecycleStatus on board create, and reset pocNotes with POC fields when the wizard site changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 19:06:35 -03:00
arthur.bassi
d44cda05d9 merge(work-orders): sync platform-polish with wizard-board-create tip 2026-08-10 19:04:28 -03:00
arthur.bassi
e2a11926e0 fix(work-orders): use local calendar day for completedDate
Restore todayIso() after parent merge reintroduced UTC slice, and keep the wizard-date-utils regression test.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 19:03:07 -03:00
arthur.bassi
150eb86bf1 merge(work-orders): sync wizard-board-create with slide-over-media tip 2026-08-10 18:58:06 -03:00
arthur.bassi
a05e768115 fix(work-orders): address Bugbot findings on slide-over and vendor roster
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 18:35:28 -03:00
Alexandre Brandizzi
bc5659eb2a fix(vendor-portal): clear stale refusal state 2026-08-10 18:25:57 -03:00
arthur.bassi
767f0df43f Merge remote-tracking branch 'origin/dev' into feature/wo-detail-comp-doc 2026-08-10 18:13:40 -03:00
Arthur Bassi
c850be2aeb fix(work-orders): compare completion labels via string helper
[recover] remove malicious eslint payload (was 19dfa0f9)
2026-08-10 17:12:14 -03:00
Arthur Bassi
6fe1cd0f27 fix(work-orders): remove legacy completedDate EditWorkorder path
[recover] remove malicious eslint payload (was f4e6132b)
2026-08-10 17:12:14 -03:00
Arthur Bassi
2eb5359d82 fix(work-orders): address wizard create review findings
[recover] remove malicious eslint payload (was 166c63e4)
2026-08-10 17:12:13 -03:00
Arthur Bassi
d72be8c505 fix(work-orders): use local calendar day for slide-over completedDate
[recover] remove malicious eslint payload (was 6a278c01)
2026-08-10 17:12:13 -03:00
Alexandre Brandizzi
3f4d64d7b6 fix: guard pending refusal dialog 2026-08-10 13:31:12 -03:00
Alexandre Brandizzi
4d2ee40d60 feat(vendor-portal): complete request lifecycle (SH-98) 2026-08-10 13:16:26 -03:00
Alexandre Brandizzi
cc0df8f569 fix(vendors): complete shell and visual parity gates 2026-08-10 12:11:38 -03:00
Alexandre Brandizzi
fca5487f6d fix(vendors): enforce prototype visual geometry 2026-08-06 23:30:23 -03:00
Alexandre Brandizzi
ec203e1f5b fix(vendors): preserve the selected edit state 2026-08-06 22:39:11 -03:00
Alexandre Brandizzi
ff2e04b30e refactor(vendors): satisfy changed-file governance 2026-08-06 22:31:12 -03:00
Alexandre Brandizzi
b61d46ce4b fix(vendors): match prototype directory experience 2026-08-06 22:23:30 -03:00
arthur.bassi
cd4b8d27fd fix(work-orders): seed CompDoc address after location settles [SH-116] 2026-08-06 10:14:29 -03:00
arthur.bassi
bfc230d421 fix(work-orders): harden CompDoc generate seed persist and blob revoke 2026-08-05 10:54:33 -03:00
arthur.bassi
7ea0d2c464 fix(work-orders): refresh CompDoc on Generate failure and drop EditWorkorder date helper
Invalidate board/location queries when Save Draft or Generate fails so partial
prerequisite writes stay authoritative, and remove the unused CompDoc
mapCompletedDateUpdateFormData EditWorkorder helper.
2026-08-04 16:27:59 -03:00
arthur.bassi
65d75ca372 fix(work-orders): persist CompDoc prerequisites before Generated status
Also register retry AbortControllers so cancel aborts the active upload attempt.
2026-08-04 15:03:28 -03:00
Alexandre Brandizzi
0027ecc41f Merge remote-tracking branch 'origin/dev' into feature/wo-detail-comp-doc 2026-08-04 10:30:37 -03:00
Alexandre Brandizzi
ca7829036f
feat(vendors): add company roster workflows (SH-198) (#64)
Some checks failed
CI / ci (push) Has been cancelled
CI / governance (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
* feat(vendors): support company roster workflows

* fix(vendors): address roster review feedback

* test(vendors): preserve draft on roster load failure

* fix(vendors): preserve current roster selection
2026-08-04 09:53:48 -03:00
Alexandre Brandizzi
4b88a60751
fix(vendors): remove preferred contact and fix trade ordering (#63)
Some checks are pending
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
Deploy / deploy (push) Waiting to run
* fix(vendors): address SH-180 and SH-182

* refactor(vendors): satisfy maintainability gates
2026-08-03 17:53:39 -03:00
Alexandre Brandizzi
509b3c3212 fix(work-orders): persist completedDate via board and media sh-116
leave EditWorkorder for completedDate; await mutations before draft saved
toast; upload-then-categorize with MIME allowlist, progress, cancel, retry.
2026-07-31 12:24:31 -03:00
Arthur Bassi
b2d44944ab fix(work-orders): resolve CompDoc/dev merge type and maintainability issues 2026-07-30 11:09:05 -03:00
Arthur Bassi
e3aa69e577 chore(work-orders): sync feature/wo-detail-comp-doc with current dev 2026-07-30 10:59:22 -03:00
Arthur Bassi
d6179fcec5 refactor(work-orders): extract WoTableRow under maintainability limits 2026-07-30 10:40:55 -03:00
Arthur Bassi
e5300da9fb chore(work-orders): sync feature/wo-board-api with current dev 2026-07-30 09:05:33 -03:00
Arthur Bassi
3004d039aa fix(work-orders): address SH-116 CompDoc review blockers
Gate CompDoc on selected service, use real pm titles only,
make Address editable via location update, and wire media
to the board API with categories instead of blob state.
2026-07-30 09:04:03 -03:00