toga-ai 1.0.647 → 1.0.648

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.
@@ -139,11 +139,20 @@ drawer; focus moves into the composer on open and is restored to the opener on c
139
139
 
140
140
  ## Gotchas
141
141
 
142
- - **`api.togaiq.com` chat endpoints are origin/UA-gated.** `localhost:3000`,
143
- `bdr.dev.sandbox.togatech.com`, and the eventual production domain **must be
144
- allowlisted by the Talos backend owner**. Until they are, the drawer silently answers
145
- from the scripted fallback and looks like it works. Check for suggestion chips before
146
- concluding the backend is live.
142
+ - **`api.togaiq.com` chat endpoints are origin/UA-gated — verified 2026-08-25 with
143
+ browser-shaped `curl` probes:** from origin `http://localhost:3000` the whole flow
144
+ works end-to-end (token minted, real Sonnet reply with `suggestions`/`cta`/
145
+ `cited_slides`), so **local dev gets live answers**. From origin
146
+ `https://bdr.dev.sandbox.togatech.com` the session mint returns **`403 Forbidden`**
147
+ — the sandbox origin is **not allowlisted**, so the deployed drawer silently answers
148
+ from the scripted fallback and looks like it works. The eventual production domain
149
+ will need the same. **Fix = the Talos backend owner adds the origin to the
150
+ talos-chat allowlist (aegra-api); no BDR change.** CORS is not the problem
151
+ (preflight returns `access-control-allow-origin: *` with `authorization,content-type`
152
+ allowed; one 502 on a preflight was transient). Diagnose from the browser console:
153
+ `talos-chat unavailable, using scripted fallback: session mint failed: 403` = origin
154
+ not allowlisted; `...: Failed to fetch` = a CORS/preflight failure. Check for
155
+ suggestion chips before concluding the backend is live.
147
156
  - **Do not "fix" the transcript by sending the visible message list.** The greeting and
148
157
  any merged/trimmed turns would break the strict alternating shape and return a 422.
149
158
  - **The chat is fully client-side**, which is why `/landing` still builds as a
@@ -163,6 +172,10 @@ drawer; focus moves into the composer on open and is restored to the opener on c
163
172
  the developer's branch/commit go-ahead.
164
173
 
165
174
  ## Change history
175
+ - 2026-08-25 — Verified the origin gate with browser-shaped probes: `localhost:3000` is
176
+ allowed and returns live replies end-to-end; `bdr.dev.sandbox.togatech.com` gets 403 at
177
+ session mint (not allowlisted → deployed drawer runs on scripted fallback). Recorded the
178
+ console-message → cause mapping. (tcox)
166
179
  - 2026-08-24 — Initial doc. BUILT the `/landing` Talos chat drawer wired to the real
167
180
  campaign-chat backend: `ChatPanel.tsx` (right-anchored drawer ported from the security
168
181
  mockup), `lib/talosChat.ts` (fingerprint + 15-min session token + message-shape
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.647",
3
+ "version": "1.0.648",
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",