@odla-ai/cli 0.25.21 → 0.25.22

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
@@ -150,8 +150,38 @@ catalog, probes private services over bindings, and joins observed release
150
150
  identity with retained Cloudflare request/error/CPU/wall-time/memory evidence.
151
151
  Unavailable health, credentials, versions, or provider snapshots remain
152
152
  explicit rather than becoming zero; the document includes stable reason codes
153
- and exact next actions. Expected release and drift stay `unknown` until durable
154
- deployment receipt reads are added.
153
+ and exact next actions. The latest successful main deployment persists its
154
+ normalized receipt in Registry D1 after exact-version probes pass. Fleet status
155
+ therefore compares that verified expectation with the Worker answering now and
156
+ reports `matched`, `drifted`, or `unknown`; an empty or unavailable receipt
157
+ ledger degrades instead of silently treating observed health as intended state.
158
+
159
+ For repository-managed settings, compare checked-in intent with the live
160
+ owner-visible Registry projection before provisioning:
161
+
162
+ ```bash
163
+ npx odla-ai config diff --json
164
+ npx odla-ai config plan --json
165
+ ```
166
+
167
+ Both commands are read-only and request only a short-lived,
168
+ owner-approvable `app:config:read` capability. It opens only exact-id
169
+ `GET /registry/apps/<appId>` reads for apps the approver owns; app listing,
170
+ writes, PM, Discussions, directory access, data-plane delegation, and every
171
+ other Registry route remain closed. `diff` emits separate SHA-256 revisions for
172
+ desired and observed state, explicit `in_sync`, `different`, or `unmanaged`
173
+ status, field provenance, and a bounded coverage declaration. Runtime auth or
174
+ links omitted from project config stay visible as `unmanaged` rather than
175
+ being silently overwritten.
176
+
177
+ `plan` freezes those revisions plus ordered actions into a stable plan digest.
178
+ Enable/configure actions are dependency-first; proposed disablements are
179
+ dependent-first, high-risk, approval-required, and Studio-only. Conditional,
180
+ resumable `config apply` is intentionally not exposed yet. The plan names the
181
+ existing provision, rename, and Studio steps that can be reviewed separately,
182
+ and explicitly excludes schema, rules, integration seeds, credentials, vault
183
+ or Worker secrets, OAuth connection state, and opaque controller-assigned
184
+ service fields rather than claiming whole-system convergence.
155
185
 
156
186
  **Runbooks are procedure; JSDoc is API.** What a function takes, returns, and
157
187
  guarantees is documented on the export itself, ships in the installed
@@ -253,6 +283,8 @@ npx odla-ai whoami
253
283
  npx odla-ai setup
254
284
  npx odla-ai init --app-id my-app --name "My App"
255
285
  npx odla-ai doctor
286
+ npx odla-ai config diff --json
287
+ npx odla-ai config plan --json
256
288
  npx odla-ai calendar status --env dev
257
289
  npx odla-ai calendar calendars --env dev
258
290
  npx odla-ai calendar connect --env dev
package/REQUIREMENTS.md CHANGED
@@ -12,6 +12,12 @@ Agnacl, but none should mention or special-case Agnacl.
12
12
  - The CLI must validate that contract without network calls.
13
13
  - The CLI must show a dry-run plan before creating platform state or writing
14
14
  credentials.
15
+ - The CLI must compare checked-in Registry intent with live owner-visible
16
+ state through a short-lived exact read capability, emit separate stable
17
+ desired/observed revisions and provenance, distinguish unmanaged runtime
18
+ settings from drift, and freeze ordered secret-free actions into a plan
19
+ digest. It must disclose data-plane and secret coverage gaps and must not
20
+ expose apply until writes are conditional and resumable.
15
21
  - The CLI must treat platform registry and odla-db as separate endpoints. They
16
22
  may be the same in some deployments, but generated configs must not imply it.
17
23
  - If a platform or credential change is deterministic from `odla.config.mjs`,