feat(showcase): stamp real submitters on the seeded approval requests#3411
Merged
Conversation
Every seeded request had a null submitter, because the demo launches flows as
SYS and the approval node stamps the requester from the flow context
(`submitterId: context?.userId ?? null`, approval-node.ts). Consequences, all
invisible until you go looking:
* 申请人 rendered as `—` on every row and in the drawer;
* the "我发起的" inbox tab was empty for every user, so that whole surface
was dead; and
* the submitter-only affordances never rendered anywhere — `Send reminder`
and `Recall` are gated on `submitter_id == ctx.user.id`, so with no
submitter they were unreachable and only 5 of the 7 declared approval
actions could ever appear.
Pass `userId` on the engine context and route it deliberately:
* Invoice Dual Sign-off → submitted by the **admin**, so the logged-in dev
admin owns one request and "我发起的" is non-empty with the submitter-only
actions visible;
* Committee Quorum and Expense Sign-off → submitted by **Mei Phone (demo)**,
who holds no approval position and is therefore a clean requester who is
never one of her own approvers.
Verified in the running console: 申请人 now shows real names, "我发起的" holds
the admin's request, and the same viewer sees `Approve / Reject / Reassign /
Send back / Request info` on Mei's requests but those **plus** `Send reminder`
and `Recall` on his own — i.e. all 7 declared actions render, gated by role.
`tsc --noEmit` passes; boot log stays at 0 ERROR.
From the #3358 §1 evidence pass; follow-up to #3409.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The gap
Every seeded approval request had a null submitter: the demo launches flows as SYS, and the approval node stamps the requester from the flow context (
submitterId: context?.userId ?? null). Three consequences, all invisible until you look:—on every row and in the drawer;Send reminderandRecallare gated onsubmitter_id == ctx.user.id, so with no submitter only 5 of the 7 declared approval actions could ever appear.The fix
Pass
userIdon the engine context, routed deliberately:Verified in the running console
申请人 now shows real names; 我发起的 holds the admin's request; and the same viewer sees
ApproveRejectReassignSend backRequest infoSend reminderandRecallso all 7 declared actions render, gated by the viewer's role.
tsc --noEmit✓, boot log 0 ERROR.Follow-up to #3409, from the #3358 §1 evidence pass. Private example → no changeset.
🤖 Generated with Claude Code