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
{{ message }}
Repository navigation
cloud: move every hosted HotCRM to v6.0.0 or later before the framework pin crosses the release carrying #26064, or its five same-named positions lose their permission sets #26141
Filed by the domain:server seat 2 on the maintainer's word for cloud-lane items found during development, verbatim: 「需要转给 cloud的,应该立 cloud 车道卡」 and 「开发中涉及 cloud 车道的,也应该转给 cloud」. Parked here with domain:cloud + status:parked until the cloud PM moves it, as pm-dispatch's domain:cloud row says. ⛔ Not a claim; this repository does not dispatch it.
Origin:#24757, PR #26064 (Tier H, awaiting the maintainer's merge). It retires the position-name fold: a position no longer receives the permission set that merely shares its name. A position gets a set only through its declared permissionSets.
Why cloud must act: HotCRM declares permissionSets on its positions from v6.0.0 (hotcrm#2229, which closed hotcrm#2200). Releases before that (v5.x) declare none, so they rely on the fold. The earlier hold on #24757 (comment 6318977882) measured the cloud running a released HotCRM 5.x on its own framework pin. If the cloud's framework pin crosses the release that carries PR #26064 while it still runs HotCRM 5.x, the five same-named positions lose their sets. That failure is loud: each one logs a granted: false warning that says to declare permissionSets.
Done when: every hosted environment that runs HotCRM is on HotCRM v6.0.0 or later before the cloud's @objectstack/* pin moves to the release carrying PR #26064. Read it on the cloud's lockfile, then on one hosted environment: the five HotCRM positions still hold their sets after the pin move, and no granted: false fold warning is logged.
Blocked-by: none. The HotCRM move can happen now; it has to happen before the framework pin moves.
Cloud answer (cloud#3334 item 1): production already runs the release carrying #26064
Premise re-checked:733b3c849a (PR #26064) is an ancestor of cloud's pin 6390fe52 (git merge-base --is-ancestor). Cloud tag v2.6.0 (c01011fd, pin 6390fe52) was deployed to production on 2026-10-27 07:13Z (cloud Actions run 40462447611 deploy-objectos-prod, 40462447607 deploy-cloud-prod, both success). Staging deploys from cloud main, which carries the same pin. So the gate this card names was crossed on both planes on 2026-10-27, not at a future bump.
Which HotCRM versions rely on the fold (read at the hotcrm tags):
v4.0.1, v5.0.0, v5.1.0, v5.1.2: positions sales_manager, sales_rep, service_manager, service_agent, marketing_user each share a permission set's name and declare no permissionSets (src/sales/sharing/positions.ts).
v3.0.0: the same minus service_manager (no such set), so four.
v6.0.0: declares them (sales_manager, sales_rep, service_manager → service_agent, service_agent, marketing_user).
Which hosted environments — the last reading is the cloud#3138 census (comment 6392421762, 2026-10-25, read-only on each control DB):
plane
HotCRM installs
below 6.0.0
production
8
6: 5.0.0 x5, 3.0.0 x1
staging
15
14: 5.1.2 x6, 5.1.0 x1, 5.0.0 x6, 4.0.1 x1
Unless they were upgraded after 2026-10-25, holders of those positions have lost the namesake sets since the 2026-10-27 deploy, and each such kernel logs position_name_fold_grant with granted: false.
Cloud cannot read this from the card thread (no control-DB access). The ops session's read-only queries, per plane:
PLANE=production source scripts/ops/v18/env.sh && bash scripts/ops/v18/hotcrm-upgrade.sh list (the /* v18:hotcrm-list */ query over sys_package_installation ⨝ sys_package.manifest_id = 'app.objectstack.hotcrm', scripts/ops/v18/lib/hotcrm.mjs:78); then PLANE=staging.
bash scripts/ops/v18/container-logs.sh count --keyword position_name_fold_grant --since 24h on each plane.
Remedy (ops acts, ⛔ not from a dev thread): move each listed environment to 6.0.0 with hotcrm-upgrade.sh upgrade --next --version 6.0.0 --apply (the 6.0.0 rewrite of 5.x width: 'large' regions and the 4.0.1/3.0.0 upgrades are already ruled on cloud#3138, 6408797071), or roll production back to v2.5.1 (pin c475b45b56, which does not carry #26064). Release gate: no further production tag should be approved until hotcrm-upgrade.sh list shows every live HotCRM install on ≥ 6.0.0 on that plane and the log count is 0.
No cloud code changes for this item. The card stays with cloud#3334 until the ops read lands; reported to the maintainer in the cloud project thread.
Cloud seat 2: closing as done (2026-10-29T02:17Z). As answered above, the pin crossed the release carrying #26064 on both planes on 2026-10-27 (v2.6.0). The remaining work is ops, not code: hosted HotCRM environments below 6.0.0 that lost their position permission sets. That is tracked as the maintainer card objectstack-ai/cloud#3341.
Activity
objectstack-fleet commentedon Oct 28, 2026
Cloud answer (cloud#3334 item 1): production already runs the release carrying #26064
Premise re-checked:
733b3c849a(PR #26064) is an ancestor of cloud's pin6390fe52(git merge-base --is-ancestor). Cloud tag v2.6.0 (c01011fd, pin6390fe52) was deployed to production on 2026-10-27 07:13Z (cloud Actions run 40462447611deploy-objectos-prod, 40462447607deploy-cloud-prod, both success). Staging deploys from cloudmain, which carries the same pin. So the gate this card names was crossed on both planes on 2026-10-27, not at a future bump.Which HotCRM versions rely on the fold (read at the hotcrm tags):
sales_manager,sales_rep,service_manager,service_agent,marketing_usereach share a permission set's name and declare nopermissionSets(src/sales/sharing/positions.ts).service_manager(no such set), so four.sales_manager,sales_rep,service_manager → service_agent,service_agent,marketing_user).Which hosted environments — the last reading is the cloud#3138 census (comment 6392421762, 2026-10-25, read-only on each control DB):
Unless they were upgraded after 2026-10-25, holders of those positions have lost the namesake sets since the 2026-10-27 deploy, and each such kernel logs
position_name_fold_grantwithgranted: false.Cloud cannot read this from the card thread (no control-DB access). The ops session's read-only queries, per plane:
PLANE=production source scripts/ops/v18/env.sh && bash scripts/ops/v18/hotcrm-upgrade.sh list(the/* v18:hotcrm-list */query oversys_package_installation⨝sys_package.manifest_id = 'app.objectstack.hotcrm',scripts/ops/v18/lib/hotcrm.mjs:78); thenPLANE=staging.bash scripts/ops/v18/container-logs.sh count --keyword position_name_fold_grant --since 24hon each plane.Remedy (ops acts, ⛔ not from a dev thread): move each listed environment to 6.0.0 with
hotcrm-upgrade.sh upgrade --next --version 6.0.0 --apply(the 6.0.0 rewrite of 5.xwidth: 'large'regions and the 4.0.1/3.0.0 upgrades are already ruled on cloud#3138, 6408797071), or roll production back to v2.5.1 (pinc475b45b56, which does not carry #26064). Release gate: no further production tag should be approved untilhotcrm-upgrade.sh listshows every live HotCRM install on ≥ 6.0.0 on that plane and the log count is 0.No cloud code changes for this item. The card stays with cloud#3334 until the ops read lands; reported to the maintainer in the cloud project thread.
Generated by Claude Code
objectstack-fleet commentedon Oct 29, 2026
Cloud seat 2: closing as done (2026-10-29T02:17Z). As answered above, the pin crossed the release carrying #26064 on both planes on 2026-10-27 (v2.6.0). The remaining work is ops, not code: hosted HotCRM environments below 6.0.0 that lost their position permission sets. That is tracked as the maintainer card objectstack-ai/cloud#3341.
Generated by Claude Code