feat(spec)!: remove the dead static capabilities-descriptor cluster - #3605
Merged
Conversation
…1878 family) The "RUNTIME CAPABILITIES PROTOCOL" tail of stack.zod.ts (ObjectQL/ObjectUI/ Kernel/ObjectStack CapabilitiesSchema + the deprecated ObjectOS alias + all five types, 214 lines) had zero consumers repo-wide: never authorable (defineStack has no such key), never registered, never fed any endpoint. Worse, the fixed-boolean self-portrait lied — fieldLevelSecurity/ rowLevelSecurity/auditLogging/backgroundJobs all default(false) while live and enforced, and odataApi never existed. Real capability discovery is dynamic: GET /api/v1/discovery (declared===enforced, #3298) + the /.well-known WellKnownCapabilitiesSchema contract + driver-level Driver/DatasourceCapabilities. - Delete the cluster + the four dead stack.test.ts describe blocks + the src/index.ts explicit re-exports + two now-orphan imports (ClusterCapabilityConfigSchema/FeatureFlagSchema — both modules stay, ApiEndpointSchema remains consumed by the stack `apis` key). - api-surface: 10 exports, pure removal. No manifest keys existed; no doc page was generated for them. - Changeset (minor) carries the dead-boolean → live-discovery migration table. objectui re-exports dropped in the companion PR. Verified: 6716 spec tests green, tsc clean, check:docs/api-surface/ skill-refs/react-blocks in sync, downstream-contract typecheck clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
📓 Docs Drift CheckThis PR changes 1 package(s): 104 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
… the feature-flags example The platform skill's os:check example imported ObjectStackCapabilities to type a system.features array — the descriptor this PR removes (and which no endpoint ever served). The example now shows only the live part (FeatureFlag.create compile-checked values) and the prose points capability discovery at GET /api/v1/discovery. Caught by check:skill-examples — my repo-wide grep excluded *.md and missed TS blocks inside skill docs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
os-zhuang
added a commit
that referenced
this pull request
Jul 27, 2026
…ture.zod) (#3630) * feat(spec)!: remove the orphaned FeatureFlagSchema module (kernel/feature.zod) Follow-through of #3605: kernel/feature.zod.ts (FeatureStrategy, FeatureFlagSchema, the FeatureFlag factory + types) had zero runtime consumers, and its only protocol home — the static ObjectStackCapabilities.system.features descriptor — was itself removed as dead in #3605. Not authorable (defineStack has no features key), not registered, not read by any engine. Live toggles are the feature_flags settings manifest (ADR-0007, OS_FEATURE_FLAGS_*) and the PUBLIC_AUTH_FEATURES registry for auth gates. - Delete feature.zod.ts + feature.test.ts; kernel/index export dropped with a removal note; manifest keys kernel/FeatureFlag + kernel/FeatureStrategy dropped; PROTOCOL_MAP row dropped; SKILL_MAP entry dropped (skill refs regenerated). - Docs: references/kernel/feature.mdx removed by regen; the hand-written quick-reference row removed; the platform skill's Feature Flags section rewritten to point at the settings surface; public-auth-features.ts "not to be confused" comment updated. - api-surface: 4 exports, pure removal. Changeset (minor) carries the removed-shape → settings-manifest migration table. Verified: 6663 spec tests green, tsc clean, check:docs/api-surface/ skill-refs/skill-docs/react-blocks/skill-examples all in sync, downstream-contract typecheck clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * test(dogfood): drop the removed feature.zod expression surface from the ADR-0058 ledger The expression-conformance ledger's cel-formula entry covered kernel/feature.zod.ts:expression — the surface vanished with the orphaned FeatureFlagSchema module, so the ADR-0060 checkLedger STALE-covers gate correctly failed Dogfood shard 2/2. Caught by the ledger, not by symbol grep: the entry references the file PATH, not the FeatureFlag symbol. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Same ADR-0056 D8 family as the AuditConfig prune (#3593), surfaced by its flagged follow-up (the
auditLoggingdead boolean led here). Umbrella #1878.What this is
The "RUNTIME CAPABILITIES PROTOCOL" tail of
stack.zod.ts(214 lines):ObjectQLCapabilitiesSchema/ObjectUICapabilitiesSchema/KernelCapabilitiesSchema/ObjectStackCapabilitiesSchema/ deprecatedObjectOSCapabilitiesSchemaalias + all five types — a static fixed-boolean self-portrait of the platform.Verified zero consumers (framework source, objectui apart from bare re-exports, cloud, downstream-contract): never authorable (
defineStackhas no such key), never registered, never fed any endpoint.Worse than dead — it lied.
fieldLevelSecurity/rowLevelSecurity/auditLogging/backgroundJobsalldefault(false)while every one is live and enforced;odataApiadvertised an API that has never existed. An AI reading this schema builds a systematically wrong model of the platform — the exact failure mode the metadata protocol exists to prevent.The live surfaces (declared === enforced):
GET /api/v1/discoverybuilds itscapabilitiesrecord dynamically — #3298 advertisestransactionalBatchonly when the route is mounted AND the engine supports transactions;/.well-knownhasWellKnownCapabilitiesSchema(spec/api); drivers haveDriver/DatasourceCapabilities(spec/data). The changeset carries the full dead-boolean → live-discovery migration table.Changes
stack.test.tsdescribe blocks +src/index.tsexplicit re-exports + two now-orphan imports (ClusterCapabilityConfigSchema/FeatureFlagSchema— both modules untouched;ApiEndpointSchemastays, consumed by the stackapiskey).@object-ui/typesre-exports (must land before objectui's next spec bump): objectstack-ai/objectui#chore/drop-capabilities-reexports.Verification
6716 spec tests green (incl. protocol-map link gate) ·
tsc --noEmitclean ·check:docs/check:api-surface/check:skill-refs/check:react-blocksin sync · downstream-contract typecheck clean.Refs #1878, #3593.
🤖 Generated with Claude Code