From 0c95ca46f90ce9a1c928f7b05db53026066de585 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 15:23:58 +0000 Subject: [PATCH 1/4] docs(changeset): the 4.0.1 entry says it is the first 4.x that installs whole 4.0.0's marketplace listing was withdrawn and production never had it, so 4.0.1 is the first 4.x an installer upgrades to from 3.1.0. The listing notes for a release without a major are the head of its CHANGELOG section, so this entry's first paragraph now says so in plain words and carries 4.0.0's one-time contact mailing-address conversion (the backfill script before `os migrate apply --allow-destructive`), pointing at the 4.0.0 entry for the commands. Text only; the bump level stays patch. Claude-Session: https://claude.ai/code/session_012zh91QzFgePbkmuHnugLN3 Co-authored-by: Claude --- .changeset/2053-publish-flat-bundle.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.changeset/2053-publish-flat-bundle.md b/.changeset/2053-publish-flat-bundle.md index e4d409c9..e08a029e 100644 --- a/.changeset/2053-publish-flat-bundle.md +++ b/.changeset/2053-publish-flat-bundle.md @@ -2,11 +2,13 @@ 'hotcrm': patch --- -The marketplace now receives the whole app +**4.0.1 is the first 4.x release that installs whole.** HotCRM 4.0.0's marketplace publish +carried an empty app and was withdrawn, so an installer upgrades from 3.x straight to 4.0.1. +That upgrade still carries 4.0.0's one-time step: convert the contact mailing addresses with +`scripts/backfill-contact-mailing-address.ts` before `os migrate apply --allow-destructive`. +The 4.0.0 entry of `CHANGELOG.md` holds the commands. -HotCRM 4.0.0's marketplace publish carried an empty app: no objects, views, -dashboards, flows or sample data reached the marketplace, so a hosted install -of 4.0.0 had nothing to show. 4.0.1 publishes the whole app, including the -Cases, Knowledge and Service Overview entries in the app's navigation, and the -publish now stops with an error instead of uploading an app that is missing -any of its objects. +4.0.0's empty app had no objects, views, dashboards, flows or sample data, so a hosted +install of it had nothing to show. 4.0.1 publishes the whole app, including the Cases, +Knowledge and Service Overview entries in the app's navigation, and the publish now stops +with an error instead of uploading an app that is missing any of its objects. From f0fd6695c3d25e5aa8a8dfb34cda7194f50cd509 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 15:24:18 +0000 Subject: [PATCH 2/4] chore(release): 4.0.1 `pnpm changeset:version` consumed the 2 pending changesets (2 patch: 2051-inline-logo, 2053-publish-flat-bundle) and computed 4.0.0 -> 4.0.1: it wrote `package.json` and spliced the 4.0.1 section into `CHANGELOG.md` (+16 lines; every byte from `## 4.0.0` down unchanged). Each entry is stamped with the main commit that added its changeset: 4547858 (#2055) and d7decd4 (#2054). Claude-Session: https://claude.ai/code/session_012zh91QzFgePbkmuHnugLN3 Co-authored-by: Claude --- .changeset/2051-inline-logo.md | 5 ----- .changeset/2053-publish-flat-bundle.md | 14 -------------- CHANGELOG.md | 16 ++++++++++++++++ package.json | 2 +- 4 files changed, 17 insertions(+), 20 deletions(-) delete mode 100644 .changeset/2051-inline-logo.md delete mode 100644 .changeset/2053-publish-flat-bundle.md diff --git a/.changeset/2051-inline-logo.md b/.changeset/2051-inline-logo.md deleted file mode 100644 index 1cbf6e7b..00000000 --- a/.changeset/2051-inline-logo.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'hotcrm': patch ---- - -The sidebar logo and favicon now show on hosted installs. diff --git a/.changeset/2053-publish-flat-bundle.md b/.changeset/2053-publish-flat-bundle.md deleted file mode 100644 index e08a029e..00000000 --- a/.changeset/2053-publish-flat-bundle.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'hotcrm': patch ---- - -**4.0.1 is the first 4.x release that installs whole.** HotCRM 4.0.0's marketplace publish -carried an empty app and was withdrawn, so an installer upgrades from 3.x straight to 4.0.1. -That upgrade still carries 4.0.0's one-time step: convert the contact mailing addresses with -`scripts/backfill-contact-mailing-address.ts` before `os migrate apply --allow-destructive`. -The 4.0.0 entry of `CHANGELOG.md` holds the commands. - -4.0.0's empty app had no objects, views, dashboards, flows or sample data, so a hosted -install of it had nothing to show. 4.0.1 publishes the whole app, including the Cases, -Knowledge and Service Overview entries in the app's navigation, and the publish now stops -with an error instead of uploading an app that is missing any of its objects. diff --git a/CHANGELOG.md b/CHANGELOG.md index 68b6381a..763b76ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 4.0.1 + +### Patch Changes + +- 4547858: The sidebar logo and favicon now show on hosted installs. +- d7decd4: **4.0.1 is the first 4.x release that installs whole.** HotCRM 4.0.0's marketplace publish + carried an empty app and was withdrawn, so an installer upgrades from 3.x straight to 4.0.1. + That upgrade still carries 4.0.0's one-time step: convert the contact mailing addresses with + `scripts/backfill-contact-mailing-address.ts` before `os migrate apply --allow-destructive`. + The 4.0.0 entry of `CHANGELOG.md` holds the commands. + + 4.0.0's empty app had no objects, views, dashboards, flows or sample data, so a hosted + install of it had nothing to show. 4.0.1 publishes the whole app, including the Cases, + Knowledge and Service Overview entries in the app's navigation, and the publish now stops + with an error instead of uploading an app that is missing any of its objects. + ## 4.0.0 ### Major Changes diff --git a/package.json b/package.json index 4867f171..8c1931b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hotcrm", - "version": "4.0.0", + "version": "4.0.1", "description": "HotCRM - Production CRM built on ObjectStack", "license": "Apache-2.0", "private": true, From 325437c1abd467770a421ca0738e464a38ec652c Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 15:25:51 +0000 Subject: [PATCH 3/4] chore(release): the package manifests follow 4.0.1 Matched by hand, per docs/RELEASE_STRATEGY.md section Version Sources: the app package's `version` in src/sales/index.ts, and the service module's `version` and its `dependencies` range on the app (`^4.0.1`) in src/service/index.ts. The maintainer pages `test/docs-declared-versions.test.ts` binds move with them: the README badge, the version rows in docs/ARCHITECTURE.md and docs/RELEASE_STRATEGY.md, and docs/STATUS.md's version sentence and its `pnpm validate` transcript (re-run: `HotCRM v4.0.1`, every figure unchanged: 18 Objects 358 Fields, 1 Apps 14 Views 8 Pages 5 Dashboards 10 Reports 31 Actions, 32 Flows, 12 Positions 7 Permissions). Claude-Session: https://claude.ai/code/session_012zh91QzFgePbkmuHnugLN3 Co-authored-by: Claude --- README.md | 2 +- docs/ARCHITECTURE.md | 2 +- docs/RELEASE_STRATEGY.md | 2 +- docs/STATUS.md | 4 ++-- src/sales/index.ts | 2 +- src/service/index.ts | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a30d5024..238d8b09 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Manifest](https://img.shields.io/badge/manifest-app.objectstack.hotcrm-blueviolet)](src/sales/index.ts) -[![Version](https://img.shields.io/badge/version-4.0.0-brightgreen)](CHANGELOG.md) +[![Version](https://img.shields.io/badge/version-4.0.1-brightgreen)](CHANGELOG.md) [![Marketplace](https://img.shields.io/badge/marketplace-cloud.objectos.app-orange)](https://cloud.objectos.app) HotCRM is a complete, opinionated CRM built as the **first official application** on the [ObjectStack](https://cloud.objectos.app) marketplace. Install it into any ObjectStack environment in one click and get a working CRM in 30 seconds — or fork it as the canonical example of how to build your own marketplace app. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 4400662d..143e54bd 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -52,7 +52,7 @@ installs (ADR-0019 D1): | --- | --- | --- | | id | `app.objectstack.hotcrm` | `app.objectstack.hotcrm.service` | | namespace | `crm` | `crm` | -| version | `4.0.0` | `4.0.0` | +| version | `4.0.1` | `4.0.1` | | type | `app` | `module` | | name | `HotCRM` | `HotCRM Service` | diff --git a/docs/RELEASE_STRATEGY.md b/docs/RELEASE_STRATEGY.md index 228d1c40..7a2c7f11 100644 --- a/docs/RELEASE_STRATEGY.md +++ b/docs/RELEASE_STRATEGY.md @@ -13,7 +13,7 @@ carrying the service module beside it (ADR-0130 D4; one artifact, one version | ObjectStack manifest id | `app.objectstack.hotcrm` | | Packages in the artifact | `app.objectstack.hotcrm` (`type: app`), `app.objectstack.hotcrm.service` (`type: module`) | | Namespace | `crm` | -| Current version | `4.0.0` | +| Current version | `4.0.1` | | Publish artifact | output from `pnpm build` | The active repository is not released as separate scoped npm packages. diff --git a/docs/STATUS.md b/docs/STATUS.md index 816909c5..b2228de8 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -10,7 +10,7 @@ ## Summary -HotCRM is a single ObjectStack marketplace app at version `4.0.0`, shipped as one release artifact carrying two packages in the namespace `crm` (ADR-0130 D4). The app manifest — id `app.objectstack.hotcrm`, the artifact's own identity — is defined in [`src/sales/index.ts`](../src/sales/index.ts); the service module `app.objectstack.hotcrm.service` in [`src/service/index.ts`](../src/service/index.ts); [`objectstack.config.ts`](../objectstack.config.ts) composes the two. +HotCRM is a single ObjectStack marketplace app at version `4.0.1`, shipped as one release artifact carrying two packages in the namespace `crm` (ADR-0130 D4). The app manifest — id `app.objectstack.hotcrm`, the artifact's own identity — is defined in [`src/sales/index.ts`](../src/sales/index.ts); the service module `app.objectstack.hotcrm.service` in [`src/service/index.ts`](../src/service/index.ts); [`objectstack.config.ts`](../objectstack.config.ts) composes the two. ## ObjectStack Validation @@ -18,7 +18,7 @@ The summary `pnpm validate` prints — every figure read straight off the stack loader registers: ```text -HotCRM v4.0.0 +HotCRM v4.0.1 Data: 18 Objects 358 Fields UI: 1 Apps 14 Views 8 Pages 5 Dashboards 10 Reports 31 Actions Logic: 32 Flows diff --git a/src/sales/index.ts b/src/sales/index.ts index 1ab5cb5e..a7947bf7 100644 --- a/src/sales/index.ts +++ b/src/sales/index.ts @@ -74,7 +74,7 @@ export const createHotCrmAppStack = ( manifest: { id: 'app.objectstack.hotcrm', namespace: 'crm', - version: '4.0.0', + version: '4.0.1', type: 'app', name: 'HotCRM', description: 'AI-Native CRM for the ObjectStack marketplace — Accounts, Contacts, Leads, Opportunities, Cases, Knowledge, Forecasts, Campaigns, Contracts.', diff --git a/src/service/index.ts b/src/service/index.ts index 96d41727..2e5d3330 100644 --- a/src/service/index.ts +++ b/src/service/index.ts @@ -130,14 +130,14 @@ export const createHotCrmServiceStack = ( // own. Bump it with the app package's and `package.json` — // `test/docs-declared-versions.test.ts` holds all three, and the range // below, to one value. - version: '4.0.0', + version: '4.0.1', type: 'module', description: 'HotCRM support module — cases, knowledge articles, and the SLA surface.', // The same protocol as the app package (ADR-0087 handshake); bump it with // `specVersion` on every platform upgrade, exactly as the app's is. engines: { protocol: '^17.7.0' }, // The App package this module extends. - dependencies: { 'app.objectstack.hotcrm': '^4.0.0' }, + dependencies: { 'app.objectstack.hotcrm': '^4.0.1' }, /** * The five navigation entries this module puts into the app's menu From 979d0ef50a4d3db994196cd4b10d7755630802c8 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 15:25:51 +0000 Subject: [PATCH 4/4] docs(whats-new): the latest release is 4.0.1, the first 4.x that installs The latest-release heading and opening sentence state 4.0.1 in all three locales, as `test/docs-declared-versions.test.ts` binds them. One short paragraph above "What 4.0.0 adds" says that 4.0.1 is the first 4.x that installs from the marketplace (4.0.0's publish there was empty and was withdrawn), so a 3.x deployment upgrades straight to it, and that the sidebar logo and favicon now show on hosted installs. "What 4.0.0 adds" and its checks before upgrading stay: they apply to anyone coming from 3.x. Claude-Session: https://claude.ai/code/session_012zh91QzFgePbkmuHnugLN3 Co-authored-by: Claude --- content/docs/whats-new.mdx | 11 ++++++++--- content/docs/whats-new.zh-Hans.mdx | 10 +++++++--- content/docs/whats-new.zh-Hant.mdx | 10 +++++++--- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/content/docs/whats-new.mdx b/content/docs/whats-new.mdx index 8a1e0fb5..5faf95e1 100644 --- a/content/docs/whats-new.mdx +++ b/content/docs/whats-new.mdx @@ -63,9 +63,9 @@ http://localhost:4001 and create the first admin account. --- -## v4.0.0 — Latest release +## v4.0.1 — Latest release -**HotCRM 4.0.0**, running on **ObjectStack 17.7.0** across every +**HotCRM 4.0.1**, running on **ObjectStack 17.7.0** across every `@objectstack/*` package. The app manifest declares the matching `^17.7.0` protocol range, so a runtime on a different protocol major refuses the load up front with a structured diagnostic instead of failing deep @@ -73,11 +73,16 @@ in a schema parse. > **This page does not keep a second release table.** The release-by-release > history is `CHANGELOG.md` in the repository, compiled from the `.changeset/` -> entry every pull request adds. The versions between v1.0 and 4.0.0 are +> entry every pull request adds. The versions between v1.0 and 4.0.1 are > recorded there and are deliberately not re-listed here — a hand-maintained > copy of that history is exactly how this section came to advertise a "v5.0" > that was never an app version, on a platform major that never shipped it. +**4.0.1 is the first 4.x release that installs from the marketplace.** 4.0.0's marketplace +publish carried an empty app and was withdrawn, so a deployment on 3.x upgrades straight to +4.0.1, and everything under "What 4.0.0 adds" below, the checks before upgrading included, +applies to it. 4.0.1 also makes the sidebar logo and favicon show on hosted installs. + ### What 4.0.0 adds **4.0.0 is a major because a contact's mailing address becomes one field.** The five diff --git a/content/docs/whats-new.zh-Hans.mdx b/content/docs/whats-new.zh-Hans.mdx index 27d671c2..f4c16348 100644 --- a/content/docs/whats-new.zh-Hans.mdx +++ b/content/docs/whats-new.zh-Hans.mdx @@ -45,17 +45,21 @@ HOTCRM_TOKEN=... ./scripts/wow1-live-schema.sh --- -## v4.0.0 —— 最新发布 +## v4.0.1 —— 最新发布 -**HotCRM 4.0.0**,全线 `@objectstack/*` 包运行在 **ObjectStack 17.7.0** 上。 +**HotCRM 4.0.1**,全线 `@objectstack/*` 包运行在 **ObjectStack 17.7.0** 上。 应用清单声明了与之匹配的 `^17.7.0` 协议区间,因此协议大版本不同的运行时会在 装载之初就带着结构化诊断拒绝加载,而不是在某次 schema 解析的深处才失败。 > **这一页不维护第二张发布表。** 逐版本的发布历史在仓库的 `CHANGELOG.md` 里,由每个 -> 拉取请求补充的 `.changeset/` 条目编译而成。v1.0 与 4.0.0 之间的各个版本都记录在那里, +> 拉取请求补充的 `.changeset/` 条目编译而成。v1.0 与 4.0.1 之间的各个版本都记录在那里, > 这里刻意不再重列一遍 —— 手工誊抄那份历史,正是这一节最终会宣称一个从来不曾存在过的 > 应用版本「v5.0」、并把它挂在一个从未发布过它的平台大版本上的原因。 +**4.0.1 是第一个能从应用市场安装的 4.x 版本。** 4.0.0 发布到应用市场的是一个空应用,已被撤下, +因此停留在 3.x 的部署会直接升级到 4.0.1,下方「4.0.0 新增了什么」连同其中的升级前检查都适用于 +这次升级。4.0.1 还让侧边栏徽标和网站图标在托管安装上正常显示。 + ### 4.0.0 新增了什么 **4.0.0 之所以是大版本,是因为联系人的邮寄地址合并成了一个字段。** 原来五个独立的地址字段被移除, diff --git a/content/docs/whats-new.zh-Hant.mdx b/content/docs/whats-new.zh-Hant.mdx index 12210495..4ed3b219 100644 --- a/content/docs/whats-new.zh-Hant.mdx +++ b/content/docs/whats-new.zh-Hant.mdx @@ -47,17 +47,21 @@ HOTCRM_TOKEN=... ./scripts/wow1-live-schema.sh --- -## v4.0.0 —— 最新發行 +## v4.0.1 —— 最新發行 -**HotCRM 4.0.0**,全線 `@objectstack/*` 套件執行在 **ObjectStack 17.7.0** 上。 +**HotCRM 4.0.1**,全線 `@objectstack/*` 套件執行在 **ObjectStack 17.7.0** 上。 應用清單宣告了與之相符的 `^17.7.0` 協定區間,因此協定大版本不同的執行時會在 載入之初就帶著結構化診斷拒絕載入,而不是在某次 schema 解析的深處才失敗。 > **這一頁不維護第二張發行表。** 逐版本的發行歷史在儲存庫的 `CHANGELOG.md` 裡,由每個 -> 拉取請求補上的 `.changeset/` 條目編譯而成。v1.0 與 4.0.0 之間的各個版本都記錄在那裡, +> 拉取請求補上的 `.changeset/` 條目編譯而成。v1.0 與 4.0.1 之間的各個版本都記錄在那裡, > 這裡刻意不再重列一遍 —— 手工謄抄那份歷史,正是這一節最終會宣稱一個從來不曾存在過的 > 應用版本「v5.0」、並把它掛在一個從未發行過它的平台大版本上的原因。 +**4.0.1 是第一個能從應用市集安裝的 4.x 版本。** 4.0.0 發行到應用市集的是一個空應用,已被撤下, +因此停留在 3.x 的部署會直接升級到 4.0.1,下方「4.0.0 新增了什麼」連同其中的升級前檢查都適用於 +這次升級。4.0.1 也讓側邊欄標誌與網站圖示在託管安裝上正常顯示。 + ### 4.0.0 新增了什麼 **4.0.0 之所以是大版本,是因為聯絡人的郵寄地址合併成了一個欄位。** 原來五個獨立的地址欄位被移除,