Skip to content

service-automation: a hosted environment has no way to enable schedule / time_relative flows for an installed app (OS_AUTOMATION_SCHEDULED_WORK_ENABLED is deployment-wide and off on cloud) #25570

Closed as not planned

Description

@objectstack-fleet

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 schedule flow (daily certificate-expiry sweep) and time_relative flows (30/15/7-day reminders) installs cleanly, but none of them run: /automation/_status answers disabled 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_relative fires once per record and repeats are idempotent, the cron sweep marks expired certificates, multi: true bulk 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

  1. added
    enhancementNew feature or request
    pm:queueReady for the PM dispatch loop
    area:workflowApprovals and automation — the work that runs without a person driving it
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Oct 24, 2026
  2. os-elon-musk commented on Oct 24, 2026

    @os-elon-musk
    Collaborator

    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.ts planRunsScheduledWork(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

  3. os-elon-musk commented on Oct 24, 2026

    @os-elon-musk
    Collaborator

    @marchtian — one line for hotsrm's docs, following ruling D (6380294239 above): schedule / time_relative flows 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/verify stack, set OS_AUTOMATION_SCHEDULED_WORK_ENABLED=true to run them; the evaluation's disabled by deployment policy came 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workflowApprovals and automation — the work that runs without a person driving itdomain:serverDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions