Skip to content

Repair reciprocal discovery, consent recovery and frozen-contract boundaries - #123

Merged
Proxicon merged 4 commits into
mainfrom
fix/service-link-web-discovery
Oct 5, 2026
Merged

Proxicon merged 4 commits into
mainfrom
fix/service-link-web-discovery

Conversation

@Proxicon

@Proxicon Proxicon commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Entering RatelDesk's published Web URL for reciprocal linking returns 404 because its Web API guard blocks the advertised discovery route. Signed-out consent loses the approval page, and concurrent recovery can create competing journals for the same operation. The frozen-contract review also found retries rejected solely for scope order, malformed numeric/null payloads accepted or failing late, token-cache windows extended by HTTP transit, and expired bootstrap escrow retained while linking is disabled.

This change repairs those paths for the next compatible RatelDesk prerelease:

  • Admit the exact existing Web metadata route and verify anonymous/no-store discovery, complete API parity, case handling and rejected sibling paths in the mandatory real first-run SQLite/PostgreSQL smoke.
  • Clear incoming correlation before ordinary sign-in and provide actionable guidance. An antiforgery-protected Continue action reuses only the original actor/browser session, live awaiting-approval attempt and pinned navigation. It creates no new authority and does not extend expiry.
  • Persist a new outbound journal with the existing attempt revision check in one atomic save, so a competing writer rolls back and reuses the durable operation. A real PostgreSQL barrier test drops both acknowledgements, restarts and verifies recovery of that same operation.
  • Show the responder's actual selected organization, customer and narrowed scopes before consent, retaining pinned boundaries and immutable saved summaries.
  • Enforce JSON numeric/null shapes and the exact reciprocal tenant pair before provisioning. Normalize only declared scope/capability sets, and support existing recorded fingerprints using their retained protected original credentials without rewriting approved identities or operation journals.
  • Reject direct human revocation of linked clients so reciprocal unlink records and delivers the decision. Retain independent registry revocation as an immediate current-authority defense.
  • Bound token reuse from request start with an explicit deadline and dispose expired temporary bootstrap material in batches before the linking-enabled gate.
  • Select known mailbox fixture organizations directly from the available picker list, avoiding a queued typing search reopening the selected popup. Preserve all existing organization/status, natural popup-close, lifecycle and timeout assertions; the genuine search-filter test stays intact.

Advance the sole RatelDesk version source to 0.1.1-beta.10. NetRatel's requested release remains 0.1.1-beta.1. Frozen contracts, deployed migration history, existing rate limits, deadlines and shipped deployment defaults remain unchanged.

Validation: exact SDK 10.0.400 Release build passed (0 errors; 21 existing warnings). The full current solution passed 1,930 tests with zero failures and the same six pre-existing skips (1,936 total; 17m44s). Focused corrected rotation rows passed 4/4 with zero skips. Independent review covers all 43 changed/new files and seals clean commit 335152cf1493105a1582820ba4601ef71add244d, tree 92bf6aee9ba3fc057f4b6c362f10f8c2d809a885. The full compiled C# source tree is byte-identical after the five TS driver corrections. The corrected real IMAP/SMTP mailbox lifecycle passed locally (1/1, zero skips; 3.4m); the original failure was reproduced before correction. All seventeen renewed exact-head hosted checks are required before merge; compatible-build publication and NetRatel pairing remain subsequent gates.

Refs #121. Supports BostonTechnologies/netratel#164 and BostonTechnologies/netratel#141.

Jeremi Avenant added 4 commits October 5, 2026 06:08
Expose exact Web discovery, safely resume original browser approval after sign-in,
persist outbound operation journals with the existing attempt concurrency check,
and show narrowed consent grants. Add provider, Web and browser regressions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant