Skip to content

pairing: send the web hand-off to where FxBlox Web actually is - #116

Merged
ehsan6sha merged 1 commit into
mainfrom
fix/pairing-handoff-url
Aug 28, 2026
Merged

pairing: send the web hand-off to where FxBlox Web actually is#116
ehsan6sha merged 1 commit into
mainfrom
fix/pairing-handoff-url

Conversation

@ehsan6sha

Copy link
Copy Markdown
Member

kBloxWebPairBase pointed at https://blox.fx.land/autopin-pair, which 404sblox.fx.land has no GitHub Pages DNS record.

FxBlox Web is served from the functionland Pages project site under the org's custom domain: https://docs.fx.land/fxblox-web/. So every "Pair in browser" path — the native fallback when the FxBlox app is not installed, the desktop pairing dialog, and the web shell's "Pair Blox" button — opened a dead page.

Change

  • kBloxWebPairBasehttps://docs.fx.land/fxblox-web/autopin-pair. The fragment carrier, the three params and the return template are unchanged; only the base URL moves.
  • User-facing copy now names the product ("FxBlox Web") rather than a domain. Nine strings hardcoded a host that had already gone stale once — naming the product means the next move cannot leave the UI telling users to visit somewhere that does not serve.
  • Docs updated: AUTOPIN-HANDOFF.md, architecture.md, README.md.

Test

The unit test asserted uri.host == 'blox.fx.land'. It now asserts against kBloxWebPairBase and that the path ends in /autopin-pair — pinning the contract (users go where the constant says) without re-hardcoding a host that may move again.

All 32 tests in blox_pairing_links_test.dart pass.

Verified against the live site

https://docs.fx.land/fxblox-web/autopin-pair  → serves the app

(GitHub Pages returns a 404 status for SPA routes because 404.html is a copy of index.html — the app boots and the client router takes the route. That is the intended Pages SPA fallback, already set up by postbuild.mjs.)

`kBloxWebPairBase` pointed at `https://blox.fx.land/autopin-pair`, which 404s:
blox.fx.land has no GitHub Pages DNS record. FxBlox Web is served from the
functionland Pages project site under the org's custom domain —
`https://docs.fx.land/fxblox-web/` — hence the path prefix.

So "Pair in browser" (native fallback + the desktop dialog + the web shell's
Pair Blox button) opened a dead page. The fragment carrier, the params and the
return template are unchanged; only the base URL moves.

User-facing copy now names the product ("FxBlox Web") instead of a domain. Nine
strings hardcoded a host that had already gone stale once; naming the product
means the next move cannot leave the UI telling users to visit somewhere that
does not serve.

The unit test asserted `uri.host == 'blox.fx.land'`. It now asserts against
`kBloxWebPairBase` and that the path ends in `/autopin-pair`, so it pins the
contract — users go where the constant says — without re-hardcoding a host that
may move again. All 32 tests pass.

Docs (AUTOPIN-HANDOFF.md, architecture.md, README.md) updated to match.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyQw3WtVXDTtvJKN7ykczw
@ehsan6sha
ehsan6sha merged commit 6640e78 into main Aug 28, 2026
2 of 3 checks passed
@ehsan6sha
ehsan6sha deleted the fix/pairing-handoff-url branch August 28, 2026 16:16
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