toga-ai 1.0.61 → 1.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,7 +71,28 @@ USA and Canada share the parent handler unchanged.
71
71
  number onto the line). Example seen on SA132739: UPS `1Z8696XA0193326215` actually shipped
72
72
  `C40QYUC-1` (SO line 4) but was attached to SO line 1 (`1000555`).
73
73
 
74
+ - **Over-fulfillment (fulfilled qty > ordered) is the other visible symptom of the same
75
+ scramble.** When a spuriously-linked PO item ships, its ASN/PO-driven ItemFulfillment walks
76
+ the bad bridge link and creates a **phantom `ItemFulfillmentItem` on the wrong SO line**, so
77
+ that line shows more fulfilled than ordered (the same shipment is also fulfilled correctly on
78
+ its real line). Cleanup per order:
79
+ - **Spurious bridge rows:** delete where the SO item's part ≠ the PO item's part, scoped to
80
+ the one `salesOrderId` (`soi.itemId <> vi.itemId` via `VendorItems`). Idempotent.
81
+ - **Phantom IFI:** the duplicate on the over-fulfilled line is the IFI with **no
82
+ `ItemFulfillmentItemUnits`, no `ItemFulfillmentItems_TrackingNumbers`, and nothing
83
+ mirroring it** (`upstreamItemFulfillmentItemId`). The legitimate line fulfillment is the
84
+ sibling IFI that has a real `Unit` and/or a downstream mirror (often in an auto-numbered
85
+ `F#####` IF rather than the SO-named IF). Delete the phantom guarded by
86
+ `id + salesOrderItemId + itemFulfillmentId + quantity`.
87
+ - These are pre-fix orders only (POs created before the 2026-06-11 guard). Cleanup is
88
+ one-time data, written as a dated `dbchanges2/Client_Compass/` file per order.
89
+ - ⚠ Not every over-fulfilled Compass line is this bug — high multipliers (5×–20×) seen on
90
+ other orders (e.g. SA114091 25→125) do not fit the split-PO 2× pattern and are a separate,
91
+ uninvestigated cause.
92
+
74
93
  ## Change history
94
+ - 2026-06-11 — Documented the over-fulfillment symptom and the phantom-IFI cleanup predicate;
95
+ remediated SA132657 and SA132641 (one dated dbchanges2 file each). (jcardinal)
75
96
  - 2026-06-11 — Guarded `postPost` SO↔PO item linking to MR orders only; SA links come solely
76
97
  from `prePost`'s `createdFromSalesOrderItem` remap. Fixes spurious cross-part links. (jcardinal)
77
98
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.61",
3
+ "version": "1.0.62",
4
4
  "description": "TOGA Technology Team Claude Knowledge System — shared AI coding harness with skills, knowledge base CLI, and project installer for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",