SJCoetz
|
ae66762b76
|
feat(invoicing): add per-order color stripe on group sections
|
2026-07-10 02:09:29 +02:00 |
|
SJCoetz
|
bbd1e1df7c
|
feat(collection-confirm): add per-order color stripe on group sections
|
2026-07-10 02:07:25 +02:00 |
|
SJCoetz
|
6477ebafcc
|
feat(order-color): add FNV-1a hash helper for per-order color stripes
|
2026-07-10 02:05:45 +02:00 |
|
SJCoetz
|
4985b8c946
|
test(order-color): pin colorForOrder behaviour
|
2026-07-10 02:04:38 +02:00 |
|
SJCoetz
|
6598c86093
|
Add order color stripe implementation plan
|
2026-07-10 02:03:57 +02:00 |
|
SJCoetz
|
0d508095f0
|
Add order color stripe spec
|
2026-07-10 02:03:16 +02:00 |
|
SJCoetz
|
6d03be2ebc
|
feat(collection-confirm): rewrite row card as stacked vertical sections
|
2026-07-10 01:07:29 +02:00 |
|
SJCoetz
|
9ab4be2666
|
feat(collection-confirm): show signed-in-as pill in the page header
|
2026-07-10 01:02:59 +02:00 |
|
SJCoetz
|
6074e79be0
|
fix(collection-confirm): hydrate actor from dev-identity cookie, not localStorage
|
2026-07-10 01:01:24 +02:00 |
|
SJCoetz
|
d4b3f7c041
|
Add collection confirm rewrite implementation plan
|
2026-07-10 01:00:08 +02:00 |
|
SJCoetz
|
683b6c8d0a
|
Add collection confirm rewrite spec
|
2026-07-10 00:59:26 +02:00 |
|
SJCoetz
|
579acb300f
|
style(assign-driver): give the action button more breathing room from the modal edge
|
2026-07-10 00:53:55 +02:00 |
|
SJCoetz
|
961d09a798
|
fix(collection-map): use ISO 8601 UTC bounds for assigned_at day filter
|
2026-07-10 00:51:17 +02:00 |
|
SJCoetz
|
1846e86b9e
|
test(collection-map): cover assigned_at clear on unassign
|
2026-07-10 00:49:36 +02:00 |
|
SJCoetz
|
5ce3ef1000
|
fix(collection-map): clear assigned_at on unassign so item returns to pool
|
2026-07-10 00:48:23 +02:00 |
|
SJCoetz
|
728bab1671
|
Add collection map date filter and unassign spec
|
2026-07-10 00:47:42 +02:00 |
|
SJCoetz
|
f15fb5b49f
|
Add collection map date filter and unassign implementation plan
|
2026-07-10 00:47:11 +02:00 |
|
SJCoetz
|
72b2ec09e2
|
test(collection-pool): simplify operational sort test + correct spec reasoning
|
2026-07-10 00:38:31 +02:00 |
|
SJCoetz
|
363cdebe36
|
test(collection-pool): pin nearby-sort behaviour for missing coords
|
2026-07-10 00:36:28 +02:00 |
|
SJCoetz
|
7a7ad71ac0
|
Add collection pool nearby sort implementation plan
|
2026-07-10 00:34:50 +02:00 |
|
SJCoetz
|
8d742e5e87
|
Add collection pool nearby sort spec
|
2026-07-10 00:30:14 +02:00 |
|
SJCoetz
|
e5285e67df
|
chore(collection-pool): rename labels Ready/Pending instead of Ready/Awaiting
|
2026-07-10 00:24:43 +02:00 |
|
SJCoetz
|
32194e8bb3
|
feat(collection-pool): require note on Mark Ready
|
2026-07-10 00:15:24 +02:00 |
|
SJCoetz
|
1698e3d05b
|
test(collection-pool): cover MarkReadyDialog behaviour
|
2026-07-10 00:11:53 +02:00 |
|
SJCoetz
|
58d7c90e77
|
feat(collection-pool): add MarkReadyDialog component
|
2026-07-10 00:08:18 +02:00 |
|
SJCoetz
|
00fb9a38f0
|
test(collection-map): cover ready_notes required-on-ready
|
2026-07-10 00:05:54 +02:00 |
|
SJCoetz
|
13165bfb8c
|
feat(collection-map): require ready_notes when marking ready
|
2026-07-10 00:04:01 +02:00 |
|
SJCoetz
|
4e0d45198b
|
Add collection pool mark-ready notes implementation plan
|
2026-07-10 00:02:43 +02:00 |
|
SJCoetz
|
dbbb3e2b2c
|
Add collection pool mark-ready notes spec
|
2026-07-10 00:00:40 +02:00 |
|
SJCoetz
|
0eef0abd92
|
feat(orders): make Send PO modal wider and two-column, scrollable body
|
2026-07-09 23:48:26 +02:00 |
|
SJCoetz
|
f44f090351
|
test(po-attachments): use node env so the 25 MB cap assertion works
|
2026-07-09 23:39:12 +02:00 |
|
SJCoetz
|
0e59d83107
|
feat(mcp): add purchase_orders.add_attachment tool
|
2026-07-09 23:37:42 +02:00 |
|
SJCoetz
|
a6139b7c8a
|
chore(orders): drop unused attachmentsLoading state from Send PO panel
|
2026-07-09 23:34:51 +02:00 |
|
SJCoetz
|
14e1a12cfe
|
feat(orders): add additional attachments panel to Send PO modal
|
2026-07-09 23:33:56 +02:00 |
|
SJCoetz
|
2b3b50596c
|
feat(po): include additional_attachments in send-email webhook
|
2026-07-09 23:25:05 +02:00 |
|
SJCoetz
|
3c32c01bb9
|
feat(po-attachments): add migration for additional_attachments field
|
2026-07-09 23:22:23 +02:00 |
|
SJCoetz
|
9bc9d389ce
|
test(po-attachments): use NextRequest instead of any cast
|
2026-07-09 23:20:10 +02:00 |
|
SJCoetz
|
1477265db9
|
feat(po-attachments): add delete route for PO additional attachments
|
2026-07-09 23:18:51 +02:00 |
|
SJCoetz
|
fff095caae
|
test(po-attachments): cover delete route behaviour
|
2026-07-09 23:16:53 +02:00 |
|
SJCoetz
|
b362d92256
|
feat(po-attachments): add upload route for PO additional attachments
|
2026-07-09 23:15:08 +02:00 |
|
SJCoetz
|
a16b8fcdcb
|
test(po-attachments): cover upload route behaviour
|
2026-07-09 23:01:55 +02:00 |
|
SJCoetz
|
d204a4715b
|
feat(po): add additional_attachments to PurchaseOrder type
|
2026-07-09 23:01:07 +02:00 |
|
SJCoetz
|
3a1467fc91
|
Add PO additional attachments implementation plan
|
2026-07-09 23:00:18 +02:00 |
|
SJCoetz
|
e19bb7dbf7
|
Add PO additional attachments spec
|
2026-07-09 22:55:16 +02:00 |
|
SJCoetz
|
dfe52a62d9
|
fix(orders): seed Send PO body with this PO's line count, not the order's
|
2026-07-09 22:43:52 +02:00 |
|
SJCoetz
|
44db71e6d7
|
feat(orders): add n8n shortcut icon to Supplier POs card
|
2026-07-09 22:34:04 +02:00 |
|
SJCoetz
|
5d222ff281
|
feat(po-pdf): add token backfill migration script
|
2026-07-09 22:28:50 +02:00 |
|
SJCoetz
|
f146e42ed0
|
test(po-pdf): cover token capture + proxy routing
|
2026-07-09 22:23:49 +02:00 |
|
SJCoetz
|
6a7dcc0af2
|
fix(po-pdf): capture PB token on upload and route GET through proxy
|
2026-07-09 22:18:53 +02:00 |
|
SJCoetz
|
1e99d23e8b
|
feat(po-pdf): add token field to PurchaseOrderDocumentEntry
|
2026-07-09 22:17:21 +02:00 |
|