Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
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

Closed

Description

@objectstack-fleet

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.
  • Evidence: read on objectui at PR fix(core): refuse a single-record action's row count before its dialog, and translate the refusal (objectui#13384) #13395's head 024092b03. Not reproduced in a browser.
  • Second gap: the console wrapper's own newTabUrl refusal ("no record id available") in createConsoleServerActionHandler is a hard-coded English string.

Landing

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.


Generated by Claude Code

Activity

  1. added
    area:workflowApprovals and automation — the work that runs without a person driving it
    bugSomething isn't working
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    on Oct 23, 2026
  2. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Blocked-by: #13384

    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)


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Unlocked · objectstack triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-23T20:56Z


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    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)

  5. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    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。

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

Metadata

Metadata

Assignees

Labels

area:workflowApprovals and automation — the work that runs without a person driving itbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions