toga-ai 1.0.907 → 1.0.908

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: feature
8
8
  status: active
9
- updated: 2026-09-16
9
+ updated: 2026-09-28
10
10
  owners: ["dfranks", "jcardinal", "mhammontree", "ajean", "bala", "apeterson"]
11
11
  files:
12
12
  - _underscore/Error.php
@@ -687,6 +687,10 @@ read you feed it — `_Error` promotes a *"read property on int"* warning into a
687
687
 
688
688
  ## Gotchas
689
689
 
690
+ - **`Logs.Issue` starts 2026-08-03 on prod — there are no rows before it.** The table went live with
691
+ that migration, so **any 500 older than 2026-08-03 has no Issue row at all**: looking its
692
+ `error.id` up returns nothing, and the `Logs.Api` row is the only record you get. An empty result
693
+ for an old error is the expected state, not a capture failure.
690
694
  - **⚠ A missing `Logs.Issue` column silently disables ALL error capture on that environment** —
691
695
  see the open defect above. Symptom: `identifiers.captureFailure` in the API response and nothing
692
696
  anywhere else.
@@ -6,7 +6,7 @@ project: _Underscore
6
6
  client: shared
7
7
  type: feature
8
8
  status: active
9
- updated: 2026-09-22
9
+ updated: 2026-09-28
10
10
  owners: [bala, tcox]
11
11
  files:
12
12
  - _underscore/Model/Client/Users/DelegatorUser.php
@@ -122,6 +122,19 @@ paging. Two hard rules in
122
122
  - **api2 does log 4xx rows** (59 × 403 on client-sandbox in the last 30 days), so a missing 403 in
123
123
  `Logs_<Client>.Api` means the call never happened or hit another environment — check the host
124
124
  before blaming the log.
125
+ - **⚠ `POST /v2/auth/delegator` 500s on a PUBLIC (logged-out) token — known, deliberately not
126
+ fixed.** `V2.php` L896 checks `property_exists($this->jwtPayload->id, 'delegator')`; when the
127
+ claim is absent the `else` reads `$this->jwtPayload->id->client->user->uuid` at **L903** with no
128
+ check that `user` exists. A public token's `id.client` is `{uuid, slug, roles, api}` and carries
129
+ **no `user` key**, so PHP raises *"Undefined property: stdClass::$user"* and the caller gets a
130
+ **500 `EO-1`** instead of a clean **401 `EN-3`**. The same file already guards this exact shape
131
+ ~50 lines lower (L952, the expired-token `elseif`: `property_exists($this->jwtPayload->id->client,
132
+ 'user')`) — L903 is the one place that does not. Reachable **with no login**. Evidence:
133
+ `Logs.Issue` reference **T2**, 6 occurrences in 11 s on 2026-09-04 and none since; the failing
134
+ token decoded out of `Logs.Api.requestHeaders` was slug `Compass_Usa`, roles `[1,3]`, `api`
135
+ present, no `user`. **Decision (2026-09-28, bala): leave it.** Dormant and low impact; add the
136
+ one-line guard returning `DEFINED_MESSAGE_ERROR_INVALID_ACCESS_TOKEN` next time someone is in
137
+ that block — do not open a ticket for it.
125
138
  - **Role 3 (API) cannot reach this record.** Its grant for record 362 was written into `Core`, but
126
139
  `aclDatabase = CLIENT` means Core rows are never consulted — so no integration can read or write
127
140
  `user-delegator-users` through api2 until the grant is mirrored into each `Client_*` DB.
@@ -154,6 +167,8 @@ paging. Two hard rules in
154
167
 
155
168
  ## Change history
156
169
 
170
+ - 2026-09-28 — Recorded the `/auth/delegator` public-token 500 at `V2.php` L903 (no `user` guard,
171
+ `Logs.Issue` T2) and the decision to leave it unfixed. (bala)
157
172
  - 2026-09-22 — Front end now switches the token, so the gate is live: recorded that
158
173
  `originalUserId` is still NULL on client-sandbox during a real Order For session, that the gate
159
174
  also returns 403 EZ-1 for admin View As of anyone off the list, and that api2 does log 4xx rows.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.907",
3
+ "version": "1.0.908",
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",