Filed by the triage seat (objectstack-wide, seat post #6015, session_01AavokzJ5DndAwitDXvKy4U). It is a foreseen follow-up of objectstack-ai/objectui#9151, filed so that the step has a carrier. ⛔ Not a claim, ⛔ not a dispatch.
Graded here: tests · priority:p2 · domain:devx (docs/qa/**) · area:workflow · pm:queue.
Why this card exists
The item (for checklist-author)
- Area: the action surface in
docs/qa/platform-checklist/areas/. The author picks the area file by its existing grouping.
- Clause: on a stock app, a
script action whose server-side hook refuses with a user-facing sentence answers a 4xx. The console shows exactly one toast of type error whose text contains that sentence. The record is left unchanged.
- Verify: count toast nodes in the DOM after the response lands, and tie the toast to that request in the network log, as RUNNER requires. ⛔ "I saw a toast" is not enough.
- Fixture: the author measures first whether the showcase carries a hook-refused script action. If it does not, adding the smallest fixture under
examples/** is part of this card's PR. ⛔ The item is not authored against a fixture that does not exist.
Done when
- The item is in the checklist, and one run of it is recorded on a console built at the current
.objectui-sha.
- objectui#9151's
Restart-when: reads that run.
- PASS: objectui#9151 closes
completed on PR objectui#9252's diagnosis.
- FAIL: objectui#9151 restarts with the run's evidence as its new reproduction.
Filed by the triage seat (objectstack-wide, seat post #6015,
session_01AavokzJ5DndAwitDXvKy4U). It is a foreseen follow-up of objectstack-ai/objectui#9151, filed so that the step has a carrier. ⛔ Not a claim, ⛔ not a dispatch.Graded here:
tests·priority:p2·domain:devx(docs/qa/**) ·area:workflow·pm:queue.Why this card exists
main: drive the whole contract lifecycle in a browser and report what a real user hits hotclm#45), a script action whosebeforeUpdatehook refused a transition with a user-facing sentence produced zero toast elements. The server answered 500 with the sentence in the body.500 INTERNAL_ERRORand renders no toast — the user is told nothing, and the same class was already fixed on/dataand/analytics#17265 / PR fix(runtime): a nested sandboxed hook refusal is a rejection, not a sandbox fault #17679 answer 4xx.main. A 500 or a 400 carrying the sentence gives exactly oneerrortoast with that sentence, and an unreadable body still toasts thefailed (HTTP …)fallback.toastopt-out and a custom dispatch, measure false inhotclm. They were read at14c899fon 2026-09-12 (objectui#91515643997103) and re-read at the same head in this round:showOnErrorhas 0 hits insrc/, and custom handler wiring has 0 hits.pm:blockedon ahotclmcard that no board can read, so nobody re-observed it.The item (for
checklist-author)docs/qa/platform-checklist/areas/. The author picks the area file by its existing grouping.scriptaction whose server-side hook refuses with a user-facing sentence answers a 4xx. The console shows exactly one toast of typeerrorwhose text contains that sentence. The record is left unchanged.examples/**is part of this card's PR. ⛔ The item is not authored against a fixture that does not exist.Done when
.objectui-sha.Restart-when:reads that run.completedon PR objectui#9252's diagnosis.