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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions