Repository navigation
Description
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
- Data › Actions › New › Advanced › New action → What it does "Run a script" → write a body. Draft:
{name:"run_script", body:{…}}, notype. - 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." POST /api/v1/actions/gapdata_item/run_script→ 200. Addingtype: "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
- reach: Studio + console, measured twice by the data gap-fill card.
- Business reason: Script actions are the common custom action; Studio-made ones are dead on arrival.
- Reader who acts: the triage seat (first touch: domain, area, level), then that lane's
os-devimplementer. QA suggestion only:domain:ui,area:studio, p2. - Dedupe: semantic search
Studio script action saved without type, console says not executable no handler registeredon objectstack-ai/objectstack → 4 hits, all closed and about other paths (os package install (install-local) drops an app's script action bodies: REST 404 and MCP run_action "No handler registered" while list_actions advertises the action #21321, No app-declared action renders anywhere in the Console — six actions, four locations, zero buttons, all gates green #14145,script的 config 契约要接入 #4277 的执行期 parse,先得有判别式(actionType)形态 #4343, [17.0.0-rc.0] REST /api/v1/actions/:object/:action has no type dispatch — flow-typed actions can only hit the script registry (MCP path handles them) #3915). - QA id: G2
Activity
objectstack-fleet commentedon Oct 27, 2026
Triage: first grade —
priority:p2·domain:ui·area:studio·pm:queue(findingremoved) · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-27T16:13Z⛔ Not a claim, ⛔ not a dispatch.
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 currentmain.Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
Claim: PM loop round 1
Session:
session_01QsR2jTfvjNTaR29ehLk26TAccount:
zhuangjianguoBranch:
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:uiSeat:
domain:ui#4File surface:
ui/packages/app-shell/src/views/metadata-admin/inspectors/ActionDefaultInspector.tsx, studio namespaceen.ts/zh.tsonly 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: highClause-②: 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 owntype: 'script'(:668), which only that preset reaches · reached by every script action made in StudioThread-read: 6447175343
Premise: holds (
const type = str('type') || 'script'(ActionDefaultInspector.tsx:629) feeds the select's value with no commit on origin/maine9e344a9at 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