toga-ai 1.0.878 → 1.0.879
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.
|
@@ -6,7 +6,7 @@ project: _Underscore
|
|
|
6
6
|
client: shared
|
|
7
7
|
type: architecture
|
|
8
8
|
status: active
|
|
9
|
-
updated: 2026-09-
|
|
9
|
+
updated: 2026-09-23
|
|
10
10
|
owners: ["jcardinal", "rgirish", "mhammontree", "ajean"]
|
|
11
11
|
files:
|
|
12
12
|
- _underscore/_underscore.php
|
|
@@ -371,6 +371,7 @@ multi-file UI components (`.php`/`.html`/`.css`/`.js`) invoked as `<_ComponentNa
|
|
|
371
371
|
|
|
372
372
|
## Gotchas
|
|
373
373
|
|
|
374
|
+
- **⚠ `_Environment::isDebugMode()` (Environment.php) returns TRUE when the `[_underscore]` config group is missing** (fail-safe to debug). Anything gated on it silently turns off in a prod config lacking the group — e.g. worker2 NetSuite order sends return `skippedDebugMode` and still record success. Prod must set `[_underscore]` with debug off. See [NetSuite sales-order push](../worker2/features/netsuite-salesorder-outbound-push.md).
|
|
374
375
|
- **`FIELD_STORAGE` writes were silently dropped platform-wide (fixed 2026-07, `Model.php`).** Two
|
|
375
376
|
bugs: (a) `buildSqlFieldValue()` read the field via `$this->$field`, which for a storage field
|
|
376
377
|
triggers `__get()` → a disk/S3 **refetch** that overwrote the just-assigned value before `save()`
|
|
@@ -6,8 +6,8 @@ project: Worker
|
|
|
6
6
|
client: shared
|
|
7
7
|
type: feature
|
|
8
8
|
status: active
|
|
9
|
-
updated: 2026-09-
|
|
10
|
-
owners: ["bala"]
|
|
9
|
+
updated: 2026-09-23
|
|
10
|
+
owners: ["bala", "jcardinal"]
|
|
11
11
|
files:
|
|
12
12
|
- worker2/Worker/Netsuite/SalesOrder.php
|
|
13
13
|
- test/@Bala/tests/netsuite_salesorder_payload_tests.php
|
|
@@ -89,6 +89,14 @@ Flow:
|
|
|
89
89
|
The internalId is written back to `SalesOrders.c_netsuiteInternalSalesOrderId` by the shared
|
|
90
90
|
`writeBackNetSuiteId()` (three paths now save it).
|
|
91
91
|
7. `dryRun = true` builds and returns the payload without calling NetSuite.
|
|
92
|
+
8. **Non-prod send guard (2026-09-23).** `doCreate`/`doUpdate` check `_Environment::isDebugMode()`
|
|
93
|
+
after the dry-run return, before any NetSuite read/write or Toga write-back; if true they return
|
|
94
|
+
`{"action":"skippedDebugMode","intendedAction":"create|update","salesOrderUuid":…}`
|
|
95
|
+
(`buildDebugModeSkipResult()`). Covers CreateNetSuite, CreateNetSuiteFromTransferOrder,
|
|
96
|
+
UpdateNetSuite, Sync (all funnel through doCreate/doUpdate). Job records success. `dryRun` still
|
|
97
|
+
runs in debug mode. Inbound webhooks unaffected. Why: only one NetSuite env (prod); non-prod
|
|
98
|
+
worker2 was sending orders to it. Callers: `_underscore` Model/Client/TransferOrder.php,
|
|
99
|
+
Model/Adyen/SalesOrder.php, Model/Elite/SalesOrder.php via `_Worker::runTask`.
|
|
92
100
|
|
|
93
101
|
### The shared builder now serves two order types — the changes were additive and defaulted
|
|
94
102
|
|
|
@@ -230,6 +238,10 @@ the transfer-order work.
|
|
|
230
238
|
|
|
231
239
|
## Gotchas
|
|
232
240
|
|
|
241
|
+
- **⚠ `_Environment::isDebugMode()` returns TRUE when the `[_underscore]` config group is missing**
|
|
242
|
+
(fail-safe to debug). A prod config missing that group, or with debug on, silently stops ALL
|
|
243
|
+
NetSuite order sends — jobs still show success with `skippedDebugMode`. Prod must set
|
|
244
|
+
`[_underscore]` with debug off. Seeing `skippedDebugMode` in prod `WorkerJobs` = config problem.
|
|
233
245
|
- **⚠ Still unverified: can SuiteQL FILTER on `transaction.externalid` in this account?** A `created`
|
|
234
246
|
result **cannot distinguish** *"the lookup ran and found nothing"* from *"the lookup is broken and
|
|
235
247
|
always finds nothing."* This project has already hit a NetSuite column that could be `SELECT`ed but
|
package/package.json
CHANGED