You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
[P0][security] PolicySchema is 100% dead — enforce or remove #1882 — PolicySchema is 100% dead. Remove from spec (no runtime consumer; plugin-auth hardcodes session/password). Breaking (apps authoring Policy lose a no-op). Deprecation note + migration. (Triaged: STILL-DEAD.)
[P0][security] Role parent dead — manager-rollup unimplemented #1886 — role.parent enforcement dead. Either implement manager-rollup hierarchy walk in plugin-sharingteam-graph.tsor remove role.parent and point hierarchy at sys_business_unit. Breaking if removed. (Triaged: authoring-live, enforcement-dead.)
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)
PolicySchemais 100% dead. Remove from spec (no runtime consumer;plugin-authhardcodes session/password). Breaking (apps authoring Policy lose a no-op). Deprecation note + migration. (Triaged: STILL-DEAD.)role.parentenforcement dead. Either implement manager-rollup hierarchy walk inplugin-sharingteam-graph.tsor removerole.parentand point hierarchy atsys_business_unit. Breaking if removed. (Triaged: authoring-live, enforcement-dead.)permission.allow{Transfer,Restore,Purge}. Interim is OK (fail-closed gate exists, ops don't). Decide for 11.0: implement the ops + enforce (additive, non-breaking) or formally keep[experimental]. (Triaged: PARTIAL — not a blocker.)A2. Dead spec-surface removal (liveness ledger — ADR-0049)
currencyConfig,vectorConfig,encryptionConfig,maskingRule,cached,dataQuality,fileAttachmentConfig(verify each), + naming-drift props (~39 dead of 73).apiEnabled(unenforced).action.disabled(CEL ignored),action.type:'form'/ shortcut /bulkEnabled;agent.access/permissions/visibility(chat route hardcodes);skill.triggerPhrases/skill.permissions;dataset.measures.certified.agent.autonomy,tool.inputSchema→ implement or mark deprecated-for-removal.A3. Deprecated alias / API removals (verified still present)
http_request/http_call/webhook→ canonicalhttp(packages/spec/src/automation/flow.zod.ts:33); alignFlowNodeActionenum with the live registry.plugin-trigger-record-change/plugin-trigger-schedule(new@objectstack/trigger-*already shipped).select/filters/sort/top/skip→fields/where/orderBy/limit/offset.HttpDispatcherclass (replaced bycreateDispatcherPlugin()),UIServiceSchema,IDataEngine(→IDataDriver), legacy env-var aliases.plugin-devstub still annotated "removed in v4.0.0" (we're at v10).B. GA functional gaps (triaged — mostly objectui/cloud)
name#1295 — lookup cell display field:pickRecordDisplayNamesupportspreferredFieldbutLookupCellRenderercall sites never pass the target'sdisplayNameField. OPEN — small fix (objectui).LayoutDispatcherportal routing + auth middleware end-to-end. ◐ verify, then close. Incl. [portal] record detail URL scheme + share-link 协议(GAP-7 of #1294) #1337 (detail URL / share-link), [portal] action 完成后导航策略(onComplete + portal 级默认)(GAP-8 of #1294) #1338 (onComplete nav).filefield has no upload UI; noattachment_listtype — attachments end-to-end blocked #1296 —filefield upload: file type +FileFieldwidget (drag-drop/camera/progress) shipped. ✅ verifyattachment_listneed, then close.C. Unfinished ADRs
(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.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)
--auto(per past tag-race).xfailare deliberate watchdogs.Cut checklist (Definition of Done for 11.0)
filefield has no upload UI; noattachment_listtype — attachments end-to-end blocked #1296) closed.