Skip to content

approvals B1 closing card (ruling C on objectui#12438): the inbox opens a request on the served sys_approval_request page where the side sheet is, deletes the sheet, and lists each retired pin against its user report #12484

Open

Description

@objectstack-fleet

Filing gate ④: a coordination node, the closing card that ruling 6190549995 on objectui#12438 directs (letter C, the maintainer's 「C (推荐)」, director seat summon #42, items 1 and 4). The ruling's words: "objectui#12045's mount step is re-pointed to a closing card that is Blocked-by: every face card; objectui#12045 stays pm:blocked until then."

Parent: #2763 (B1 of the epic). objectui#12045 waits on this card.

Blocked-by: #12482
Blocked-by: #12483
Blocked-by: #12489
Blocked-by: #12490
Blocked-by: #12491

Faces 3 to 5 were filed in the seat's next fire: objectui#12489 (record-reference states, objectui#11878), objectui#12490 (the gated raw panel, objectui#5553), and objectui#12491 (flow origin and the vertical step line). This card is dispatched only when all five face cards have closed.

Reader who acts: the domain:ui seat 1 (the epic's seat, seat post #5560). It dispatches one replacement PR in objectui after the last face lands.

Dedupe (MCP search_issues, scope objectstack-ai/objectui, all states, read 2026-10-15T11:50Z): "approvals inbox replace side sheet drawer with served request page mount RecordDetailView" → 11 results, top 10 read:

None of them is this card.

What to build (once every face has landed), the ruling's item 1

  1. One PR mounts the served page where the sheet is. The approvals inbox (apps/console/src/pages/system/ApprovalsInboxPage.tsx) opens a request on the served sys_approval_request_detail page, mounted on the standard RecordDetailView over the approval routing (PR fix(console): every surface reads an approval request through the approvals routes; the served page's timeline counts and labels (objectui#12045, B1 page-mount step, part) #12432), in the place the side sheet occupies today.

  2. The same PR deletes the side sheet.

  3. The PR body lists each retired pin against the user report it came from. These are the 13 ApprovalsInboxPage.*.test.tsx files at objectui d9d9d98684:

    • approverHeadline-12110 → face objectui#12482;
    • summaryFaces-11677, hiddenFieldTrim and queueHiddenAmount → face objectui#12483;
    • recordLink, recordLinkRefused-11878, tombstone and unresolvableReference → face objectui#12489;
    • rawPayloadGate → face objectui#12490;
    • stepProgressVertical → face objectui#12491;
    • characterizationPins, cellIdentity and displayLocale-10375: queue-list pins; read each at that time, and retire or keep it with its reason.

    A pin whose face has a pinned counterpart on the served page retires. A pin with no counterpart blocks this PR, per ADR-0060 rule 3: "What already exists stays until its page migrates, and may only shrink."

Acceptance

  • The inbox opens a request on the served page. The side sheet's component and its pins are gone, and each retired pin is named against its report and the face card that carries its counterpart.
  • No face regresses: each face card's served-page pin is green on the merge.

Attribution: written by the domain:ui seat 1 in session session_01JZnppgHRp4sREcouhkQYDB, executing ruling 6190549995.

Activity

  1. added
    enhancementNew feature or request
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    area:workflowApprovals and automation — the work that runs without a person driving it
    on Oct 15, 2026
  2. objectstack-fleet commented on Oct 15, 2026

    @objectstack-fleet
    ContributorAuthor

    Carrier note for this closing card · domain:ui seat 1 · session_01JZnppgHRp4sREcouhkQYDB · 2026-10-15T18:16Z

    From objectui#12489's fit check (6198994393, out_of_scope_findings[0]): on the served sys_approval_request_detail page, the H1 is display_title, plugin-approvals' formula process_name + ' · ' + record_id. So the raw record id is on screen in all four reference states (measured: "invoice_approval · " followed by the id).

    The sheet's ApprovalsInboxPage.tombstone and .unresolvableReference pins assert that the bare id never shows. The PR that retires those pins against the served page inherits this. Its producer is objectstack packages/plugins/plugin-approvals/src/sys-approval-request.object.ts (display_title).

    Face 3's tombstone half waits on the decision on objectui#12489 (needs-user-decision). Its link half is objectui#12557.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workflowApprovals and automation — the work that runs without a person driving itdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatenhancementNew feature or requestpm:blockedpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions