Skip to content

feat(approvals): overlay Jev aging suggestion on pending items #466

Closed

Description

@sun-970

Summary

Approval aging overlay: deterministic clock vs createdAt; Jev Choice nudge / wait / discuss-close as copy only. Must not call deny. Pending + needsAttention=false must stay in the same rule-risk layer (same rule as escalation rows).

Refs #422. Do not close #422.

User story

  • Who: Owner in Approvals with many pending items.
  • Pain: isActionablePending / approvalExpiryState (apps/desktop/renderer/src/approvals/types.ts) know expiry, not “stale vs still waiting”.
  • Expected: Detail/queue: rule ageing fact; overlay suggestion. Click opens that item. Never auto verdict.

Code to find

approvalExpiryState, isActionablePending, ApprovalDetailDrawer, approval store/list routes.

Data boundary

{ createdAt, now, decision.kind, risk } only.

Acceptance

  • Expired vs pending still use existing clock helpers.
  • Overlay cannot hide pending high items.
  • No decision POST.
  • Refs #422 only.

Suggested PR

feat(approvals): overlay Jev aging suggestion on pending items

I am not merging.

Activity

  1. PeterGuy326 commented on Oct 21, 2026

    @PeterGuy326
    Contributor

    Delivered by PR #506 (squash 8930e45): the Jev aging suggestion now renders on the approval queue and detail views as suggestion-only copy ({ createdAt, now, decision.kind, risk } payload, no decision POST, pending high never hidden, click only opens the item), with the server-side aging overlay wired into the real GET /approvals projection behind ROLEWEAVE_LAYA_ENABLED. The umbrella Jev tracking stays in #422.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions