Actions decision queue
Actions at/actions is where assistant-prepared work waits for a person.
It is not the same as Audit → Actions, which is a worklist over Assurance findings.
The page asks the server three separate questions rather than filtering one loaded page in the browser.
Each lane receives its own server-owned total, pagination state, and empty result.
An unreadable response withholds both the count and the claim that nothing is waiting.
Decide on what was shown
Opening a run reads its linked staged workspace. Before approval, the UI freezes the workspace reference, revision, selection fingerprint, selected item keys, exact fixed-point amounts, currencies, and stated consequences. If any selected item is missing, non-committable, omitted, or lacks readable money evidence, approval is not offered. The approval request is built from that frozen consequence. If a refresh shows that the workspace moved while the decision was open, the comparison fails instead of silently approving the new state. Rejection requires a written reason of at most 500 characters. The page reports that reason as recorded only after it finds the exact reason in the server-returned immutable history.Coverage limit
Actions lists staged work only when it has a linkedworkflow_runs row in the current server-derived organization, user, and conversation session.
A workspace created directly against a record may have no linked run, and the backend publishes no collection read over all staged workspaces.
Such work reaches a person through its own record-specific review link and is not evidence that the Actions lane is complete over every pending decision.
Honest failures
A pre-workspace failure remains in All runs because the backend uses a left join from runs to workspaces. A legitimate completed run may say No changes proposed; a failed run shows its terminal reason instead. A lost commit response remains unknown until the exact workspace or durable receipt is reread.Verified at source
src/app/actions/page.tsxandsrc/lib/staged-decisions.tsdefine the three server-filtered lanes, frozen-consequence gate, coverage disclaimer, and written rejection record.langgraph_chat/devcenter/agent_runs_api.pyscopes runs and linked workspaces to the server-derived organization, user, and session and keeps pre-workspace failures listable.langgraph_chat/greatbook_mcp/workspaces/service.pyowns immutable revisions, validation, confirmation, commit, and receipts.