Commit 3d89caa
fix(showcase): register Mark Done action handler via inline body (#2169)
The `showcase_mark_done` action was declared `type: 'script'` but carried
neither a `body` nor a `target` handler, so AppPlugin never registered an
engine handler for it. Clicking "Mark Done" therefore hit
`POST /actions/showcase_task/showcase_mark_done`, fell through to the `'*'`
wildcard lookup, and returned `Action 'showcase_mark_done' on object '*' not
found` — surfaced in the UI as an error.
Add an L2 sandboxed `body` that flips the dedicated `done` flag and
`progress` to 100. It deliberately avoids writing `status: 'done'`: the
`task_status_flow` state-machine only permits `in_review -> done`, so a
direct status write would be rejected from Backlog/To Do/In Progress rows.
Using the `done` boolean lets the action succeed from any state.
Verified in-browser (green "Task marked done." toast, no errors) and via
API regression on an In Progress task; `pnpm verify` green (typecheck + 22 tests).
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent 3662650 commit 3d89caa
1 file changed
Lines changed: 25 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
14 | 28 | | |
15 | 29 | | |
16 | 30 | | |
17 | 31 | | |
18 | 32 | | |
19 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
20 | 44 | | |
21 | 45 | | |
22 | 46 | | |
| |||
0 commit comments