Skip to content

Commit beb23c5

Browse files
os-zhuangclaude
andauthored
chore(release): 2.0.0 — ObjectStack 12 marketplace release (#436)
Version bump for the marketplace release of the ObjectStack 12 upgrade (merged in #434). Aligns every version surface and the compat range: - package.json 1.3.0 → 2.0.0 - objectstack.config.ts manifest.version 1.3.0 → 2.0.0 (bundle/in-app) - objectstack.manifest.json specVersion ^10.0.0 → ^12.0.0 (marketplace compat) - CHANGELOG: [2.0.0] entry documenting the ObjectStack 12 upgrade and the metadata-liveness migration (field trackHistory, dependsOn, flow runAs, aggregated dashboard tables). Major bump: the framework moves 11 → 12 and the metadata semantics change, though the app stays backward-compatible for CRM users. Verified: build 0 warnings, validate reports HotCRM v2.0.0, bundle manifest.version 2.0.0, typecheck clean, 17/17 unit tests, publish dry-run resolves version 2.0.0. Claude-Session: https://claude.ai/code/session_01VovNTQ8XsXsf7PtzCtJGf8 Co-authored-by: Claude <noreply@anthropic.com>
1 parent d13709d commit beb23c5

4 files changed

Lines changed: 16 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
All notable changes to HotCRM are documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); HotCRM follows [Semantic Versioning](https://semver.org/).
44

5+
## [2.0.0] — 2026-07-07
6+
7+
Platform upgrade to ObjectStack **12.3** — a major line bump. Manifest `specVersion` now declares `^12.0.0` (was `^10.0.0`); app version `2.0.0`. ObjectStack 12 introduces the **metadata-liveness** gate (ADR-0049): the compiler now emits an advisory warning for any authored property that is parsed but has no runtime consumer. This release migrates HotCRM off that dead surface so `pnpm build` / `pnpm dev` compile with **zero warnings**. Built, validated, type-checked, unit-tested (17/17), and browser-verified against `@objectstack/* ^12.3.0` (login → HotCRM app → Executive / Sales / Service / CRM Overview dashboards with live seeded data and the reworked aggregated tables; no console errors).
8+
9+
### Changed
10+
11+
- **ObjectStack platform → 12.3** across all `@objectstack/*` packages (from `10.0`).
12+
- **Field history migrated to `Field.trackHistory` (ADR-0052).** The object-level `enable.trackHistory` flag is dead in 12 (no runtime consumer); per-field history is now opt-in. Enabled on each object's key lifecycle / owner / amount fields (e.g. opportunity `stage`/`amount`/`owner`/`close_date`, case `status`/`priority`/`owner`).
13+
- **Dead object-level `enable.*` flags removed** (`trackHistory`, `files`, `feeds`, `activities`, `trash`, `mru`, `searchable`) from all 15 objects, keeping only the live API surface (`apiEnabled`/`apiMethods`).
14+
- **Constrained lookups use `dependsOn` instead of the dead `referenceFilters`.** On `crm_contract`, `crm_case`, `crm_quote` and `crm_opportunity` the primary-contact / opportunity pickers now actually scope their candidate query to the record's `crm_account` (the string[] `referenceFilters` form was never read by the picker).
15+
- **Scheduled flows declare `runAs: 'system'` (ADR-0049, #1888).** A schedule-triggered run has no trigger user, so under the default `runAs:'user'` its data nodes already executed unscoped; the 8 sweep flows now state the RLS-bypassing elevation explicitly.
16+
- **Dashboard record-listing tables reworked into aggregated breakdowns (ADR-0021).** Four `table` widgets were bound to analytics cubes but selected only a count measure with no dimension — rendering a single summary row, not the per-record list their columns implied. They are now real multi-row aggregations: *Pipeline by Owner* (CRM Overview), *Accounts by Industry* (Executive), *Open Pipeline by Owner* (Sales) and *My Open Cases by Priority* (Service), with widget ids and i18n keys updated across all four locales.
17+
518
## [1.3.0] — 2026-06-22
619

720
Platform upgrade to ObjectStack **10.0** — the first major line bump. Manifest `specVersion` now declares `^10.0.0` (was `^9.11.0`); app version `1.3.0`. The 10.0 metadata surface is **additive** for HotCRM except for one newly-enforced validation (below). Built, validated, type-checked, unit-tested (17/17), and browser-verified against `@objectstack/* ^10.0.0` (login → home → Executive Dashboard with live seeded data and lazy charts → Accounts list → record detail; no console errors, no failed requests).

objectstack.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export default defineStack({
3131
manifest: {
3232
id: 'app.objectstack.hotcrm',
3333
namespace: 'crm',
34-
version: '1.3.0',
34+
version: '2.0.0',
3535
type: 'app',
3636
name: 'HotCRM',
3737
description: 'AI-Native CRM for the ObjectStack marketplace — Accounts, Contacts, Leads, Opportunities, Cases, Knowledge, Forecasts, Campaigns, Contracts.',

objectstack.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schemas.objectstack.dev/template-manifest.json",
33
"name": "hotcrm",
4-
"specVersion": "^10.0.0",
4+
"specVersion": "^12.0.0",
55
"manifestId": "app.objectstack.hotcrm",
66
"displayName": "HotCRM",
77
"description": "AI-Native CRM for the ObjectStack marketplace — Accounts, Contacts, Leads, Opportunities, Cases, Knowledge, Forecasts, Campaigns, and Contracts in one production-grade workspace.",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hotcrm",
3-
"version": "1.3.0",
3+
"version": "2.0.0",
44
"description": "HotCRM - Production CRM built on ObjectStack",
55
"private": true,
66
"main": "./objectstack.config.ts",

0 commit comments

Comments
 (0)