toga-ai 1.0.88 → 1.0.89

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.
@@ -114,6 +114,15 @@ Compass Canada (`Model/Compass/Canada/`) is a separate sub-client. The Compass c
114
114
  - **Idempotency:** every tracking attach is guarded by a SELECT-before-POST on the bridge table,
115
115
  so re-POSTing the same ASN does not duplicate `ItemFulfillment(s|Items|ItemUnits)_TrackingNumbers`
116
116
  rows. New attach helpers depend on this — keep the guard if extending.
117
+ - **UUID is the reference field between helpers — never the API-returned `id` (refactored
118
+ 2026-06-15).** `internalApiRequest` create/lookup responses do **not** reliably include the
119
+ integer `id` (only `uuid`), so `resolveOrCreateItemFulfillment` / `createItemFulfillmentItem`
120
+ return `['uuid' => …]` only, and the in-method maps (`$trackingTargets`, keyed by IFI uuid;
121
+ `$packageTrackingByItemFulfillment`, keyed by IF uuid) are uuid-keyed. The integer PK needed
122
+ for a bridge-existence check is resolved **locally** inside each attach helper via
123
+ `SELECT id … WHERE uuid = '…'` (uuid run through `_Database::escape()`), mirroring the existing
124
+ `attachUnitTrackingIfMissing` pattern. When extending: pass uuids between helpers; resolve the
125
+ id only where a bridge `SELECT` needs it — do not reintroduce reliance on a returned `id`.
117
126
  - **Record 217 ACL gap (fixed 2026-06-11):** `AdvanceShippingNoticeItems_TrackingNumbers`
118
127
  (Record 217) had **zero** `AclRecordPermissions` and its `advanceShippingNoticeItemId`
119
128
  (RecordField 1440) / `trackingNumberId` (1441) fields had **zero** `AclFieldPermissions`,
@@ -137,6 +146,10 @@ Compass Canada (`Model/Compass/Canada/`) is a separate sub-client. The Compass c
137
146
 
138
147
  ## Change history
139
148
  Dated one-liners, newest first.
149
+ - 2026-06-15 — `postPost` + helpers refactored so **UUID is the reference field**, dropping all
150
+ reliance on the integer `id` returned from `internalApiRequest` (not always present). Helper
151
+ returns are uuid-only; `$trackingTargets`/`$packageTrackingByItemFulfillment` are uuid-keyed;
152
+ attach helpers resolve the bridge-check PK locally from the uuid. No behavior change. (jcardinal)
140
153
  - 2026-06-15 — `postPost` rewritten to reconcile ASN tracking onto **existing** fulfillment
141
154
  (not just newly-created IFs), idempotently; fixes lost tracking when the SO was fulfilled
142
155
  out-of-band before the ASN (e.g. SA132781). Confirmed NULL `unitId` is by-design for Office
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.88",
3
+ "version": "1.0.89",
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",