Skip to content

Commit 217e2e6

Browse files
os-zhuangclaude
andauthored
refactor(spec)!: remove the Dev Mode Plugin Protocol family — declared, never implemented, taught the retired stub design (#4149) (#4155)
DevPluginConfigSchema, DevServiceOverrideSchema, DevFixtureConfigSchema, DevToolsConfigSchema and DevPluginPreset leave @objectstack/spec/kernel outright: zero consumers, no load path parsed them, and the strategy:'stub' vocabulary recommended the design ADR-0115 retired. Deliberately no tombstone and no conversion (nothing can author the keys — the DynamicLoadingConfig precedent); baselines dropped in the same PR, v17 dead-clusters table extended. Closes #4149. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BEM82RNKyyyTNPYHK1VJJS
1 parent 6038de7 commit 217e2e6

11 files changed

Lines changed: 54 additions & 656 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
"@objectstack/spec": major
3+
---
4+
5+
refactor(spec)!: remove the Dev Mode Plugin Protocol family — a declared dev protocol nothing implemented, whose stub vocabulary described the design ADR-0115 retired (#4149)
6+
7+
`DevPluginConfigSchema`, `DevServiceOverrideSchema`, `DevFixtureConfigSchema`,
8+
`DevToolsConfigSchema` and `DevPluginPreset` (`@objectstack/spec/kernel`,
9+
dev-plugin.zod) are removed outright. The family declared a full dev-mode
10+
configuration protocol — presets (minimal/standard/full), fixture loading, a
11+
dev-tools dashboard on port 4400, per-service `mock`/`memory`/`stub`/
12+
`passthrough` strategies, simulated latency — and none of it ever existed:
13+
14+
- **Zero consumers.** `@objectstack/plugin-dev` reads its own
15+
`DevPluginOptions` interface and never imported these schemas; no other
16+
package did either. The only references were the generated artifacts and the
17+
family's own shape test.
18+
- **No load path parsed it.** `stack.devPlugins` takes
19+
`ManifestSchema | string` (plugin manifests/names), not this config — so no
20+
authored source can carry these keys, which is why there is deliberately NO
21+
`retiredKey()` tombstone and NO ADR-0087 conversion: a prescription nobody
22+
can receive is noise, and there is no source for `os migrate meta` to
23+
rewrite (the `plugin-runtime.zod.ts` DynamicLoadingConfig precedent, #3950).
24+
- **Its vocabulary contradicted the platform.** `strategy: 'stub'` taught the
25+
fill-the-slot-with-a-fake design that ADR-0115 retired; keeping the schema
26+
meant the spec recommending what the runtime forbids.
27+
28+
FROM → TO: if you imported any of the five types from
29+
`@objectstack/spec/kernel`, delete the import — there is nothing to migrate to,
30+
because nothing ever consumed the values. To configure local development, use
31+
`DevPluginOptions` from `@objectstack/plugin-dev` (port, seedAdminUser,
32+
authSecret, per-part `services` toggles, extraPlugins, stack).
33+
34+
The retirement kit: baselines dropped deliberately (`json-schema.manifest.json`
35+
minus the five `kernel/Dev*` entries; `authorable-surface.json` minus the 22
36+
`kernel/Dev*` lines — nothing can author them, so no `[RETIRED]` markers);
37+
`api-surface.json` regenerated (the five exports leave the public surface);
38+
generated reference doc removed by `gen:docs`; v17 release notes' dead-clusters
39+
table extended. No liveness-ledger entries existed (the ledger tracks metadata
40+
types; this was never one).
41+
42+
No runtime behaviour changes — that impossibility is the reason for the removal.

content/docs/references/kernel/dev-plugin.mdx

Lines changed: 0 additions & 130 deletions
This file was deleted.

content/docs/references/kernel/index.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ This section contains all protocol schemas for the kernel layer of ObjectStack.
1010
<Card href="/docs/references/kernel/cluster" title="Cluster" description="Source: packages/spec/src/kernel/cluster.zod.ts" />
1111
<Card href="/docs/references/kernel/context" title="Context" description="Source: packages/spec/src/kernel/context.zod.ts" />
1212
<Card href="/docs/references/kernel/dependency-resolution" title="Dependency Resolution" description="Source: packages/spec/src/kernel/dependency-resolution.zod.ts" />
13-
<Card href="/docs/references/kernel/dev-plugin" title="Dev Plugin" description="Source: packages/spec/src/kernel/dev-plugin.zod.ts" />
1413
<Card href="/docs/references/kernel/execution-context" title="Execution Context" description="Source: packages/spec/src/kernel/execution-context.zod.ts" />
1514
<Card href="/docs/references/kernel/manifest" title="Manifest" description="Source: packages/spec/src/kernel/manifest.zod.ts" />
1615
<Card href="/docs/references/kernel/metadata-customization" title="Metadata Customization" description="Source: packages/spec/src/kernel/metadata-customization.zod.ts" />

content/docs/references/kernel/meta.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
"cli-extension",
2626
"cluster",
2727
"context",
28-
"dev-plugin",
2928
"execution-context",
3029
"metadata-customization",
3130
"metadata-loader",

content/docs/releases/v17.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,7 @@ import or the authored key.
806806
| `AuditConfig` cluster (`@objectstack/spec/system`) | dead since #1878 |
807807
| Capabilities-descriptor cluster (`ObjectQL`/`ObjectUI`/`Kernel`/`ObjectStack`/`ObjectOS CapabilitiesSchema`) | static snapshots superseded by runtime discovery |
808808
| `FeatureFlagSchema` (`kernel` feature.zod) | orphaned module |
809+
| `DevPluginConfigSchema` cluster (`kernel` dev-plugin.zod`DevServiceOverride` / `DevFixtureConfig` / `DevToolsConfig` / `DevPluginPreset`) | a declared dev-mode protocol (presets, fixtures, dev-tools dashboard, per-service mock/stub strategies, simulated latency) nothing implemented and no load path parsed`@objectstack/plugin-dev` reads its own `DevPluginOptions`, and the `strategy: 'stub'` vocabulary described the dev-stub design ADR-0115 retired (#4149) |
809810
| `SkillSchema.permissions` | never gated anything (#3686) |
810811
| `tool.requiresConfirmation` | a safety flag nothing enforced (#3715) |
811812
| `object.enable.trash` / `enable.mru` | ADR-0049 enforce-or-remove close-out (#2377) |

packages/spec/api-surface.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1421,16 +1421,6 @@
14211421
"DependencyStatusEnum (const)",
14221422
"DeprecationNotice (type)",
14231423
"DeprecationNoticeSchema (const)",
1424-
"DevFixtureConfig (type)",
1425-
"DevFixtureConfigSchema (const)",
1426-
"DevPluginConfig (type)",
1427-
"DevPluginConfigInput (type)",
1428-
"DevPluginConfigSchema (const)",
1429-
"DevPluginPreset (type)",
1430-
"DevServiceOverride (type)",
1431-
"DevServiceOverrideSchema (const)",
1432-
"DevToolsConfig (type)",
1433-
"DevToolsConfigSchema (const)",
14341424
"DisablePackageRequest (type)",
14351425
"DisablePackageRequestSchema (const)",
14361426
"DisablePackageResponse (type)",

packages/spec/authorable-surface.json

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"description": "Ratchet of every AUTHORABLE key in the spec what a metadata author may write, which for this platform IS the third-party API. Auto-updated on additions (commit the change). A key that disappears without a tombstone fails gen:schema, because these schemas are not .strict() and Zod would silently strip it. \"[RETIRED]\" marks a tombstoned key that still rejects with an upgrade prescription. See #3855, ADR-0059 §5.",
2+
"description": "Ratchet of every AUTHORABLE key in the spec \u2014 what a metadata author may write, which for this platform IS the third-party API. Auto-updated on additions (commit the change). A key that disappears without a tombstone fails gen:schema, because these schemas are not .strict() and Zod would silently strip it. \"[RETIRED]\" marks a tombstoned key that still rejects with an upgrade prescription. See #3855, ADR-0059 \u00a75.",
33
"keys": [
44
"ai/AIModelConfig:maxTokens",
55
"ai/AIModelConfig:model",
@@ -4598,28 +4598,6 @@
45984598
"kernel/DeprecationNotice:migrationPath",
45994599
"kernel/DeprecationNotice:reason",
46004600
"kernel/DeprecationNotice:removeIn",
4601-
"kernel/DevFixtureConfig:enabled",
4602-
"kernel/DevFixtureConfig:envFilter",
4603-
"kernel/DevFixtureConfig:paths",
4604-
"kernel/DevFixtureConfig:resetBeforeLoad",
4605-
"kernel/DevPluginConfig:fixtures",
4606-
"kernel/DevPluginConfig:open",
4607-
"kernel/DevPluginConfig:port",
4608-
"kernel/DevPluginConfig:preset",
4609-
"kernel/DevPluginConfig:seedAdminUser",
4610-
"kernel/DevPluginConfig:services",
4611-
"kernel/DevPluginConfig:simulatedLatency",
4612-
"kernel/DevPluginConfig:tools",
4613-
"kernel/DevServiceOverride:config",
4614-
"kernel/DevServiceOverride:enabled",
4615-
"kernel/DevServiceOverride:service",
4616-
"kernel/DevServiceOverride:strategy",
4617-
"kernel/DevToolsConfig:apiDocs",
4618-
"kernel/DevToolsConfig:dbExplorer",
4619-
"kernel/DevToolsConfig:hotReload",
4620-
"kernel/DevToolsConfig:mailCatcher",
4621-
"kernel/DevToolsConfig:requestInspector",
4622-
"kernel/DevToolsConfig:verboseLogging",
46234601
"kernel/DisablePackageRequest:id",
46244602
"kernel/DisablePackageResponse:message",
46254603
"kernel/DisablePackageResponse:package",

packages/spec/json-schema.manifest.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"description": "Ratchet manifest of every JSON Schema emitted by scripts/build-schemas.ts. Auto-appended when new schemas are added (commit the change). A listed schema that a build no longer emits fails gen:schema remove a key ONLY for a deliberate retirement. See #2978.",
2+
"description": "Ratchet manifest of every JSON Schema emitted by scripts/build-schemas.ts. Auto-appended when new schemas are added (commit the change). A listed schema that a build no longer emits fails gen:schema \u2014 remove a key ONLY for a deliberate retirement. See #2978.",
33
"schemas": [
44
"ai/AIModelConfig",
55
"ai/AIUsageRecord",
@@ -957,11 +957,6 @@
957957
"kernel/DependencyResolutionResult",
958958
"kernel/DependencyStatusEnum",
959959
"kernel/DeprecationNotice",
960-
"kernel/DevFixtureConfig",
961-
"kernel/DevPluginConfig",
962-
"kernel/DevPluginPreset",
963-
"kernel/DevServiceOverride",
964-
"kernel/DevToolsConfig",
965960
"kernel/DisablePackageRequest",
966961
"kernel/DisablePackageResponse",
967962
"kernel/DistributedStateConfig",

0 commit comments

Comments
 (0)