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
spec: the script.config.template tombstone points authors at sys_notification_template, which notify's own template key superseded (ruling D on #24770) #24965
Filing gate ③ a task the maintainer set: the spec-lane half of execution card ② of the maintainer's ruling D on #24770 (「决策箱 三张同意」, recorded by triage in 6293376907). The decision 6290342354 names "the two stale texts". The other text (authentication.mdx) stays on #24924. This one sits in packages/spec/src/**, the contract surface, so it is spec-lane work. Filed by the domain:services seat 2 (seat post #21118, os-support-ai, session session_01UmqzD97e14iws6hmVhgZ5y). ⛔ Not a claim. Grade and lane are triage's (expected domain:spec).
Reader (who acts): the domain:spec seat. It edits tombstone prose and its regenerated reference only.
The stale text
packages/spec/src/automation/schemaless-node-config.zod.ts (about :353-358 on main2941a1929): the script.config.template tombstone tells authors "stored templates live in the messaging service (sys_notification_template), not on the node". That predates notify's own template key, which names an email template (email_template). Under ruling D, sys_notification_template takes only the email and sms channels (#24924). A notify node that names a template uses that email template on every channel.
The fix
Rewrite the tombstone's prescription to point at notify's template key (an email_template).
Mention sys_notification_template only as what the email and sms channels read when no template is named.
Regenerate the reference page the tombstone feeds.
No schema shape changes: prose only.
Dedupe
Method: a semantic search_issues query on objectstack-ai/objectstack, open and closed, with the tombstone's own words. 3 hits: #24924 (the services half, the sibling of this card), #22054 and #4616 (closed, different subjects). New.
Claim: PM loop round 31
Session: session_01D6F9axfoPzR7t8G1J7Ytzz
Account: baozhoutao (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-24965-script-template-tombstone
Worktree: objectstack-issue-24965
Domain: domain:spec
Seat: domain:spec#3 (seat post #18883)
File surface (at origin/main2b1382a5b3 or later; stop on a breach and explain it in the report):
packages/spec/src/automation/schemaless-node-config.zod.ts: the script.config.template tombstone prose only;
its regenerated reference page;
.changeset/24965-*.md.
Container & model: S, mode:subagent, model: default (no path-derived mandate)
Clause-②: no (prose only: no shape, key, default or accepted value moves)
Responsibility: the spec-lane half of execution card ② of ruling D on #24770 (6290342354, recorded in 6293376907)
Thread-read: none
Serial constraints cleared: the services half stays on service-messaging: sys_notification_template takes only the channels that read it (email, sms), by the maintainer's ruling D on #24770 #24924. No in-flight PR of this seat touches schemaless-node-config.zod.ts. The dev re-checks open PRs before opening its own.
Read on origin/main2b1382a5b3 at 2026-10-21T07:09Z: the script.config.template tombstone still prescribes sys_notification_template.
{
"issue": 24965,
"status": "done",
"branch": "claude/issue-24965-script-template-tombstone",
"pr": "https://github.com/objectstack-ai/objectstack/pull/25085",
"session": "session_01D6F9axfoPzR7t8G1J7Ytzz",
"premise_still_valid": true,
"summary": "The script.config.template tombstone (packages/spec/src/automation/schemaless-node-config.zod.ts) now tells authors to delete the key and, for templated content, name an email template (email_template) in a notify node's own template key, with templateData filling its placeholders. The email and in-app inbox channels render that template in each recipient's locale; otherwise the node carries inline title/message. It mentions sys_notification_template only as the rows the email and sms channels read, email only when no template is named. The reference page content/docs/references/automation/schemaless-node-config.mdx was regenerated with gen:docs, and the changeset .changeset/24965-script-template-tombstone.md is @objectstack/spec patch with the claim's Clause-2 line. No test pinned the old text. One deviation from the dispatch wording: a named template is NOT used on every channel. sms-channel.ts:285 reads sys_notification_template unconditionally and never reads payload.template, so the text names email and inbox only and does not say sms skips the rows. PR body has file:line evidence for each claim, at origin/main 2b1382a5b3.",
"tests": "At head 2318cdd237: spec build VERDICT command-exit 0. spec check:generated before gen:docs: '1 of 14 artifact(s) stale: content/docs/references/**'; after: 'All 14 generated artifacts are up to date'. spec test: 'Test Files 705 passed (705), Tests 21424 passed | 1 todo' (exit 0). spec typecheck exit 0. spec test:repo: 'Test Files 72 passed (72), Tests 1237 passed (1237)' (exit 0). dispatch-gates --commands derived 105 commands and all were run: 104 exit 0. Six of those first exited 3 (PREREQUISITE NOT MET) and passed after a build of the @objectstack/lint closure, client and client-react (turbo 37/37 successful). NOT MEASURED: check:dual-build-cjs-loads, reason: prerequisite exit 3, it needs every workspace package's dist (a whole-workspace build), so it is left to CI. The changeset gates (check-adr-0087-registration, check-changeset-no-major, check-empty-changeset, each with --base origin/main and --self-test, plus check:changeset-gate-self-tests), check:nul-bytes and check:doc-authoring all exit 0. dispatch-gates --ran: '105 derived famil(ies) accounted for — 104 run, 1 NOT-MEASURED'. No ablation (prose-only change).",
"mcp_calls": "0",
"api_writes": "3 — git push (branch claim plus 2 commits, not REST); fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls draft, plus POST /issues/25085/assignees baozhoutao) in one dispatch; fleet-write relay comment (POST /repos/objectstack-ai/objectstack/issues/24965/comments, this os-dev-report). label-write: zero, because the dispatch named no labels and skip-changeset does not apply (a changeset is present).",
"open_questions": [],
"out_of_scope_findings": []
}
Patch-id verified: the merged commit's patch-id equals the reviewed head 2318cdd237 (3a6f6b79fd).
Contract review: PASS, record 6312253957 on the PR.
What shipped: the script.config.template tombstone now points authors at the notify node's own template key, an email_template, with templateData filling its placeholders. It names sys_notification_template only as the rows the email and sms channels read.
Activity
objectstack-fleet commentedon Oct 21, 2026
Claim: PM loop round 31
Session:
session_01D6F9axfoPzR7t8G1J7YtzzAccount:
baozhoutao(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-24965-script-template-tombstoneWorktree:
objectstack-issue-24965Domain:
domain:specSeat:
domain:spec#3(seat post #18883)File surface (at
origin/main2b1382a5b3or later; stop on a breach and explain it in the report):packages/spec/src/automation/schemaless-node-config.zod.ts: thescript.config.templatetombstone prose only;.changeset/24965-*.md.Container & model:
S,mode:subagent,model: default (no path-derived mandate)Clause-②: no (prose only: no shape, key, default or accepted value moves)
Responsibility:
the spec-lane half of execution card ② of ruling D on #24770 (6290342354, recorded in 6293376907)Thread-read: none
Serial constraints cleared: the services half stays on service-messaging: sys_notification_template takes only the channels that read it (email, sms), by the maintainer's ruling D on #24770 #24924. No in-flight PR of this seat touches
schemaless-node-config.zod.ts. The dev re-checks open PRs before opening its own.Read on
origin/main2b1382a5b3at 2026-10-21T07:09Z: thescript.config.templatetombstone still prescribessys_notification_template.objectstack-fleet commentedon Oct 21, 2026
os-dev-report
{ "issue": 24965, "status": "done", "branch": "claude/issue-24965-script-template-tombstone", "pr": "https://github.com/objectstack-ai/objectstack/pull/25085", "session": "session_01D6F9axfoPzR7t8G1J7Ytzz", "premise_still_valid": true, "summary": "The script.config.template tombstone (packages/spec/src/automation/schemaless-node-config.zod.ts) now tells authors to delete the key and, for templated content, name an email template (email_template) in a notify node's own template key, with templateData filling its placeholders. The email and in-app inbox channels render that template in each recipient's locale; otherwise the node carries inline title/message. It mentions sys_notification_template only as the rows the email and sms channels read, email only when no template is named. The reference page content/docs/references/automation/schemaless-node-config.mdx was regenerated with gen:docs, and the changeset .changeset/24965-script-template-tombstone.md is @objectstack/spec patch with the claim's Clause-2 line. No test pinned the old text. One deviation from the dispatch wording: a named template is NOT used on every channel. sms-channel.ts:285 reads sys_notification_template unconditionally and never reads payload.template, so the text names email and inbox only and does not say sms skips the rows. PR body has file:line evidence for each claim, at origin/main 2b1382a5b3.", "tests": "At head 2318cdd237: spec build VERDICT command-exit 0. spec check:generated before gen:docs: '1 of 14 artifact(s) stale: content/docs/references/**'; after: 'All 14 generated artifacts are up to date'. spec test: 'Test Files 705 passed (705), Tests 21424 passed | 1 todo' (exit 0). spec typecheck exit 0. spec test:repo: 'Test Files 72 passed (72), Tests 1237 passed (1237)' (exit 0). dispatch-gates --commands derived 105 commands and all were run: 104 exit 0. Six of those first exited 3 (PREREQUISITE NOT MET) and passed after a build of the @objectstack/lint closure, client and client-react (turbo 37/37 successful). NOT MEASURED: check:dual-build-cjs-loads, reason: prerequisite exit 3, it needs every workspace package's dist (a whole-workspace build), so it is left to CI. The changeset gates (check-adr-0087-registration, check-changeset-no-major, check-empty-changeset, each with --base origin/main and --self-test, plus check:changeset-gate-self-tests), check:nul-bytes and check:doc-authoring all exit 0. dispatch-gates --ran: '105 derived famil(ies) accounted for — 104 run, 1 NOT-MEASURED'. No ablation (prose-only change).", "mcp_calls": "0", "api_writes": "3 — git push (branch claim plus 2 commits, not REST); fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls draft, plus POST /issues/25085/assignees baozhoutao) in one dispatch; fleet-write relay comment (POST /repos/objectstack-ai/objectstack/issues/24965/comments, this os-dev-report). label-write: zero, because the dispatch named no labels and skip-changeset does not apply (a changeset is present).", "open_questions": [], "out_of_scope_findings": [] }objectstack-fleet commentedon Oct 21, 2026
Close-out — landed
1862d8d130(single-parent squash onmain).2318cdd237(3a6f6b79fd).6312253957on the PR.script.config.templatetombstone now points authors at the notify node's owntemplatekey, anemail_template, withtemplateDatafilling its placeholders. It namessys_notification_templateonly as the rows theemailandsmschannels read.emailand inbox channels only.smsreadssys_notification_templatewhether or not a template is named. A factual note sits on Notification templates and subscriptions authored in Setup have no effect on the app's notifications #24770, and the ruling is unchanged.pm:dispatchedremoved.