Skip to content

Commit c0f7e24

Browse files
os-support-aiclaude
andcommitted
docs(spec): correct the always-on slate's account of how cloud diverged (#3786)
The comment on PLATFORM_ALWAYS_ON_CAPABILITIES named `sms`, `messaging` and `analytics` as the hosted slate's gaps. Re-measured against cloud's actual wiring, `analytics` was never one: it is force-mounted through the host's `defaultRequires`. The error came from diffing the nearest list-shaped thing rather than what mounts. The array cited, `mountDefaultEnvironmentPlugins`' `ORDER`, has no production call site in cloud — so the diff compared against a list nobody reads, which is the same defect #3786 is about, committed while describing it. Cloud has no rival slate array. Its hosted set is assembled from the host's `defaultRequires` plus the loader's dependency patches, so the comparison has to be against effective wiring. Measured that way: `messaging` loads only when `audit` does, and `sms` has no provider package in that image. Comment only — no behaviour change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UXGj3Z5TmwSV6RK2oGc3cb
1 parent 5d93390 commit c0f7e24

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

‎packages/spec/src/kernel/platform-capabilities.ts‎

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,22 @@ export const PLATFORM_CAPABILITY_PROVIDERS: Readonly<Record<string, PlatformCapa
180180
* Published here rather than left on `Serve.ALWAYS_ON_CAPABILITIES` for the same
181181
* reason {@link PLATFORM_CAPABILITY_PROVIDERS} was: **more than one runtime
182182
* mounts this slate.** The CLI's `serve` builds one kernel per process; cloud's
183-
* objectos-runtime builds one per tenant environment and carried its own copy,
184-
* under a CLI comment that merely said such hosts "mirror this list". They had
185-
* already diverged — the hosted slate was missing `sms`, `messaging` and
186-
* `analytics` — so an app that worked under `objectstack serve` could lose
187-
* dataset previews and `notify` deliveries once hosted, silently, with no error
188-
* anywhere (cloud#925, framework#3786). A second list nobody checks is how that
189-
* happens; one exported list is how it stops.
183+
* objectos-runtime builds one per tenant environment, from its own wiring, under
184+
* a CLI comment that merely said such hosts "mirror this list" — a claim nothing
185+
* checked. An app that works under `objectstack serve` can therefore lose
186+
* capabilities once hosted, silently, with no error anywhere (cloud#925,
187+
* framework#3786). A second description nobody checks is how that happens; one
188+
* exported list is how it stops.
189+
*
190+
* On the shape of that divergence, since an earlier revision of this comment got
191+
* it wrong: cloud does not keep a rival slate ARRAY to diff against. Its hosted
192+
* set is assembled from the host's `defaultRequires` plus the capability
193+
* loader's dependency patches, so the comparison has to be against what actually
194+
* mounts, not against the nearest list-shaped thing. (The array this comment
195+
* once cited, `mountDefaultEnvironmentPlugins`' `ORDER`, has no production call
196+
* site — diffing it proved nothing.) Measured against the real wiring,
197+
* `analytics` IS force-mounted there and was never the gap; `messaging` loads
198+
* only when `audit` does; `sms` has no provider package in that image at all.
190199
*
191200
* This is the FLOOR, not the ceiling: a host may mount more (cloud adds
192201
* `observability`), and `objectstack serve --preset minimal` opts out entirely.

0 commit comments

Comments
 (0)