Codex Review Integration
f6a22a9096
fix(work-orders): offer only valid manual status transitions inline (SH-357, SH-358)
...
The inline status control no longer offers the automatic Incomplete and
Scheduled states or the work order's current status. Inline create keeps its
explicit Incomplete/Pending/Scheduled creation list.
2026-09-16 11:43:34 -03:00
Codex Review Integration
e46e42df69
fix(work-orders): show full audit timestamps and previous type values (SH-361, SH-363)
...
Audit Log entries now show date and time for every entry instead of a
time-only stamp for manual changes. Type and Severity entries read
'Changed Type from X to Y', a severity cleared by a type correction reads
'from SEV N to —', and the generic fallback no longer renders a raw
FieldChanged action name.
2026-09-16 11:43:34 -03:00
Codex Review Integration
09636ef590
fix(work-orders): complete the work order when its completion document is generated (SH-341)
...
Generating or uploading the completion document now moves a closable work
order to Completed without the manual confirmation, as SH-115 requires. The
SH-114 closability gate is evaluated on the row the server returned after the
document save; Save draft, Not required, Past Due, Completed and Canceled rows
are never auto-completed. The follow-up status patch uses that row's
rowVersion so it does not conflict with the document save.
2026-09-16 11:43:33 -03:00
Codex Review Integration
3ad07c9e10
fix(work-orders): keep backend validation text out of create error toasts
...
Board create failures toasted the backend message verbatim, exposing
field names such as siteCode and vendorId from the inline row and the
wizard. Map known codes to product copy and fall back to generic copy
for every other failure.
2026-09-16 11:17:37 -03:00
Codex Review Integration
e7f8772802
fix(work-orders): count detail media for slide-over completion gate
...
Detail info omits MediaCount, so the slide-over closability gate always
reported a missing photo on Reactive/Emergency work orders. Refs SH-339.
2026-09-16 10:56:17 -03:00
Arthur Bassi
fc3e7591dc
fix(work-orders): add Unscheduled option to Advanced Filters Date range ( #181 )
...
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 dev content / Deploy shoc-frontend-new-dev through Terraform (push) Waiting to run
* fix(work-orders): add Unscheduled option to Advanced Filters Date range
* fix(work-orders): page unscheduled results server-side
---------
Co-authored-by: Codex Review Integration <codex-review@local.invalid>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-09-15 19:11:35 -03:00
Arthur Bassi
c7aec49f05
fix(work-orders): keep completion freeze on live registry edits
2026-09-10 18:47:32 -03:00
Arthur Bassi
1809694973
Merge branch 'feat/SH-191-completion-freeze' of origin into feat/SH-191-completion-freeze
2026-09-10 18:16:27 -03:00
Arthur Bassi
2fbf2ed380
Merge branch 'dev' into feat/SH-191-completion-freeze
2026-09-10 18:15:15 -03:00
Arthur Bassi
99c758872a
fix(work-orders): extract helpers to satisfy governance complexity
2026-09-10 18:15:02 -03:00
Arthur Bassi
116f65ca48
feat(work-orders): consume completion freeze snapshot on the board
...
Prefer FrozenSite, FrozenCompany, and FrozenPoc on Completed rows.
2026-09-10 15:41:01 -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
1fdecdd45d
Merge remote-tracking branch 'origin/dev' into feat/SH-186-schedule-clear
2026-09-09 18:18:11 -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
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
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
edf4a51d4c
feat(work-orders): fetch Extra Docs via authenticated content GET
2026-09-08 11:31:12 -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
dc9cc07a73
Merge branch 'dev' into feat/SH-170-wo-inline-type-correction
2026-09-07 11:51:30 -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
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
b8349783a7
chore(work-orders): keep carry-over display and local board row-order
2026-09-04 13:46:04 -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
Arthur Bassi
3a8f41a444
fix(work-orders): keep explicit wizard status picks on dated drafts
...
Derive Scheduled or Pending only when the patch touches schedule fields, matching the board path.
2026-09-03 14:42:19 -03:00
Arthur Bassi
9fc67516ca
fix(work-orders): derive lifecycle status only when the schedule patch changes
2026-09-03 13:35:26 -03:00
Arthur Bassi
ddd83ffec1
fix(work-orders): skip canceled keyboard reorder and persist destination-week order
2026-09-03 13:34:28 -03:00
Arthur Bassi
c2d1add79c
fix(work-orders): persist AAP auto-schedule on a single board patch
...
Merge derived status once so dated rows cannot stay Pending or Incomplete.
Create and wizard demote Scheduled when there is no concrete date.
2026-09-03 11:13:24 -03:00
Arthur Bassi
9cc9bc4dfb
feat(work-orders): align inline lifecycle transitions with AAP
...
Use the prototype status list and gates on the board and wizard.
Auto-derive Scheduled or Pending from a concrete schedule date.
2026-09-02 15:11:31 -03:00
Arthur Bassi
dc178340de
feat(work-orders): persist board row order locally and support keyboard reorder
...
Keep same-day WO order across refresh and sign-out in the same browser.
Add keyboard reorder on the row grip.
2026-09-02 11:07:27 -03:00
Arthur Bassi
bc1e7a1fa2
fix(work-orders): keep carry-over rows in day reorder and one-char search
2026-09-02 09:47:34 -03:00
Arthur Bassi
08e00c213d
Merge branch 'dev' into feat/sh-167-wo-board-carry-over
2026-09-02 09:32:58 -03:00
Arthur Bassi
426889427c
feat(work-orders): show carry-over pill and map day-tab for prior-week WOs
...
Keep source week visible and map weekday tabs without rewriting schedule.
2026-09-01 14:16:52 -03:00
Arthur Bassi
7e1dcb7a36
fix(work-orders): toast after assigned-to save on the board
...
Show the save toast only after the board PATCH succeeds.
2026-09-01 10:20:38 -03:00
Arthur Bassi
85ea33b0ad
Merge branch 'dev' into fix/sh-296-vendor-invalid-dispatch
2026-08-31 16:36:50 -03:00
Arthur Bassi
a3b889c15e
Merge branch 'dev' into feature/sh-166-accessible-row-flags
2026-08-31 16:04:27 -03:00
Arthur Bassi
72417bbb77
fix(work-orders): omit non-positive primaryDispatchId on board patches
...
A GET echo of 0 on primaryDispatchId made vendor PATCH fail InvalidDispatch.
2026-08-31 15:48:31 -03:00
Arthur Bassi
55a6ff03b1
merge(dev): keep Linux CI New WO visual baseline
...
The only conflict was wo-new.png (Type and schedule). Appt Time is on a later step, so origin/dev's Assigned To screenshot is the correct combined UI.
2026-08-31 15:11:43 -03:00
Arthur Bassi
8031357dfa
fix(work-orders): assert GET User full display name
2026-08-31 10:22:27 -03:00
Arthur Bassi
e9e17dadec
fix(work-orders): compose full user names from User list
2026-08-31 09:23:10 -03:00
Arthur Bassi
b619b8ae13
feat(work-orders): expose accessible names on board row flags
...
Give keyboard and screen-reader users color-independent labels
when setting, changing, or clearing a work-order flag.
2026-08-28 15:06:59 -03:00
Arthur Bassi
fb54414ade
fix(work-orders): parse start-only appointment times and refresh visual baselines
2026-08-28 11:46:54 -03:00