Skip to content

feat(spec): segment ObjectStackProtocol into per-domain interfaces (ADR-0076 D9, step 1)#2429

Merged
os-zhuang merged 2 commits into
mainfrom
feat/protocol-segment-interfaces
Jun 28, 2026
Merged

feat(spec): segment ObjectStackProtocol into per-domain interfaces (ADR-0076 D9, step 1)#2429
os-zhuang merged 2 commits into
mainfrom
feat/protocol-segment-interfaces

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

First, lowest-risk implementation step of ADR-0076 D9: segment the 70-method, 11-domain ObjectStackProtocol god-interface into focused, exported per-domain contracts.

New exported interfaces in @objectstack/spec/api:
DataProtocol, MetadataProtocol, AnalyticsProtocol, AutomationProtocol, PackageProtocol, ViewProtocol, PermissionProtocol, WorkflowProtocol, RealtimeProtocol, NotificationProtocol, AiProtocol, I18nProtocol, FeedProtocol.

ObjectStackProtocol now extends all of them.

Why this is the safe first pick

  • Pure type-level, shape-preserving — the composed ObjectStackProtocol is identical in shape to the old flat interface, so every implementer (ObjectStackProtocolImplementation) and consumer (rest, objectql) is unaffected. Non-breaking.
  • No runtime change, no cloud impact, no package moves.
  • Foundational — establishes the contracts that D10 (distribute impls) and D11 (transport) build on. Implementation-level moves stay deferred to the cross-repo window.

New code can now depend on the narrowest slice (e.g. DataProtocol). Per D9 (rev.7) the composed union is transitional; runtime capability availability comes from the discovery services registry.

Verification

  • turbo build (spec + rest + metadata-protocol + objectql) green incl. DTSimplements ObjectStackProtocol still satisfied; consumers compile unchanged.
  • @objectstack/spec suite: 243 files / 6602 tests pass.

🤖 Generated with Claude Code

…rfaces (ADR-0076 D9)

Split the 70-method, 11-domain ObjectStackProtocol god-interface into focused,
exported per-domain contracts (DataProtocol, MetadataProtocol, AnalyticsProtocol,
AutomationProtocol, PackageProtocol, ViewProtocol, PermissionProtocol,
WorkflowProtocol, RealtimeProtocol, NotificationProtocol, AiProtocol,
I18nProtocol, FeedProtocol). ObjectStackProtocol now `extends` all of them —
shape-identical to the old flat interface, so non-breaking.

This is the lowest-risk, foundational step of ADR-0076 D9: pure type-level,
shape-preserving, no runtime change. Consumers can now depend on the narrowest
slice (e.g. DataProtocol). The composed union is transitional (D9 rev.7).

Verified: turbo build (spec + rest + metadata-protocol + objectql) green incl.
DTS — the impl class still satisfies `implements ObjectStackProtocol`; spec
suite 243 files / 6602 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 28, 2026 3:15pm

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tooling size/m labels Jun 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

90 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/cloud-artifact-api.mdx (via packages/spec)
  • content/docs/concepts/cluster-semantics.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/implementation-status.mdx (via @objectstack/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/concepts/packages.mdx (via @objectstack/spec)
  • content/docs/concepts/setup-app.mdx (via @objectstack/spec)
  • content/docs/concepts/skills.mdx (via @objectstack/spec)
  • content/docs/concepts/webhook-delivery.mdx (via @objectstack/spec)
  • content/docs/getting-started/architecture.mdx (via @objectstack/spec)
  • content/docs/getting-started/cli.mdx (via @objectstack/spec)
  • content/docs/getting-started/core-concepts.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/guides/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/guides/ai-capabilities.mdx (via @objectstack/spec)
  • content/docs/guides/airtable-dashboard-analysis.mdx (via @objectstack/spec)
  • content/docs/guides/analytics-datasets.mdx (via @objectstack/spec)
  • content/docs/guides/api-reference.mdx (via @objectstack/spec)
  • content/docs/guides/business-logic.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/error-catalog.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/field-type-gallery.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/field-validation-rules.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/protocol-diagram.mdx (via packages/spec)
  • content/docs/guides/cheatsheets/query-cheat-sheet.mdx (via @objectstack/spec)
  • content/docs/guides/cheatsheets/quick-reference.mdx (via @objectstack/spec)
  • content/docs/guides/client-sdk.mdx (via @objectstack/spec)
  • content/docs/guides/common-patterns.mdx (via @objectstack/spec)
  • content/docs/guides/contracts/auth-service.mdx (via packages/spec)
  • content/docs/guides/contracts/cache-service.mdx (via packages/spec)
  • content/docs/guides/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/guides/contracts/index.mdx (via @objectstack/spec)
  • content/docs/guides/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/guides/contracts/storage-service.mdx (via packages/spec)
  • content/docs/guides/data-modeling.mdx (via @objectstack/spec)
  • content/docs/guides/driver-configuration.mdx (via @objectstack/spec)
  • content/docs/guides/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/guides/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/guides/external-datasources.mdx (via @objectstack/spec)
  • content/docs/guides/formula.mdx (via @objectstack/spec)
  • content/docs/guides/hook-bodies.mdx (via packages/spec)
  • content/docs/guides/kernel-services.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/dashboard.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/field.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/flow.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/index.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/object.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/validation.mdx (via @objectstack/spec)
  • content/docs/guides/metadata/workflow.mdx (via @objectstack/spec)
  • content/docs/guides/packages.mdx (via @objectstack/spec)
  • content/docs/guides/plugin-development.mdx (via @objectstack/spec)
  • content/docs/guides/plugins.mdx (via @objectstack/spec)
  • content/docs/guides/project-scoping.mdx (via @objectstack/spec)
  • content/docs/guides/public-forms.mdx (via @objectstack/spec)
  • content/docs/guides/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/guides/runtime-services/index.mdx (via packages/spec)
  • content/docs/guides/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/guides/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/guides/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/guides/security.mdx (via @objectstack/spec)
  • content/docs/guides/seed-data.mdx (via @objectstack/spec)
  • content/docs/guides/skills.mdx (via @objectstack/spec)
  • content/docs/guides/standards.mdx (via @objectstack/spec)
  • content/docs/guides/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/guides/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectos/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/objectos/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/objectos/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/objectos/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/objectos/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via packages/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via packages/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

…l interfaces

The api-surface ratchet flagged 13 additive exports (0 breaking) from the
ObjectStackProtocol segmentation. Regenerated the committed snapshot.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit d0f4b13 into main Jun 28, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the feat/protocol-segment-interfaces branch June 28, 2026 15:23
os-zhuang added a commit that referenced this pull request Jun 28, 2026
…ta-protocol name; no rename) (#2431)

Per maintainer decision: keep the already-published `@objectstack/metadata-protocol`
package name. Renaming churns downstream for ~0 benefit. The `protocol` suffix is a
deliberate, low-cost naming exception — the real contract lives in
`@objectstack/spec/api`, not the impl package.

- D10: replace the "rename → metadata-runtime" clause with "name retained; content
  converges to the metadata-management impl".
- Open Question #7: resolved (keep the name; README note to clarify impl-vs-contract).
- Status: rev.8; notes D9 step-1 (interface segmentation) shipped in #2429.

Docs only; empty changeset.

Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant