feat!: upgrade ObjectStack platform 14.7 → 16.0.0-rc.1 (spec 16)#457
Merged
Conversation
Bump all 11 @objectstack/* packages to 16.0.0-rc.1 (pinned exact for the RC), crossing the entire 15.x line. App → 2.2.0, manifest specVersion → ^16.0.0-rc.1. Breaking / behavioural changes migrated: - Drop `ai` from stack `requires`: ObjectStack 11.3.0 (ADR-0025 S2) removed @objectstack/service-ai from the open edition (AI runtime is cloud-only now), and under 16 `requires: ['ai']` is a fail-fast capability that hard-aborts boot when the package is absent. Agents/skills metadata still ship in the artifact; local open-edition boot omits the AI service. - The agent `visibility` removal (spec 15 / ADR-0056 D8) already landed on main via #449, so this branch (rebased onto it) is a no-op there. Dashboard fixes (found by rendering the app, not by `verify`): - dateRange picker now filters every widget query (ObjectStack 15, framework#2501); widgets on objects without the bound field (crm_account/contact/lead/product, no close_date) crashed with `no such column`. Opt them out via filterBindings: { dateRange: false }. - Remove non-functional dashboard header action buttons (Export PDF / Schedule Email / Customize / New-record / broken /reports links) from all 4 dashboards and the orphaned action-label translations from all 4 locale bundles. Toolchain: install under Node 22 (.nvmrc) — nanoid@6 engines + engine-strict reject the environment's odd-numbered Node 25. Verified: validate + typecheck + build + vitest (17/17) green; server boots (38 plugins); all 4 dashboards render with live seeded data and zero analytics/ console errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Upgrades the ObjectStack platform 14.7 → 16.0.0-rc.1 (crossing the entire 15.x line). App →
2.2.0, manifestspecVersion→^16.0.0-rc.1. All 11@objectstack/*packages pinned to the exact RC.Rebased onto current
main, so the agentvisibilityremoval (#449) is already present upstream and is a no-op here.Breaking / behavioural changes migrated
aifrom stackrequires. ObjectStack 11.3.0 (ADR-0025 S2) removed@objectstack/service-aifrom the open edition (AI runtime is cloud-only; last open-registry version is10.3.0). Under 16,requires: ['ai']is fail-fast —servehard-aborts boot when the package is absent, soobjectstack start/devbroke with[AI] required but @objectstack/service-ai is not installed. The AI metadata (2 agents + skills) still validates and ships in the artifact; a local open-edition boot simply omits the AI service. (Never caught before becauseverifynever boots.)Dashboard fixes (found by rendering the app, not by
verify)dateRangepicker crashed widgets on objects without the bound field. ObjectStack 15 (framework#2501) wired dashboard filters into every widget's analytics query. Executive/CRM binddateRangetoclose_date, which onlycrm_opportunityhas → widgets oncrm_account/crm_contact/crm_lead/crm_productfailed withSqliteError: no such column: close_date. Opted them out viafilterBindings: { dateRange: false }(5 on executive, 1 on crm). Sales (all-opportunity) and Service (dateRange: created_date, whichcrm_casehas) needed no change./reports/*links pointed at actions and routes that were never implemented (did nothing on click). Removedheader.actionsfrom all 4 dashboards + the orphaned action-label translations from all 4 locale bundles.Verification
validate+typecheck+build+vitest(17/17) green.Notes
.nvmrc) — a transitivenanoid@6engines.node+engine-strict=truereject the odd-numbered Node 25.🤖 Generated with Claude Code