Skip to content

ADR-0076: remaining objectql/protocol layering work (cross-repo window) #2462

Description

@os-zhuang

Tracking issue for the remaining work from ADR-0076 (objectql layering / protocol segmentation / honest capabilities).

Done (for context)

Remaining — all gated to a coordinated cross-repo window (framework + cloud + ../objectui), unless noted

  • D10 — distribute protocol implementations to domain packages. Data facade → transport; analytics/feed/realtime impls owned by their existing services (service-analytics/service-messaging/service-realtime); the metadata-management impl stays in @objectstack/metadata-protocol (name retained — OQ#7). Dissolve the central facade. Risk: med; cross-repo.
  • D11 — decompose the transport god-implementation. runtime/http-dispatcher.ts (~3.8k) + rest/rest-server.ts (~5.1k) → thin framework-agnostic port + per-domain normalized handlers (NOT framework-specific routes — keep multi-adapter). Confirm dispatcher↔rest-server overlap; validate multi-adapter by writing a 2nd IHttpServer adapter (thin Workers/Express) to prove the port is free of Hono-isms. Risk: high; cross-repo.
  • D12 — honest capabilities (fixes agents being misled by fake services). Standardize a stub/dev/fallback marker; make http-dispatcher svcAvailable respect it (report status:'stub'/handlerReady:false, never available); add the stub status to the discovery schema; update consumers (agents, console) to trust only real services. Mark the analytics fallback + plugin-dev stubs honestly — do not delete (no /analytics 404). Risk: med; cross-repo (console reads discovery.services). See OQ#11 (marker convention).
  • Step 2 — make the @objectstack/objectql package itself protocol-free. Turn the protocol wiring into a MetadataProtocolPlugin (capability plugin, like plugin-security); update framework boot sites + cloud's ~8 new ObjectQLPlugin() sites to also register it. Risk: high; breaking boot contract; cross-repo (cloud).
  • D7 — engine repo-split (trigger-gated). Only when the cross-package commit ratio of engine.ts/registry.ts (currently 88%) falls to a low, stable level. Track the metric in CI. Then extract on the objectui sibling-link model. Risk: high; deferred.
  • (optional, low-risk, any time) A1.5 — narrow consumers to the new sub-interfaces (e.g. data-only callers → DataProtocol), per the D9 incremental guidance.

Notes

Generated from the ADR-0076 kernel review.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions