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 }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Flow actions launched from a list toolbar still open their param dialog before the row-count refusal, and refuse in English #13397
Filing gate ① a user-visible defect with a named landing point and a reach. This is the flow-action half that objectui#13384 left out. Its fix, PR #13395, refuses a single-record script action launched with 0 or 2+ rows BEFORE any dialog, and translates the refusal. The #13384 dev found this gap while reading the source. Filed by the objectui domain:ui seat 1 (seat post #5560, project run by the Sales account, session_01WJozybDmRH8z2c5SD7vJkj). ⛔ Not a claim. Grade and labels are triage's.
Who acts: the domain:ui seat 1, by a sub-agent, after triage grades it and PRs #13395 and #13394 land. Both touch the neighbourhood: #13394 edits useConsoleActionRuntime.tsx, and #13395 adds the core member this card reuses.
Why (read, not reproduced)
Page / persona: a list page whose toolbar carries a record-scoped flow action with params. Every user.
Now: the console's flowHandler in packages/app-shell/src/hooks/useConsoleActionRuntime.tsx calls resolveServerActionRecordId directly at dispatch time. It carries no refuseBeforeInput. So with 0 or 2+ rows selected:
the param dialog runs to the end before the refusal;
the refusal shows the English error, not its new errorKey.
Show a dispatch-time refusal through its errorKey too.
Move the newTabUrl refusal to a pack key.
Done when
A record-scoped flow action launched with a row count other than 1 is refused before any dialog, with a translated toast and no request.
With 1 row it behaves as today.
The newTabUrl refusal is translated.
Pins for both, plus a zh-CN text pin.
Size: S.
Dedupe
Method: objectui issue search (repo-scoped, any state) on flowHandler and select a row at 2026-10-23T16:25Z. The only on-point hit is #13384, whose PR #13395 names this gap as out of scope. New.
Triage: lands in packages/app-shell/src/hooks/useConsoleActionRuntime.tsx (flowHandler, and the newTabUrl refusal in createConsoleServerActionHandler); rationale: the flow-action half of #13384. It reuses the refuseBeforeInput member that #13384's PR #13395 adds, which is still open, so it waits on #13384 and goes back to the queue when that lands.
Path: records · 记录上的动作与协作 | records-forms.action-param-widgets | step ②
Grade: priority:p3 — inherits #13384 (p3).
Type: Bug
Session: session_01AkmasAfXt3cu83xGzkuKhe (objectstack triage, run on the maintainer's request in the project thread)
Claim: PM loop round 6 · 2026-10-23T21:11Z
Session: session_01WJozybDmRH8z2c5SD7vJkj (domain:ui seat 1; an S card done by a sub-agent of this seat, dispatched by this project's coordinator)
Account: os-sales (the seat's linked user; the card's assignee)
Branch: claude/issue-13397-flow-row-guard
Worktree: objectui-issue-13397
Domain: domain:ui
Seat: domain:ui#1
File surface: packages/app-shell/src/hooks/useConsoleActionRuntime.tsx (flowHandler gains refuseBeforeInput; a dispatch-time refusal shown through its errorKey), packages/app-shell/src/utils/consoleServerAction.ts (the newTabUrl refusal to a pack key), packages/i18n/src/locales/*.ts (that one key), tests beside, .changeset/ (one changeset) (stop on breach; explain in the report)
Container & model: S, mode:subagent (a sub-agent of this seat, base origin/main), model: default, effort: medium (S)
Clause-②: no
Responsibility: a record-scoped flow action launched with 0 or 2+ rows runs its whole param dialog, then refuses in English | a list toolbar flow action, every user | wasted input and an untranslated refusal
Serial constraints cleared: objectui#13384 (PR #13395) and objectui#13379 (PR #13394) have both landed; no open PR touches these files (read in this act)
Activity
objectstack-fleet commentedon Oct 23, 2026
Blocked-by: #13384
Triage: lands in
packages/app-shell/src/hooks/useConsoleActionRuntime.tsx(flowHandler, and thenewTabUrlrefusal increateConsoleServerActionHandler); rationale: the flow-action half of #13384. It reuses therefuseBeforeInputmember that #13384's PR #13395 adds, which is still open, so it waits on #13384 and goes back to the queue when that lands.Path: records · 记录上的动作与协作 | records-forms.action-param-widgets | step ②
Grade:
priority:p3— inherits #13384 (p3).Type: Bug
Session:
session_01AkmasAfXt3cu83xGzkuKhe(objectstack triage, run on the maintainer's request in the project thread)Generated by Claude Code
objectstack-fleet commentedon Oct 23, 2026
Unlocked · objectstack triage seat ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-23T20:56ZBlocked-by: #13384: closedcompletedat 2026-10-23T20:50Z. Its PR fix(core): refuse a single-record action's row count before its dialog, and translate the refusal (objectui#13384) #13395 landsrefuseBeforeInput, which this card reuses.pm:blocked→pm:queue, as the hold above foresaw. Grade unchanged: p3.Generated by Claude Code
objectstack-fleet commentedon Oct 23, 2026
Claim: PM loop round 6 · 2026-10-23T21:11Z
Session:
session_01WJozybDmRH8z2c5SD7vJkj(domain:uiseat 1; an S card done by a sub-agent of this seat, dispatched by this project's coordinator)Account:
os-sales(the seat's linked user; the card's assignee)Branch:
claude/issue-13397-flow-row-guardWorktree:
objectui-issue-13397Domain:
domain:uiSeat:
domain:ui#1File surface:
packages/app-shell/src/hooks/useConsoleActionRuntime.tsx(flowHandlergainsrefuseBeforeInput; a dispatch-time refusal shown through itserrorKey),packages/app-shell/src/utils/consoleServerAction.ts(thenewTabUrlrefusal to a pack key),packages/i18n/src/locales/*.ts(that one key), tests beside,.changeset/(one changeset) (stop on breach; explain in the report)Container & model:
S,mode:subagent(a sub-agent of this seat, baseorigin/main),model: default,effort: medium(S)Clause-②: no
Responsibility: a record-scoped flow action launched with 0 or 2+ rows runs its whole param dialog, then refuses in English | a list toolbar flow action, every user | wasted input and an untranslated refusal
Serial constraints cleared: objectui#13384 (PR #13395) and objectui#13379 (PR #13394) have both landed; no open PR touches these files (read in this act)
objectstack-fleet commentedon Oct 23, 2026
LANDED
objectui#13397 由 PR objectui#13428 合入 main,合并提交
4eeb1740e9ccb7be4fca3d54f200dcf85ccea453(2026-10-23T21:57Z,经合并队列)。记录于 2026-10-23T22:00Z。Seat: domain:ui#1
落地内容:列表工具栏上的单记录流程动作,选中 0 行或多行时在打开参数框之前就被拒绝,提示已翻译、不发请求;选 1 行照旧。控制台
newTabUrl的「无记录 id」拒绝也改读语言包。撤下
pm:dispatched。席位核对见 PR comment 6375341354。fix(app-shell): refuse a toolbar flow's row count before its dialog, …