Skip to content

Epic: 11.0 major release — breaking-change batch + GA readiness #2364

Description

@os-zhuang

Goal: define and ship the next major version (11.0) as a deliberate, batched breaking-change + GA-readiness release.

Why this epic exists

Fixed-group packages are at 10.3.0; the 43 pending changesets are all minor/patch (0 major), so today's release would be 10.4.0. Majors in this project are triggered by breaking changes (e.g. 10.0.0 = ADR-0057 sys_department→sys_business_unit). Nothing currently forces 11.0 — it is a choice to batch the breaking cleanups + close GA gaps. This epic is the cut list. Each breaking item should ship with an additive migration (spec sync / os migrate, per #2186).

Status legend: ☐ todo · ◐ partial · ✅ done (verify & close)


A. Breaking batch — the "definition of 11.0" (core)

Each of these removes or changes an authored/public contract → belongs in a major. Pair each with a migration.

A1. Security "enforce-or-remove" (ADR-0049)

A2. Dead spec-surface removal (liveness ledger — ADR-0049)

  • field: remove aspirational nested configs that are author-facing no-ops — currencyConfig, vectorConfig, encryptionConfig, maskingRule, cached, dataQuality, fileAttachmentConfig (verify each), + naming-drift props (~39 dead of 73).
  • object: remove the dead versioning / partitioning / CDC tier props (~17 dead); decide apiEnabled (unenforced).
  • action / agent / skill / dataset: remove action.disabled (CEL ignored), action.type:'form' / shortcut / bulkEnabled; agent.access/permissions/visibility (chat route hardcodes); skill.triggerPhrases / skill.permissions; dataset.measures.certified.
  • decide experimental: agent.autonomy, tool.inputSchema → implement or mark deprecated-for-removal.

A3. Deprecated alias / API removals (verified still present)

  • flow node aliases http_request / http_call / webhook → canonical http (packages/spec/src/automation/flow.zod.ts:33); align FlowNodeAction enum with the live registry.
  • ADR-0041 — remove old plugin-trigger-record-change / plugin-trigger-schedule (new @objectstack/trigger-* already shipped).
  • client-react legacy query fields select/filters/sort/top/skipfields/where/orderBy/limit/offset.
  • remove HttpDispatcher class (replaced by createDispatcherPlugin()), UIServiceSchema, IDataEngine (→IDataDriver), legacy env-var aliases.
  • delete the stale plugin-dev stub still annotated "removed in v4.0.0" (we're at v10).

B. GA functional gaps (triaged — mostly objectui/cloud)


C. Unfinished ADRs

  • ADR-0028 — namespace isolation ((namespace,type,name) identity + physical-name derivation): prevents silent table-name collisions across co-installed packages. Identity change is itself breaking → good 11.0 fit.
  • ADR-0029 K3/K4 — kernel object decomposition finish + remove migration-era empty barrels (hygiene).
  • ADR-0017 has-many — RLS still client-enforced (security gap); backend enforcement before GA.
  • High-value, optional: ADR-0025 plugin install/consent loop, ADR-0027 authoring lifecycle orchestrator, ADR-0013 Slack inbound.
  • Backend-done / UI-pending (objectui): ADR-0007 Settings UI, ADR-0032 expression builders, ADR-0044 approval send-back designer.

Deferred by design (not blockers): ADR-0039 Track B, ADR-0010 NL→Flow, ADR-0031 BPMN, ADR-0026 client-UI plugins.


D. Release mechanics & quality (healthy)

  • changeset hygiene: fixed group (73 pkgs) consistent; cut major cleanly; wait for remote CI green, no --auto (per past tag-race).
  • confirm atomic tag push (fix(release): push version tags in one atomic push (avoid commit_refs race) #2195) still in place for the large fixed group.
  • quality baseline good: ~6 source TODOs (none blocking), minimal/intentional test skips, field-zoo xfail are deliberate watchdogs.

Cut checklist (Definition of Done for 11.0)

  1. A1–A3 breaking items landed, each with an additive migration.
  2. B gaps triaged → GA-required subset (likely portal + composer + notify proof) shipped; resolved ones ([P0] field-type: file field has no upload UI; no attachment_list type — attachments end-to-end blocked #1296) closed.
  3. ADR-0028 + 0029 K3/K4 + 0017 backend RLS merged.
  4. objectui/cloud surface PRs aligned & merged.
  5. changesets clean, fixed group consistent, remote CI green → tag 11.0.

Triage source: assessment + two verification passes (functional P0s #1292/#1295/#1296/#1293/#1294; security P0s #1882/#1883/#1886) on 2026-06-27.

Metadata

Metadata

Assignees

No one assigned

    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