Signature Expiry — Remediation Gap & Roadmap
Signature Expiry — Remediation Gap & Roadmap
Status: Gap identified in v0.1.286. Remediation work is pending.
Overview
The signatures workflow allows landlords, agents, and tenants to electronically sign check-in and check-out reports. Signature requests have an expiry window. Once expired, the request can no longer be completed by the recipient using the original link.
This page documents the current behaviour, the identified gap, and the planned remediation.
Current Behaviour
Dashboard Stat Card
The signatures dashboard displays a set of stat cards, including:
Expired: N
This card shows a raw count of expired signature requests but is not clickable and does not link agents to a filtered list of the expired items.
Signature Row Actions
For pending signature requests, each row in the list provides:
- Copy link — copies the signing URL to the clipboard
- Preview — opens a read-only view of the document
For expired signature requests, no actions are available. There is no Resend button or equivalent remediation option in the row UI.
Empty State
When no pending signature requests exist, the empty state reads:
"Signature requests are created from check-in and check-out report pages."
This message does not guide agents toward resolving expired requests.
Background Sweep
A background Inngest function (src/inngest/functions/signature-expiry-sweep.ts) runs a sweep to detect expired signature requests. Currently this sweep does not trigger any UI update, notification, or agent-facing prompt.
Identified Gaps
| Gap | Detail |
|---|---|
| No resend action on expired rows | Agents cannot resend an expired request without leaving the dashboard |
| Expired stat card is not actionable | The Expired: N count cannot be clicked to reach a filtered view |
| No agent notification on expiry | The background sweep detects expiry but sends no nudge email or in-app alert |
Planned Remediation
1. Resend Button on Expired Rows
Each expired signature row will gain a Resend button. Clicking it will:
- Call the existing
signatures.resendmutation, or - Generate a new signing token if no resend mutation exists.
This allows agents to action expired requests in one click without navigating away.
[ Expired ] John Smith — Check-out Report [ Resend ]
2. Hyperlinked Expired Stat Card
The Expired: N stat card will become a clickable link that navigates to:
/dashboard/signatures?status=expired
This gives agents a direct path from the summary view to the full list of expired requests requiring action.
3. Agent Nudge Email via Inngest
The existing signature-expiry-sweep.ts Inngest function will be extended to dispatch a nudge email to the responsible agent when one or more signature requests expire. The email will surface the affected document and a direct link to the signatures dashboard.
Related Files
| File | Purpose |
|---|---|
src/app/dashboard/signatures/signatures-dashboard.tsx | Renders the stat cards and signature list |
src/inngest/functions/signature-expiry-sweep.ts | Background function that detects expired requests |
Compliance Note
Under the Renters' Rights Act, timely document signing is part of a compliant check-in and check-out process. Expired signature requests that are not re-issued can delay deposit dispute resolution. Remediating this gap ensures agents are prompted to act before delays compound.