Skip to content

automation: config.organization '*' fans a packaged scheduled flow out once per installing organization under isolated tenancy (the recorded end state of #20619 ruling A) #20645

Open

Description

@objectstack-fleet

Blocked-by: ruling G on #17396 (5642381255, addendum 5642795312) — package-authored scheduled work stays OFF for multi-tenant kernels. Re-entry, falsifiable: the maintainer turns package-authored scheduled work ON for a multi-tenant kernel, or a cloud customer asks for a packaged schedule under isolated.

Filed by the director seat (objectstack#12708, session_01AsCNgFBs8HCjwhyHQsFbx3) on the maintainer's ruling A on #20619 (batch #244, 2026-09-29; the ruling record is on #20619): ruling G is kept and #20619 becomes the docs line; this card records the end state so the shape is not re-derived when the premise changes. ⛔ Not a claim; ⛔ not to be dispatched while blocked.

The shape (option B of the #20619 packet, 5888104788)

  • Spec (packages/spec/src/automation/schedule-organization.zod.ts, a domain:spec child): config.organization: '*' accepted on a schedule / time_relative flow only when the flow is package-authored; a hand-authored flow keeps declaring one organization. The 2026-09-08 rule's substance is kept: every run acts as exactly one declared organization, never a guessed one.
  • Services (packages/services/service-automation bind gate, packages/triggers/trigger-schedule): under isolated with the deployment switch ON, a '*' flow is armed once per installing organization and each run executes as that organization; per-organization run accounting; a cost ceiling (runs per organization per cadence) is part of the deliverable, because ruling G's premise is cost.
  • "Each organization with this package installed": on the cloud, sys_package_installation (cloud-provided) is the source; on the OSS runtime a package loads for the whole kernel, so '*' means every organization — the card states both.
  • Mainstream reference: Salesforce managed packages — each subscriber org schedules its own copy of the package's jobs, each run inside one org.

Confidence gaps (from triage, unchanged)

  • Not measured: whether any isolated deployment runs with the switch ON.
  • Not measured: whether the cloud records a package installation per organization.

Related: #20619 (the docs line, ruling A), #17396 (ruling G), #18378 (ruling A′ for group), cloud#2216 (HotCRM's flows on record).

Activity

  1. added
    enhancementNew feature or request
    domain:servicesRetired 2026-10-22, alias of domain:server (services surface); in-flight cards keep it until landed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    area:workflowApprovals and automation — the work that runs without a person driving it
    on Sep 29, 2026
  2. objectstack-fleet commented on Oct 1, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: blocked-card audit. pm:blocked → pm:on-hold. This card waits on a ruling's re-entry condition, not on a card

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-01T03:38Z. ⛔ Not a claim, ⛔ not a dispatch.

    Restart-when: the maintainer turns package-authored scheduled work ON for a multi-tenant kernel, or a cloud customer asks for a packaged schedule under isolated (ruling G on #17396, 5642381255 / 5642795312).

    The body's Blocked-by: names ruling G, not an open card. #17396 itself has been closed since 2026-09-16T09:01Z. So the unlock scan read this card as blocked by a closed card, which it is not: it is held by a standing ruling with a falsifiable re-entry. That is pm:on-hold under the state model. Grade unchanged.


    Generated by Claude Code

  3. added
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Oct 1, 2026
  4. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    ContributorAuthor

    Regrade: p2 → p1 · target:v18 · protocol-first rule, all lanes · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-14T08:15Z

    Under the maintainer's grading rule, recorded on #6015 (6163099154, amended 6163539661) and extended today, 「立卡,规则扩到所有车道,REST 收窄也算」: every metadata-protocol change, and every narrowing of a REST or data door, is p1 + target:v18 in every lane. The skill text follows in #23431.

    • Why it is in the class: its spec child changes what packages/spec/src/automation/schedule-organization.zod.ts accepts. config.organization: '*' becomes valid only on a packaged flow, which is a change to the flow contract.

    Lane, scope and Clause ② are unchanged.

  5. added
    priority:p1High: required for production / M2
    domain:serverDomain lane — seat card indexed by label:pm:seat
    and removed
    domain:servicesRetired 2026-10-22, alias of domain:server (services surface); in-flight cards keep it until landed
    on Oct 14, 2026
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 requestpm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold commentpriority:p1High: required for production / M2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions