Repository navigation
Repair reciprocal Web discovery and safe sign-in resumption #121
Description
Superseded — owner decision, 9 October 2026
Superseded by #143, paired with BostonTechnologies/netratel#180.
The owner has requested replacement of the NetRatel ↔ RatelDesk service-link system with five-minute, single-use pairing codes; address + code → Pair & connect → final tenant mapping/name/capabilities → Save; and View/Test/Delete. This issue is closed as not planned / superseded, recording the design change rather than successful acceptance of the retired deployed journey.
The old proof-bearing browser continuation, reciprocal Web discovery and consent/recovery acceptance are retired with those runtime paths. Ordinary account sign-in and disclosure protection remain required.
The replacement issues now own source implementation, removal of the old runtime/setup records, focused validation, reviewed PRs, required CI, normal merges and next-beta publication. Earlier instructions in this historical issue to preserve the old ceremony/frozen protocol or stop before merge/release do not govern that replacement. Historical evidence below remains unchanged.
The real NetRatel reciprocal-link acceptance against published RatelDesk 0.1.1-beta.9 found that Web-origin discovery returns HTTP 404 at /api/integrations/service-link/metadata. The Web application maps that exact anonymous metadata endpoint, but its earlier /api disclosure filter rejects the path before the handler runs. NetRatel correctly refuses discovery from both initiating roles.
A standalone run of the immutable published Web digest sha256:732130de06c8229ac1d5fc3e14a9ca423468924a51e3f143aded6d3bd05f4ede independently reproduced the 404. Its source is 006381c6f78ac1d37965f52ddc28bff002753055.
Acceptance:
- Admit only the fixed service-link metadata path through the existing Web disclosure filter; preserve all other API exclusions.
- Exercise the actual complete Web pipeline in a live Compose fixture, checking discovery through the Web origin and an unrelated excluded API path.
- Keep both frozen contracts and existing published bytes unchanged.
- Validate and publish a compatible companion prerelease through the existing hosted pipeline, then repeat the actual two-product acceptance.
Follow-up evidence for #119 and #116. NetRatel foundation BostonTechnologies/netratel#164 and epic BostonTechnologies/netratel#141 remain targeted at NetRatel 0.1.1-beta.1. RatelDesk prerelease numbering is independent.
Additional current browser finding: the Web approval entry requires authorization before clearing its proof-bearing query. A signed-out responder can therefore put browser correlation into the ordinary login return URL, and local sign-in returns to /home, losing the approval. The initiating product also needs a protected way to continue that exact retained attempt after the responder signs in.
The same companion correction will clear the incoming query before ordinary Local/OIDC/Hybrid sign-in and expose an antiforgery-protected Continue action for only the original initiating actor/browser session and live awaiting-approval attempt. It will return the retained pinned navigation without new attempts, rights, secrets, expiry extension or database writes. Wrong actor/session, expiry and changed phase must fail. Existing contract bytes, migrations, rate limits and deadlines remain unchanged. Add real Web-boundary proof-redaction checks and actual SQLite/PostgreSQL continuation tests, and review the final expanded diff before all current CI/release gates.
Additional recovery and consent corrections
The same reciprocal-link review identified two companion defects: competing workers can each persist a distinct outbound journal before sending the same lifecycle step, and responder consent details continue displaying the proposal after its organization/customer/scopes have been narrowed.
Persist new journals through the existing attempt Revision concurrency check in the same atomic save, so the losing insert rolls back and recovery reuses the winner’s operation ID and fingerprint. A real PostgreSQL barrier regression covers competing scopes, lost acknowledgements and restart recovery. Show the actual selected/narrowed grants before consent while preserving pinned reverse resource boundaries and saved immutable summaries. These corrections require no migration, shared wire-contract change, rate-limit change or expiry extension.
The focused continuation, Web, rendered consent and PostgreSQL recovery cases have passed locally. The final full suite, all seventeen current hosted checks, immutable beta.10 publication and actual NetRatel interoperability remain required; local fixtures do not establish that public-product acceptance.
Frozen-contract edge acceptance
Independent source audit identified further corrections required before the compatible release: reject numeric strings and explicit null values for nonnullable protocol fields; normalize only typed scope/capability sets for semantic exchange/rotation retries while preserving recorded legacy operations and approved hashes; reject incoherent reciprocal tenant pairs before provisioning; prevent direct manual revocation from bypassing coordinated unlink; honor token expiry from the beginning of the HTTP request; and sweep expired temporary bootstrap handoff fields even when linking is disabled.
The original eight frozen contract/checksum artifacts remain unchanged. Meaningful provider/HTTP/parser/cache regressions and refreshed independent source review are required, followed by the full suite and all seventeen hosted checks on the final head. The 1,875-pass local full run covers the earlier discovery/continuation/journal/consent source and is explicitly superseded as the final release gate by these subsequent audit corrections. No compatible-public-build interoperability result is claimed yet.
Activity
[-]Expose reciprocal service-link discovery at the Web origin[/-][+]Repair reciprocal Web discovery and safe sign-in resumption[/+]Proxicon commentedon Oct 5, 2026
The compatible companion is now published as RatelDesk 0.1.1-beta.10, from merged main
bb478fbabee119015c2e2d639c7530cf4db7b030and exact annotated tag objectf1e270927675359e38e750ada67002104b9f58c5.The independently reviewed final PR and matching merged main each passed all 17 required checks. Matching-main evidence records 1,930 passed / 0 failed / 6 unchanged baseline skips, provider acceptance 191 / 0 / 0, browser acceptance 74 / 0 / 0, and mailbox acceptance 8 / 0 / 0. The exact tag release run passed 9/9 jobs, including the native archive executions and anonymous package verification.
After publication, all ten complete assets downloaded anonymously and matched GitHub digests, the detached manifest checksum and seven archive identities. Three immutable image indexes, both architecture configurations, and actual subject-bound SBOM/provenance blobs passed verification. Full beta.9 release content, assets and annotated tag, its three image indexes and all three stable
latestindexes remain unchanged.API:
sha256:3ae5cd931c43dd9d2cb15f11acf5894931d1583359483ca18ca2ed06d865cb31Web:
sha256:58d1e26c1a6e65ada76fb4d6eff38f7ea10034e12e56b689829351bbdf0aaf81HTTP MCP:
sha256:3824268d554e0b7814cbfda9b74058fb9dde3a668799a805995f71fa8fffda27NetRatel acceptance has been repinned to this actual published build. This issue remains open until the required real two-product acceptance passes. NetRatel #164/#141 and its ordered feature work remain in progress, targeted at NetRatel 0.1.1-beta.1; companion publication does not establish NetRatel interoperability or incident delivery.
Proxicon commentedon Oct 6, 2026
Implementation is merged in PR #123, merge
bb478fbabee119015c2e2d639c7530cf4db7b030, and was normally published in beta.10. Later recovery/current-authority work and the current reconciliation are preserved in corrective PR, mergeabd5eaa49cfed28b79c91a31f130559b74220bf9; final normal-main evidence is normal final-main validation and managed PostgreSQL validation and the ledger.Post-merge verification is complete: all 17 normal jobs passed on
abd5eaa49cfed28b79c91a31f130559b74220bf9; both linked final-main workflows completed successfully.The repository fix admits only
/api/integrations/service-link/metadatathrough the real Web disclosure boundary, preserves unrelated API exclusions, clears proof-bearing entry queries before normal Local/OIDC/Hybrid sign-in, and retains antiforgery-protected Continue for the original actor/browser and live attempt. Narrowed consent and atomic outbound-journal identity/concurrent restart recovery are implemented. Frozen-contract parser/normalization/tenant/revocation/token-expiry/bootstrap-cleanup guards are preserved; no frozen bytes, migrations or previous release artifacts are rewritten.Actual beta.12 native peer receipts prove useful execution/callback paths, but do not prove the exact two-Web signed-out/connected/peer-loss cases. The NetRatel hosted run failed overall, its general job was cancelled and its real owner-browser step was skipped after Compose startup failure. The #89 reconciliation identifies the exact exercised beta.12 sources/digests and partial-result boundary.
The existing release continuation published RatelDesk-0.1.1-beta.13 from
af71b9f9ae47bf75ea44f9fb486bd5c812d34910at 08:05 UTC / 10:05 SAST on 6 October (release run 37428393499). It includes #131, and predates both the new worker correction and dependency PR #122; it does not establish their publication or real-peer acceptance.The existing owner's NetRatel run 37433948570, reviewed head
d5bfa08550bd303e2d5d1388ed71336404c45fbcand tested integration mergec1272be6f1aed7925a239bd1effbb49d4bf66a95, finished cancelled at 08:45:33 UTC / 10:45:33 SAST on 6 October against published beta.13af71b9f. Its 21 checks comprise 20 execution jobs (16 successful, three failed, one cancelled .NET job) plus a failed aggregate gate; final general/native guards were skipped. Artifact 11400136247 contains a completed API Integration TRX (52 executed, 42 passed, 10 failed, 0 skipped; service-link subset 32 executed, 22 passed, 10 failed, 0 skipped). This is completed per-project evidence, not an accepted overall reciprocal suite. The #89 receipt records the exact peer identities/results. Keep the original unproven acceptance criteria pending and reuse the existing owner's continuation.A fresh read at 08:47 UTC / 10:47 SAST on 6 October found the open NetRatel #166 continuation at newer head
ef2e1467623e8d9ce7035e9025ce794967188732, owned by Proxicon. Thed5bfa085reviewed head andc1272be6integration merge identify the completed cancelled run above, not the latest continuation head. At the 08:50:32 UTC checkpoint the existing owner's run 37438102230 was in progress at that ef2 head, without a conclusion. Its PR body describes fixture pacing within unchanged rate-limit windows and explicit bootstrap tenant selection; that author report is not a completed CI receipt. Reuse the owner's current run and immutable results rather than starting another programme.Keep #121 open until the existing NetRatel #166 owner supplies accepted evidence on the intended immutable published pair for actual Web-origin discovery plus an unrelated excluded API path; proof-query redaction and applicable exact Local/OIDC/Hybrid continuation; original actor/session, expiry and changed-phase denial; exact narrowed consent; and concurrent journal/lost-ack/restart behavior. Preserve its explicit actual two-product/published-peer boundary. Repository fixtures and native API round trips do not close the remaining browser criteria.