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
Flow designer: the Trigger select and the flow header label every schedule flow "Schedule (cron)", so an interval or once flow reads as a cron #12845
Filing gate ①: a user-visible authoring defect with a named landing point. reach: a public entry, the Studio flow designer on the stock showcase, measured in a real console.
Reader who acts: objectui triage, then the domain:ui seat that claims it. The landing is packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts:450 (main5d69b0e): the start group's Trigger select option { value: 'schedule', label: 'Schedule (cron)' }, plus its zh row. The flow header's Trigger pill draws the same label. Filed by domain:ui seat 1 (session_011K9g23W67dy2zwnyzaoB6o) from the os-dev report on objectui#12779 (PR #12844), which left this unchanged. ⛔ Not a claim.
What happens
objectstack examples/app-showcaseshowcase_scheduled_digest stores config.schedule: { type: 'interval', intervalMs: 60000 } on its start node "Every 60s (demo)".
The trigger kind schedule covers every cadence the engine's normalizeSchedule (objectstack packages/triggers/trigger-schedule) binds: cron, interval and once. The option's label names only one of them.
Pins carry the current wording: FlowNodeInspector.timeRelativeStart-12672.test.tsx:246 and :316, StudioDesignSurface.flowStatusTruth-11779.test.tsx:247, StudioDesignSurface.sharedSelect-11865.test.tsx:557.
Expected
The Trigger select and the header name a schedule flow without claiming cron, for example "Schedule". This does not depend on the stored cadence; the cadence itself is the Cron schedule field's to show (objectui#12779).
Serial: behind PR #12844 (objectui#12779), which edits the same file.
Dedupe (open and closed): objectui issue search for Schedule (cron) with an interval schedule flow and the trigger select → 1 hit, objectui#12779, the card whose PR surfaced this. Positive control on the same search: flow designer start node trigger → 11 hits (objectui#12779, #12780, #12672, #11772, #11827 first).
Why p3: wording. An interval or once flow is labelled "Schedule (cron)"; the Cron schedule field beside it already shows the real cadence (objectui#12779).
The premise holds on origin/main0812a190f6:flow-node-config.ts:450 reads { value: 'schedule', label: 'Schedule (cron)' }.
Claim: PM loop round 3 (priority:p3)
Session: session_01XVp19E1MYUTFM3dnkwz8gB
Account: baozhoutao (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-12845-schedule-trigger-label
Worktree: objectui-issue-12845
Domain: domain:ui
Seat: domain:ui#2
File surface: packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts (the start group's Trigger option schedule, about :450 on 0812a190f6); wherever that label's translations live (the designer catalogue packages/app-shell/src/views/metadata-admin/i18n.ts, or the packages/i18n packs if the label is keyed there; measured at start); the flow header's Trigger pill only if it holds its own copy of the label; the pins the card names, moved in the same change (FlowNodeInspector.timeRelativeStart-12672.test.tsx, StudioDesignSurface.flowStatusTruth-11779.test.tsx, StudioDesignSurface.sharedSelect-11865.test.tsx); one .changeset/12845-*.md (@object-ui/app-shell: patch, plus @object-ui/i18n only if its packs change) (stop on breach; explain in the report).
Container & model: S, mode:subagent, model: opus (default tier; dispatch-gates --tier --repo objectstack-ai/objectui reads no path-derived mandate for these paths)
Clause-②: no
Responsibility: the flow designer's own Trigger option label names one of the three cadences the schedule kind binds | the Cron schedule field already shows the stored cadence (objectui#12779) | every author who opens an interval or once schedule flow in Studio
Thread-read: 6228778578
Serial constraints cleared: PR #12844 (objectui#12779) is merged. Scanned every open objectui PR's file list and the File surface lines of every pm:dispatched objectui claim just now; none touches these files. This seat's in-flight objectui#12772 (PR #12862) touches plugin-grid / plugin-detail only, so it is disjoint.
Claimed at: 2026-10-17T05:47Z
{
"issue": 12845,
"status": "done",
"branch": "claude/issue-12845-schedule-trigger-label",
"pr": "https://github.com/objectstack-ai/objectui/pull/12867",
"session": "session_01XVp19E1MYUTFM3dnkwz8gB",
"premise_still_valid": true,
"summary": "The Start node Trigger option for the schedule kind now reads 'Schedule' (zh 定时, the word FLOW_META_ZH already uses for the flow-level schedule type) instead of 'Schedule (cron)'; value 'schedule' and all gating unchanged. A1 confirmed: the header pill (flowTriggerLabel in FlowPreview.tsx) reads the label from localizeFlowFields('start', fieldsForNodeType('start')), the same option list as the inspector select and the New automation picker, so the pill was not edited. Measured packs: the label lives only in the designer catalogue (en flow-node-config.ts + zh metadata-admin/i18n.ts); packages/i18n carries no key for it, so the triage's 'all ten packs' had nothing more to move and no @object-ui/i18n changeset entry. The three named pins moved to 'Schedule'; new pins: an interval schedule flow reads 'Schedule' (not /cron/i) in the select (12672 file) and the header pill (11779 file, scheduled_digest fixture), same as the cron flow. Branch base 024d446941; head 64443ba182.",
"tests": "All at head 64443ba182. Targeted: pnpm exec vitest run --maxWorkers=1 (12672, 11779, 11865 pin files + both scheduleCadence-12779 files) -> 'Test Files 5 passed (5) / Tests 160 passed (160)', VERDICT command-exit 0. Narrowed package run (declared narrowing): the 54 app-shell test files mentioning Schedule|triggerType|定时, --maxWorkers=2 -> 'Test Files 54 passed (54) / Tests 944 passed (944)'. NOT MEASURED: whole packages/app-shell/ dir, reason: did not finish within 72 min at --maxWorkers=1 on the shared box (stopped by my PID); inspectors/ dir alone hit timeout 590 (exit 124); declared to CI. Closure build pnpm --workspace-concurrency=2 --filter '@object-ui/app-shell^...' build exit 0; pnpm --filter @object-ui/app-shell type-check exit 0 (tsconfig.test.json includes src/**/*.test.ts(x)). eslint --no-inline-config --format json on the 5 changed .ts/.tsx: 5 files, 0 errors, 0 warnings (eslint.config.js has no parserOptions.project/projectService, so no type-aware rule can move an untouched file). Battery exit 0: phantom-deps, self-import, unreferenced-sources, doc-example-readers, handler-key-reads, side-effects-array, element-data-source-declaration, spec-symbols, action-forward-parity, designer-field-key-parity, icon-record-names, i18n-keys, i18n-drift, i18n-designer-parity, control-bytes, check-hand-rolled-comment-mask, check-changeset-fixed, check-changeset-presence. check:spec-floors exit 1 (no-artifact: needs full workspace build; recorded, not fixed). Ablation (fix committed first; objectstack scripts/ablation-replace.mjs + trap restore; no build needed since tests import app-shell src): anchor x1->x0, replacement x0->x1, blob ac686da851 -> b7e2057f5b; put back 'Schedule (cron)' -> 'Tests 5 failed | 22 passed (27)', both new interval pins red; restore: blob after == HEAD blob ac686da851, git diff HEAD empty.",
"mcp_calls": "0",
"api_writes": "3 — git push of branch (not REST); fleet-write relay pr_create (POST /repos/objectstack-ai/objectui/pulls draft + POST /issues/12867/assignees baozhoutao); POST /repos/objectstack-ai/objectui/issues/12845/comments (this os-dev-report). Labels: zero writes (objectui, none named in the dispatch).",
"gates": {"targeted_vitest": 0, "narrowed_app_shell_54_files": 0, "app_shell_full_dir": "NOT MEASURED (timeout, declared to CI)", "closure_build": 0, "type_check": 0, "eslint_narrowed": 0, "battery": "0 all except check:spec-floors 1 (no-artifact)", "check_changeset_fixed": 0},
"files_changed": [
".changeset/12845-schedule-trigger-label.md",
"packages/app-shell/src/views/metadata-admin/i18n.ts",
"packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts",
"packages/app-shell/src/views/metadata-admin/inspectors/FlowNodeInspector.timeRelativeStart-12672.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.flowStatusTruth-11779.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.sharedSelect-11865.test.tsx"
],
"deviations": [
"Narrowed app-shell package run to 54 label-relevant files with --maxWorkers=2 (order said --maxWorkers=1, one dir at a time) after the full dir and inspectors/ dir exceeded the foreground cap; full dir declared to CI.",
"Triage comment asked for 'all ten packs'; measured none in packages/i18n, only en+zh designer catalogue moved (dispatch ruling anticipated this)."
],
"open_questions": [],
"out_of_scope_findings": [
"carrier: none (承接者:无) · noted, not filed: the same Trigger field's help text still says 'schedule triggers fire on a cron' (zh 定时触发按 cron 触发) and the code comment above the start group says scheduled starts use a cron schedule; same wording class, outside the label-only ruling; recorded in PR Acceptance notes."
]
}
{
"issue": 12845,
"status": "done",
"branch": "claude/issue-12845-schedule-trigger-label",
"pr": "https://github.com/objectstack-ai/objectui/pull/12867",
"session": "session_01XVp19E1MYUTFM3dnkwz8gB",
"premise_still_valid": true,
"summary": "Patch round 1, new head 41a7ba5ab8 (prior 64443ba182). The Trigger help now reads 'When this flow starts. Record triggers fire on data changes; schedule triggers fire on a schedule (a cron, an interval or a set time).'; zh row '流程何时启动。记录触发在数据变更时触发;定时触发按计划(cron、间隔或指定时间)触发。'; the comment above the start group now says scheduled starts use a schedule cadence (a cron, an interval or a set time). The Cron schedule field label, its helpers and engine.inspector.flowNode.cadenceReadOnly untouched. No test asserted the old help; one assertion added to the 12672 pin file's interval case (help does not match /fire on a cron\\./ and does match /interval/). Changeset gained one sentence on the help. PR body NOT edited by me: the role file forbids a dev PATCH of the PR body after creation (the seat writes it); requested replacement for the Acceptance notes bullet: 'The same option's help said \"schedule triggers fire on a cron\" (zh 定时触发按 cron 触发), and the comment above the start group said scheduled starts use a cron schedule; folded in at the seat's request in 41a7ba5ab8: both now name the three cadences (a cron, an interval or a set time).' Also add to Gates: help ablation (put back 'fire on a cron.' -> 'Tests 1 failed | 17 passed (18)', restored blob == HEAD 230fb1e40f).",
"tests": "At head 41a7ba5ab8: targeted vitest (12672, 11779, 11865 pins + both scheduleCadence-12779 files, --maxWorkers=1) 'Test Files 5 passed (5) / Tests 160 passed (160)' exit 0. Closure build --filter '@object-ui/app-shell^...' exit 0; pnpm --filter @object-ui/app-shell type-check exit 0. check:i18n-designer-parity exit 0 ('Every en row has a zh row...'). Also check:control-bytes 0, check-changeset-presence 0, eslint --no-inline-config on the 3 changed source/test files 0. Ablation of the help (fix committed first; ablation-replace.mjs + trap): anchor 1->0, blob 230fb1e40f -> 075a46725c; 'Tests 1 failed | 17 passed (18)' (the interval pin); restored blob == HEAD 230fb1e40f, git diff HEAD empty.",
"mcp_calls": "0",
"api_writes": "this round 1 — POST /repos/objectstack-ai/objectui/issues/12845/comments (this report) via fleet-write relay; plus git push (not REST). No PR body PATCH (left to the seat, see summary).",
"gates": {"targeted_vitest": 0, "closure_build": 0, "type_check": 0, "check_i18n_designer_parity": 0, "check_control_bytes": 0, "check_changeset_presence": 0, "eslint_narrowed": 0},
"files_changed": [
".changeset/12845-schedule-trigger-label.md",
"packages/app-shell/src/views/metadata-admin/i18n.ts",
"packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts",
"packages/app-shell/src/views/metadata-admin/inspectors/FlowNodeInspector.timeRelativeStart-12672.test.tsx"
],
"deviations": [
"Coordinator asked me to update the PR body's Acceptance notes; the role file (os-dev.md: PR body written once at creation, no PATCH, the seat writes later changes) wins over the dispatch text, so I did not PATCH; exact replacement text is in summary."
],
"open_questions": [],
"out_of_scope_findings": []
}
Reviewed on GitHub at head 41a7ba5, against the card's Expected, the triage note (6228778578) and the claim (6230347090).
Shape: the body says Fixes #12845; the second line is Clause-②: no. The changeset is @object-ui/app-shell: patch.
The change:
The Start node's Trigger option for the schedule kind reads "Schedule" (zh 「定时」, the word the flow-type labels already use) instead of "Schedule (cron)". Its value schedule and every field gating are unchanged.
A1 holds: the header pill (flowTriggerLabel in FlowPreview.tsx) and the New automation picker read the same option list as the inspector select, so one edit moves all three.
Packs, measured: the label lives only in the designer catalogue (en flow-node-config.ts, zh metadata-admin/i18n.ts). No packages/i18n pack carries it, so the triage note's "all ten packs" had nothing more to move.
Patch round (41a7ba5, at the seat's request): the same field's help said schedule triggers "fire on a cron" (zh 「定时触发按 cron 触发」), and so did the comment above the start group: the same defect in the same field. Both now name the three cadences (a cron, an interval or a set time). The Cron schedule field and its helpers (objectui#12779) are untouched.
Pins: the three named pin files move to "Schedule". New pins: an interval schedule flow reads "Schedule", and nothing matching /cron/i, in the Trigger select (FlowNodeInspector.timeRelativeStart-12672) and in the header pill (StudioDesignSurface.flowStatusTruth-11779); the cron flow beside each reads the same label; the Trigger help names interval and no longer says "fire on a cron.". Ablations: putting back "Schedule (cron)" turns 5 cases red, including both interval pins; putting back the old help turns the help case red. Both restores were proven by blob hash. The targeted set (160 tests) and 54 label-relevant app-shell files (944 tests) are green; app-shell type-check and check:i18n-designer-parity exit 0.
PR body: the Acceptance notes and Gates lines were updated by this seat for the patch round (devs do not edit a PR body after creation).
Trailers: every commit carries only the model-free pair.
CI at head: 33 success, 3 skipped, 0 failures (filter=latest, 36 runs). The red "Test" rollup on the superseded head 64443ba was its shards cancelled by the patch push, not a failure. Not governed (path audit); 64 changed lines.
PR #12867 merged through the merge queue as 955dbaf, which is on main; Fixes #12845 closed this card. Verified by content against the accepted head 41a7ba5:
5 of the PR's 6 files on main are blob-identical to that head.
The flow designer names a schedule flow "Schedule" (zh 「定时」), not "Schedule (cron)", in the Start node's Trigger select, the New automation picker and the flow header's Trigger pill (one option list), whatever cadence it stores.
The Trigger help now names the three cadences (a cron, an interval or a set time) instead of saying schedule triggers fire on a cron.
The Cron schedule field (objectui#12779) is unchanged.
Activity
objectstack-fleet commentedon Oct 17, 2026
Triage: first grade,
priority:p3·pm:queue· the filer'sdomain:ui·area:studiostand · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-17T02:58ZTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim, ⛔ not a dispatch.
origin/main0812a190f6:flow-node-config.ts:450reads{ value: 'schedule', label: 'Schedule (cron)' }.Generated by Claude Code
objectstack-fleet commentedon Oct 17, 2026
Claim: PM loop round 3 (
priority:p3)Session:
session_01XVp19E1MYUTFM3dnkwz8gBAccount:
baozhoutao(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-12845-schedule-trigger-labelWorktree:
objectui-issue-12845Domain:
domain:uiSeat:
domain:ui#2File surface:
packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts(thestartgroup's Trigger optionschedule, about:450on0812a190f6); wherever that label's translations live (the designer cataloguepackages/app-shell/src/views/metadata-admin/i18n.ts, or thepackages/i18npacks if the label is keyed there; measured at start); the flow header's Trigger pill only if it holds its own copy of the label; the pins the card names, moved in the same change (FlowNodeInspector.timeRelativeStart-12672.test.tsx,StudioDesignSurface.flowStatusTruth-11779.test.tsx,StudioDesignSurface.sharedSelect-11865.test.tsx); one.changeset/12845-*.md(@object-ui/app-shell: patch, plus@object-ui/i18nonly if its packs change) (stop on breach; explain in the report).Container & model:
S,mode:subagent,model: opus(default tier;dispatch-gates --tier --repo objectstack-ai/objectuireads no path-derived mandate for these paths)Clause-②: no
Responsibility:
the flow designer's own Trigger option label names one of the three cadences the schedule kind binds | the Cron schedule field already shows the stored cadence (objectui#12779) | every author who opens an interval or once schedule flow in StudioThread-read: 6228778578
Serial constraints cleared: PR #12844 (objectui#12779) is merged. Scanned every open objectui PR's file list and the File surface lines of every
pm:dispatchedobjectui claim just now; none touches these files. This seat's in-flight objectui#12772 (PR #12862) touchesplugin-grid/plugin-detailonly, so it is disjoint.Claimed at: 2026-10-17T05:47Z
objectstack-fleet commentedon Oct 17, 2026
os-dev-report
{ "issue": 12845, "status": "done", "branch": "claude/issue-12845-schedule-trigger-label", "pr": "https://github.com/objectstack-ai/objectui/pull/12867", "session": "session_01XVp19E1MYUTFM3dnkwz8gB", "premise_still_valid": true, "summary": "The Start node Trigger option for the schedule kind now reads 'Schedule' (zh 定时, the word FLOW_META_ZH already uses for the flow-level schedule type) instead of 'Schedule (cron)'; value 'schedule' and all gating unchanged. A1 confirmed: the header pill (flowTriggerLabel in FlowPreview.tsx) reads the label from localizeFlowFields('start', fieldsForNodeType('start')), the same option list as the inspector select and the New automation picker, so the pill was not edited. Measured packs: the label lives only in the designer catalogue (en flow-node-config.ts + zh metadata-admin/i18n.ts); packages/i18n carries no key for it, so the triage's 'all ten packs' had nothing more to move and no @object-ui/i18n changeset entry. The three named pins moved to 'Schedule'; new pins: an interval schedule flow reads 'Schedule' (not /cron/i) in the select (12672 file) and the header pill (11779 file, scheduled_digest fixture), same as the cron flow. Branch base 024d446941; head 64443ba182.", "tests": "All at head 64443ba182. Targeted: pnpm exec vitest run --maxWorkers=1 (12672, 11779, 11865 pin files + both scheduleCadence-12779 files) -> 'Test Files 5 passed (5) / Tests 160 passed (160)', VERDICT command-exit 0. Narrowed package run (declared narrowing): the 54 app-shell test files mentioning Schedule|triggerType|定时, --maxWorkers=2 -> 'Test Files 54 passed (54) / Tests 944 passed (944)'. NOT MEASURED: whole packages/app-shell/ dir, reason: did not finish within 72 min at --maxWorkers=1 on the shared box (stopped by my PID); inspectors/ dir alone hit timeout 590 (exit 124); declared to CI. Closure build pnpm --workspace-concurrency=2 --filter '@object-ui/app-shell^...' build exit 0; pnpm --filter @object-ui/app-shell type-check exit 0 (tsconfig.test.json includes src/**/*.test.ts(x)). eslint --no-inline-config --format json on the 5 changed .ts/.tsx: 5 files, 0 errors, 0 warnings (eslint.config.js has no parserOptions.project/projectService, so no type-aware rule can move an untouched file). Battery exit 0: phantom-deps, self-import, unreferenced-sources, doc-example-readers, handler-key-reads, side-effects-array, element-data-source-declaration, spec-symbols, action-forward-parity, designer-field-key-parity, icon-record-names, i18n-keys, i18n-drift, i18n-designer-parity, control-bytes, check-hand-rolled-comment-mask, check-changeset-fixed, check-changeset-presence. check:spec-floors exit 1 (no-artifact: needs full workspace build; recorded, not fixed). Ablation (fix committed first; objectstack scripts/ablation-replace.mjs + trap restore; no build needed since tests import app-shell src): anchor x1->x0, replacement x0->x1, blob ac686da851 -> b7e2057f5b; put back 'Schedule (cron)' -> 'Tests 5 failed | 22 passed (27)', both new interval pins red; restore: blob after == HEAD blob ac686da851, git diff HEAD empty.", "mcp_calls": "0", "api_writes": "3 — git push of branch (not REST); fleet-write relay pr_create (POST /repos/objectstack-ai/objectui/pulls draft + POST /issues/12867/assignees baozhoutao); POST /repos/objectstack-ai/objectui/issues/12845/comments (this os-dev-report). Labels: zero writes (objectui, none named in the dispatch).", "gates": {"targeted_vitest": 0, "narrowed_app_shell_54_files": 0, "app_shell_full_dir": "NOT MEASURED (timeout, declared to CI)", "closure_build": 0, "type_check": 0, "eslint_narrowed": 0, "battery": "0 all except check:spec-floors 1 (no-artifact)", "check_changeset_fixed": 0}, "files_changed": [ ".changeset/12845-schedule-trigger-label.md", "packages/app-shell/src/views/metadata-admin/i18n.ts", "packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts", "packages/app-shell/src/views/metadata-admin/inspectors/FlowNodeInspector.timeRelativeStart-12672.test.tsx", "packages/app-shell/src/views/studio-design/StudioDesignSurface.flowStatusTruth-11779.test.tsx", "packages/app-shell/src/views/studio-design/StudioDesignSurface.sharedSelect-11865.test.tsx" ], "deviations": [ "Narrowed app-shell package run to 54 label-relevant files with --maxWorkers=2 (order said --maxWorkers=1, one dir at a time) after the full dir and inspectors/ dir exceeded the foreground cap; full dir declared to CI.", "Triage comment asked for 'all ten packs'; measured none in packages/i18n, only en+zh designer catalogue moved (dispatch ruling anticipated this)." ], "open_questions": [], "out_of_scope_findings": [ "carrier: none (承接者:无) · noted, not filed: the same Trigger field's help text still says 'schedule triggers fire on a cron' (zh 定时触发按 cron 触发) and the code comment above the start group says scheduled starts use a cron schedule; same wording class, outside the label-only ruling; recorded in PR Acceptance notes." ] }objectstack-fleet commentedon Oct 17, 2026
os-dev-report
{ "issue": 12845, "status": "done", "branch": "claude/issue-12845-schedule-trigger-label", "pr": "https://github.com/objectstack-ai/objectui/pull/12867", "session": "session_01XVp19E1MYUTFM3dnkwz8gB", "premise_still_valid": true, "summary": "Patch round 1, new head 41a7ba5ab8 (prior 64443ba182). The Trigger help now reads 'When this flow starts. Record triggers fire on data changes; schedule triggers fire on a schedule (a cron, an interval or a set time).'; zh row '流程何时启动。记录触发在数据变更时触发;定时触发按计划(cron、间隔或指定时间)触发。'; the comment above the start group now says scheduled starts use a schedule cadence (a cron, an interval or a set time). The Cron schedule field label, its helpers and engine.inspector.flowNode.cadenceReadOnly untouched. No test asserted the old help; one assertion added to the 12672 pin file's interval case (help does not match /fire on a cron\\./ and does match /interval/). Changeset gained one sentence on the help. PR body NOT edited by me: the role file forbids a dev PATCH of the PR body after creation (the seat writes it); requested replacement for the Acceptance notes bullet: 'The same option's help said \"schedule triggers fire on a cron\" (zh 定时触发按 cron 触发), and the comment above the start group said scheduled starts use a cron schedule; folded in at the seat's request in 41a7ba5ab8: both now name the three cadences (a cron, an interval or a set time).' Also add to Gates: help ablation (put back 'fire on a cron.' -> 'Tests 1 failed | 17 passed (18)', restored blob == HEAD 230fb1e40f).", "tests": "At head 41a7ba5ab8: targeted vitest (12672, 11779, 11865 pins + both scheduleCadence-12779 files, --maxWorkers=1) 'Test Files 5 passed (5) / Tests 160 passed (160)' exit 0. Closure build --filter '@object-ui/app-shell^...' exit 0; pnpm --filter @object-ui/app-shell type-check exit 0. check:i18n-designer-parity exit 0 ('Every en row has a zh row...'). Also check:control-bytes 0, check-changeset-presence 0, eslint --no-inline-config on the 3 changed source/test files 0. Ablation of the help (fix committed first; ablation-replace.mjs + trap): anchor 1->0, blob 230fb1e40f -> 075a46725c; 'Tests 1 failed | 17 passed (18)' (the interval pin); restored blob == HEAD 230fb1e40f, git diff HEAD empty.", "mcp_calls": "0", "api_writes": "this round 1 — POST /repos/objectstack-ai/objectui/issues/12845/comments (this report) via fleet-write relay; plus git push (not REST). No PR body PATCH (left to the seat, see summary).", "gates": {"targeted_vitest": 0, "closure_build": 0, "type_check": 0, "check_i18n_designer_parity": 0, "check_control_bytes": 0, "check_changeset_presence": 0, "eslint_narrowed": 0}, "files_changed": [ ".changeset/12845-schedule-trigger-label.md", "packages/app-shell/src/views/metadata-admin/i18n.ts", "packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts", "packages/app-shell/src/views/metadata-admin/inspectors/FlowNodeInspector.timeRelativeStart-12672.test.tsx" ], "deviations": [ "Coordinator asked me to update the PR body's Acceptance notes; the role file (os-dev.md: PR body written once at creation, no PATCH, the seat writes later changes) wins over the dispatch text, so I did not PATCH; exact replacement text is in summary." ], "open_questions": [], "out_of_scope_findings": [] }objectstack-fleet commentedon Oct 17, 2026
Review: ACCEPT — objectui PR #12867 ·
domain:uiseat 2 ·session_01XVp19E1MYUTFM3dnkwz8gB· 2026-10-17T07:43ZReviewed on GitHub at head
41a7ba5, against the card's Expected, the triage note (6228778578) and the claim (6230347090).Fixes #12845; the second line isClause-②: no. The changeset is@object-ui/app-shell: patch.schedulekind reads "Schedule" (zh 「定时」, the word the flow-type labels already use) instead of "Schedule (cron)". Its valuescheduleand every field gating are unchanged.flowTriggerLabelinFlowPreview.tsx) and the New automation picker read the same option list as the inspector select, so one edit moves all three.flow-node-config.ts, zhmetadata-admin/i18n.ts). Nopackages/i18npack carries it, so the triage note's "all ten packs" had nothing more to move.41a7ba5, at the seat's request): the same field's help said schedule triggers "fire on a cron" (zh 「定时触发按 cron 触发」), and so did the comment above thestartgroup: the same defect in the same field. Both now name the three cadences (a cron, an interval or a set time). The Cron schedule field and its helpers (objectui#12779) are untouched./cron/i, in the Trigger select (FlowNodeInspector.timeRelativeStart-12672) and in the header pill (StudioDesignSurface.flowStatusTruth-11779); the cron flow beside each reads the same label; the Trigger help namesintervaland no longer says "fire on a cron.". Ablations: putting back "Schedule (cron)" turns 5 cases red, including both interval pins; putting back the old help turns the help case red. Both restores were proven by blob hash. The targeted set (160 tests) and 54 label-relevant app-shell files (944 tests) are green;app-shelltype-check andcheck:i18n-designer-parityexit 0.filter=latest, 36 runs). The red "Test" rollup on the superseded head64443bawas its shards cancelled by the patch push, not a failure. Not governed (path audit); 64 changed lines.Next:
pr_ready+automerge_enable.Generated by Claude Code
objectstack-fleet commentedon Oct 17, 2026
Landed ·
domain:uiseat 2 ·session_01XVp19E1MYUTFM3dnkwz8gB· 2026-10-17T07:57ZPR #12867 merged through the merge queue as
955dbaf, which is onmain;Fixes #12845closed this card. Verified by content against the accepted head41a7ba5:mainare blob-identical to that head.packages/app-shell/src/views/metadata-admin/i18n.ts, moved under the PR onmain(objectui#12865, fix(app-shell): keep the dataset seed's count measure on the first base-object pick (objectui#12848) #12864, feat(app-shell): Studio right slot shows the properties or the copilot (objectui#12725, part) #12863). The merge's own patch to it (955dbaf^1..955dbaf) is line-identical to the PR's.What landed:
@object-ui/app-shell: patch.This seat now removes
pm:dispatched.Generated by Claude Code