Sloth-ninja gives Clio connections a cleaner exit

This is connector housekeeping with real consequences for client access, data rights and trust.

integrationsecurity

Sloth-ninja has tightened the Clio connection around the moments that tend to expose loose ends: a data-access request, an account deletion, or a grant that has quietly expired.

  • Data exports now show a safe record of each Clio connection, while excluding tokens and other credentials.
  • Account deletion tries to revoke Clio access first, but will still finish if Clio is unavailable.
  • A slow connection can recover after the sign-in window appears to time out if the link actually completed in the background.
  • Expired or revoked access is cleared from the status display, while temporary network failures are left alone.

The changes also keep the connector page clearer when an organisation's policy disables personal connections.

So what Legal teams using Clio should care because off-boarding and access requests now leave fewer live permissions and fewer blind spots.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from Sloth-ninja/JessicaOSS, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
dd00a829 Clio train: composed-range fix wave sloth-ninja 2026-08-03 ↗ GitHub
commit body
Address the six findings from the composed-range multi-lens review of the
Clio connector train (PRs 2/3 + policy-exemption), plus one stale-comment nit.

1. SAR completeness (#52 pattern): buildUserAccountExport gains a token-free
   clio_connections section via getClioConnectionMetadata (allowlist re-projection,
   42P01/42703-tolerant) - never any encrypted/token material.
2. Account deletion best-effort revokes each connected Clio grant
   (revokeAllClioGrants) before auth.admin.deleteUser; failures never block delete.
3. Connect-flow timeout re-checks /clio/status once before declaring failure,
   so a slow-but-successful connect self-heals; honest fixed message otherwise.
4. A refresh rejected as invalid_grant prunes the dead connection row so the
   stale connected pill self-heals; transient/network failures never prune.
5. Policy-OFF connectors page: page-level "Connectors" heading now sits above
   the Clio card (FirmManagedCard heading made optional).
6. BUILD_LOG: add the missing --- between the PR 3 and PR 2 entries.

Also correct client.test.ts's stale "5s cap" comment to 3s (MAX_RETRY_AFTER_MS).

Backend tsc clean, vitest 600/600 (589 baseline + 11 new). Frontend tsc clean,
ESLint clean on changed files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-1072.md from inside the repo you want the changes in.

⬇ Download capture-thread-1072.md