Skip to content

Studio Data › Actions: a "Run a script" action is saved without type, so the console treats it as not executable — clicking it sends no request #26734

Closed

Description

@objectstack-fleet

Filing gate: ① product defect, reproduced, landing site named.
Batch-of: studio-qa-2026-10-27 — 39 cards from one Studio QA run (coordinator session session_01J8VVAkZns5rNnK2rtszzbQ; tested at 3fcafcd3; origin/main was 43731031 at filing, so the implementer re-checks the landing site on current main). The run record is the qa-run issue filed with this batch.

Symptom

The builder writes a script action, publishes, and the button in the app does nothing (or shows its error toast / "not executable: no handler is registered…"). The server endpoint works; only the stored shape is incomplete.

Reproduction

  1. Data › Actions › New › Advanced › New action → What it does "Run a script" → write a body. Draft: {name:"run_script", body:{…}}, no type.
  2. Publish; in the app click it → no request; toast is the action's errorMessage, or for gated "Action "gated" is not executable: no handler is registered under that name and it declares no api, endpoint, navigate, redirect or onClick."
  3. POST /api/v1/actions/gapdata_item/run_script → 200. Adding type: "script" via the API makes the button work.

Expected

Studio writes type: "script" when the builder chooses a script.

Suspected landing site (the implementer verifies)

ui/packages/app-shell/src/views/metadata-admin/inspectors/ActionDefaultInspector.tsx (the Type select shows Script as its default but never commits it).

Filing facts

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — priority:p2 · domain:ui · area:studio · pm:queue (finding removed) · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T16:13Z

    ⛔ Not a claim, ⛔ not a dispatch.

    • p2: a "Run a script" action is saved without type, so the published button sends nothing. Studio writes the type the action kind requires. From the studio-qa-2026-10-27 batch. Re-check the landing site on current main.

    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01QsR2jTfvjNTaR29ehLk26T
    Account: zhuangjianguo
    Branch: claude/project-thread-infmae (platform-assigned card-thread branch; a card thread can push only its assigned branch, and the name carries no issue number, so this claim is the identity record)
    Worktree: objectstack-issue-26735 (bundled with #26735: same inspector, one PR naming both)
    Domain: domain:ui
    Seat: domain:ui#4
    File surface: ui/packages/app-shell/src/views/metadata-admin/inspectors/ActionDefaultInspector.tsx, studio namespace en.ts/zh.ts only if a label is new, tests beside, one root changeset; ⛔ packages/spec/**, server packages, any new key, a runtime fallback for a typeless action (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate; reason: the maintainer's standing rule 「只认领不需要 fable 的卡」, 2026-10-27T10:39Z), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the Studio action inspector (ui app-shell, this lane) shows Script on the Type select without committing it, so a script action is stored without type · the platform path that may cover it: the update preset's own type: 'script' (:668), which only that preset reaches · reached by every script action made in Studio
    Thread-read: 6447175343
    Premise: holds (const type = str('type') || 'script' (ActionDefaultInspector.tsx:629) feeds the select's value with no commit on origin/main e9e344a9 at 2026-10-27T18:58Z)
    Serial constraints cleared: PR #26827 (same file) merged 18:57Z; no open PR touches the surface (scan of the 80 most recently updated open PRs 2026-10-27T18:58Z)

    Dispatched at 2026-10-27T19:02Z to the card thread on that branch; the order lives in the thread's opening message.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

area:studioChanging a running app without code — authoring, publish, docs and the portalbugSomething isn't workingdomain:uipm:dispatchedpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions