feat(ui): hide current-host sign-in row in profile #179

Merged
developer merged 1 commits from feature/hide-current-host-signin-row into development 2026-07-05 12:16:22 +00:00
Owner

Inside a Telegram/VK Mini App the host provider is auto-linked. Once the player also linked an email, canUnlink turned true and an Unlink control appeared on the host platform's own row — letting them unlink the very platform they are signed in through, which is meaningless.

Change

  • Gate the Telegram row on !insideTelegram() and the VK row on !insideVK() in Profile.svelte, reusing the runtime host detectors that already gate the link buttons.
  • Symmetric: inside TG only the TG row is hidden (the VK row still shows — VK is not the current host), and vice versa.
  • Web / native unchanged (both detectors false there); backend untouched — pure UI display gate. linkUnlink still refuses to remove the last identity.
  • Docs: FUNCTIONAL.md (+ _ru mirror).

Verification (local)

  • pnpm check — 0 errors / 0 warnings
  • pnpm test:unit — 396 passed
  • pnpm build — ok
  • pnpm test:e2e social.spec.ts — 48 passed (Chromium + WebKit), incl. link then unlink Telegram (proves the web path is unbroken)

The inside-host hide path is not reproducible in the mock e2e (host detection is bypassed there); it is a deterministic && !host inversion over already-tested detectors and is to be eyeballed on the contour.

Inside a Telegram/VK Mini App the host provider is auto-linked. Once the player also linked an email, `canUnlink` turned true and an **Unlink** control appeared on the host platform's own row — letting them unlink the very platform they are signed in through, which is meaningless. ## Change - Gate the Telegram row on `!insideTelegram()` and the VK row on `!insideVK()` in `Profile.svelte`, reusing the runtime host detectors that already gate the *link* buttons. - **Symmetric:** inside TG only the TG row is hidden (the VK row still shows — VK is not the current host), and vice versa. - **Web / native unchanged** (both detectors false there); **backend untouched** — pure UI display gate. `linkUnlink` still refuses to remove the last identity. - Docs: `FUNCTIONAL.md` (+ `_ru` mirror). ## Verification (local) - `pnpm check` — 0 errors / 0 warnings - `pnpm test:unit` — 396 passed - `pnpm build` — ok - `pnpm test:e2e social.spec.ts` — 48 passed (Chromium + WebKit), incl. *link then unlink Telegram* (proves the web path is unbroken) The inside-host hide path is not reproducible in the mock e2e (host detection is bypassed there); it is a deterministic `&& !host` inversion over already-tested detectors and is to be eyeballed on the contour.
developer added 1 commit 2026-07-05 11:10:54 +00:00
feat(ui): hide current-host sign-in row in profile
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 1m6s
CI / conformance (pull_request) Successful in 9s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m40s
c1805e5b7c
Inside a Telegram/VK Mini App the host provider is auto-linked. Once the
player also linked an email, `canUnlink` turned true and the "Unlink"
control appeared on the host platform's own row — letting them unlink the
very platform they are signed in through, which is meaningless.

Gate the Telegram row on `!insideTelegram()` and the VK row on
`!insideVK()`, reusing the runtime host detectors that already gate the
"link" buttons. Symmetric: inside TG only the TG row is hidden (the VK row
still shows, since VK is not the current host), and vice versa. The web and
native builds are unchanged (both detectors are false there); the backend
is untouched — this is a UI display gate, and `linkUnlink` still refuses to
remove the last identity.

Docs: FUNCTIONAL.md (+_ru mirror).
owner approved these changes 2026-07-05 11:15:24 +00:00
Dismissed
owner approved these changes 2026-07-05 12:12:14 +00:00
developer merged commit 101a3f118c into development 2026-07-05 12:16:22 +00:00
developer deleted branch feature/hide-current-host-signin-row 2026-07-05 12:16:22 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#179