Repository navigation
Description
Ruled: 6380294239 · re-ruling of batch #9 item 1 sub-item #25442 · letter D · 2026-10-24T05:17:26Z (nothing to build: hosted environments already arm scheduled work per kernel by plan — Team and above run schedule / time_relative, Free is off by cloud#2337 ruling C; the evaluation measured a local verify stack with OS_AUTOMATION_SCHEDULED_WORK_ENABLED unset; ruling G on #17396 untouched; closed not planned; hotsrm docs owe one line; supersedes letter B below)
Ruled: 6377885876 · batch #9 item 1 (#25496, 6377842908) · letter B · 2026-10-24T00:43:45Z (a per-environment switch the tenant admin or operator turns on; multi-organisation shared kernels stay off) (superseded by D, 6380294239)
Filed from the objectstack-ai/hotsrm v0.1 platform evaluation (2026-10-23, spec 18.0.0, probes run with @objectstack/verify). Not a claim about cloud internals; the cloud ruling is quoted as the evaluation recorded it.
What was measured
- A package that declares a
scheduleflow (daily certificate-expiry sweep) andtime_relativeflows (30/15/7-day reminders) installs cleanly, but none of them run:/automation/_statusanswersdisabled by deployment policy. - They are gated by the deployment switch
OS_AUTOMATION_SCHEDULED_WORK_ENABLED, default off.Per the maintainer's ruling quoted in the evaluation, hosted (cloud) environments keep it off too.(premise corrected by ruling D: hosted Team-and-above kernels run scheduled work by plan; only Free is off) - With the switch on, everything works as designed:
time_relativefires once per record and repeats are idempotent, the cron sweep marks expired certificates,multi: truebulk updates fire record flows row by row (schedule.test, flows.test in the evaluation).
Why it matters for an app
Certificate-expiry alerting is one of three things in hotsrm v0.1's scope, and every later version (contract expiry, SCAR overdue, order confirmation timeout, performance cycles) is built on the same two trigger kinds. An app author has no supported path on a hosted environment today. The workaround (an external timer calling an api flow) needs the HMAC secret in the package source, which is unacceptable for a public repository.
Wanted
One of:
a per-environment or per-package enablement (an allow-list the tenant admin or the cloud operator can set) instead of the deployment-wide switch, or(letter B, superseded by D)scheduled work on by default on hosted environments, with the operator switch as the opt-out, or- a documented ruling
that scheduled work is not available on hosted environments— ruled D: scheduled work runs on hosted Team-and-above plans and on self-hosted kernels with the variable set; Free is off (cloud#2337 ruling C); the docs say so, so app authors design to it from the start.
Acceptance
An app that declares a schedule flow is installed on a hosted environment and the flow runs on its cron without the app author touching deployment configuration, or the docs say plainly that it cannot.
Dedupe words: OS_AUTOMATION_SCHEDULED_WORK_ENABLED hosted cloud schedule time_relative disabled by deployment policy per-tenant enable.
Re-filed as objectstack-fleet[bot] from #25442, same body and labels. #25442 was written off the fleet relay, under the maintainer's personal account, by a project-thread session through GitHub MCP; pm-dispatch allows content writes only through the relay. #25442's thread (triage, ruling, comments) stays there for reference; this card replaces it in the queue.
Session: session_018fnREjMeK9XQeHDwkJXKMW
Activity
os-elon-musk commentedon Oct 24, 2026
Ruling: re-ruling of batch #9 item 1 sub-item #25442 (now this card) · letter D · maintainer 「D」 2026-10-24T05:17:26Z(supersedes letter B, 6377885876 on #25442)
维护者在 待决策汇总 线程 02:26:55Z 说「25442 重新决裁」,并转来 os-zhuang 总监席的读数;本席 02:3xZ 重呈 D / 维持 B,维护者 05:17:26Z 回「D」。
D = 不用做。 读数(os-zhuang 总监席 6377971397 实测,objectstack 侧本席核过):托管环境的定时工作按套餐逐内核放行——cloud
packages/objectos-runtime/src/plan-entitlements.tsplanRunsScheduledWork(plan) = !isFreePlan(plan),经 objectstack#19834 的scheduledWorkPolicy接缝注入(packages/services/service-automation/src/plugin.ts、engine.ts,per-kernel-scheduled-work-policy.test.ts);Team 及以上今天就跑包内schedule/time_relative流程,Free 关并显示「scheduled flows do not run on the Free plan — upgrade to Team or above to run them.」(cloud#2337 裁 C)。评估里的disabled by deployment policy是在本地@objectstack/verify栈、OS_AUTOMATION_SCHEDULED_WORK_ENABLED未设时量的;「托管也关」那句引的是 #17396 裁决 G(多租户内核不开),裁决 G 未动,#20645 继续pm:on-hold。B(每环境管理员开关)在 cloud 上只会改 Free 版的答案,等于推翻 cloud#2337 的定价裁决;自托管单租户的部署变量本来就是「每环境」;净增为零。裁后执行:本卡关
not_planned(本评论即读数);hotsrm 文档补一句「定时流程需付费套餐(Team 及以上);自托管设OS_AUTOMATION_SCHEDULED_WORK_ENABLED=true」(hotsrm 侧写,立卡人 marchtian 可见);@objectstack/verify文档可搭车补一句「本地栈要跑定时流程须设该变量」,不单独立卡。工作量 0。原卡 #25442 与决策载体 #25496 各留一条指向本评论的说明。Generated by Claude Code
os-elon-musk commentedon Oct 24, 2026
@marchtian — one line for hotsrm's docs, following ruling D (6380294239 above):
schedule/time_relativeflows run on hosted environments on the Team plan and above; the Free plan does not run them (cloud#2337 ruling C, the kernel shows "scheduled flows do not run on the Free plan — upgrade to Team or above to run them."). On a self-hosted kernel or a local@objectstack/verifystack, setOS_AUTOMATION_SCHEDULED_WORK_ENABLED=trueto run them; the evaluation'sdisabled by deployment policycame from a local stack with that variable unset. Nothing changes on the platform side; the certificate-expiry sweep in hotsrm v0.1 works as designed on a paid hosted plan.Generated by Claude Code