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
    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