@odla-ai/cli 0.25.23 → 0.26.1

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.
package/README.md CHANGED
@@ -156,6 +156,25 @@ therefore compares that verified expectation with the Worker answering now and
156
156
  reports `matched`, `drifted`, or `unknown`; an empty or unavailable receipt
157
157
  ledger degrades instead of silently treating observed health as intended state.
158
158
 
159
+ Platform maintainers can rotate the built-in Discussion responder without
160
+ minting an unrestricted app key or exposing the replacement in argv/output:
161
+
162
+ ```bash
163
+ npx @odla-ai/cli platform chat-credentials rotate \
164
+ --wrangler-config packages/chat-agent/wrangler.jsonc \
165
+ --expected-version <deployed-chat-version-id> \
166
+ --email <odla-admin-account> \
167
+ --yes --json
168
+ ```
169
+
170
+ The command requests only `platform:chat:credential:write`, mints an
171
+ `agent_odla` key restricted to the Discussion namespaces and write envelope,
172
+ pipes the nested `ODLA_BOT_TOKENS` map to Wrangler over stdin, and succeeds only
173
+ after the service-binding health bridge advances from the pre-rotation Worker
174
+ version to a healthy secret-change deployment. `--expected-version` fences the
175
+ pre-rotation version before any credential is minted. Superseded keys are
176
+ revoked separately after that health proof.
177
+
159
178
  For repository-managed settings, compare checked-in intent with the live
160
179
  owner-visible Registry projection before provisioning:
161
180
 
@@ -192,7 +211,11 @@ resume the same durable journal entry, while the Registry CAS revision rejects
192
211
  stale state.
193
212
 
194
213
  Apply prints the operation receipt, including ordered step attempts and its
195
- Studio recovery URL. `operations get` reads one exact id without replaying it;
214
+ canonical environment-settings recovery URL. Studio preserves the exact
215
+ operation id in that URL and renders the matching
216
+ `operations get <id> --json` recovery command. Plans that require Studio now
217
+ link to the explicit app/environment settings scope instead of an ambiguous
218
+ app-level Settings page. `operations get` reads one exact id without replaying it;
196
219
  `operations wait` polls that id for 60 seconds by default (`--timeout` and
197
220
  `--interval` are explicit seconds). A still-running bounded wait exits 75 after
198
221
  printing its last receipt. Every terminal receipt is independently
@@ -227,7 +250,10 @@ npx @odla-ai/cli runbook edit db --note "retract replaced the null write"
227
250
 
228
251
  Platform runbook edits need admin or the `platform:runbook:write` capability,
229
252
  which the CLI requests for you; a plain handshake token is never admin by
230
- design, and `odla-ai whoami` reports what this terminal actually holds.
253
+ design. `odla-ai whoami` reports the actual credential-bound principal by
254
+ friendly name, handle, and kind; an agent's manager; the credential kind; and
255
+ the accountable human owner separately. Manager metadata explains organization
256
+ but never grants authority.
231
257
 
232
258
  **Is the corpus itself still true?**
233
259
 
@@ -503,6 +529,10 @@ claimable Studio request, and the public start/poll shape intentionally does not
503
529
  reveal whether an account exists. The signed-in matching user must explicitly
504
530
  review the exact code before it becomes pending, and only one claimed pending
505
531
  or approved-but-uncollected request can be active for that user.
532
+ For an ordinary request, Studio also requires at least one exact project
533
+ selection. The credential receives project metadata, PM, discussion, and
534
+ brand-candidate editing grants only for those projects, never ambient owner
535
+ access, app administration, or brand approval.
506
536
 
507
537
  Developer grants are tracked by id, owner, label, scopes, creation/expiry,
508
538
  last use, and revocation state. The plaintext token is delivered once to the