feat(client): show + change the configured server URL from the login screen (#235) #238

Merged
james merged 1 commit from 235-login-server-url into main 2026-06-23 12:28:16 +00:00
Owner

Summary

Closes #235. Surfaces the configured server URL on the login screen, with a "Change server" link back to /server-setup. Native + Tauri only; PWA returns null since it's always same-origin.

What changed

  • New LoginServerRow subcomponent in apps/client/app/login.tsx — gates on Platform.OS !== "web" || isTauriShell(), reads via the same loadServerUrl + subscribe pattern as Account's ServerCard, links via router.replace("/server-setup").
  • Two new i18n keys under login: connectedTo and changeServer in packages/i18n/messages/en.json (es stays partial per ADR-0025).
  • Pre-flattened plain-object styles on the DOM-leaf Texts (no style={[...]} arrays), per the PR #232 gotcha.

Test plan

  • pnpm -F @carol/client typecheck
  • pnpm -F @carol/client lint
  • pnpm -F @carol/client test — 29 passed
  • pnpm -F @carol/client export:web — produces dist/, no layout gap on web
## Summary Closes #235. Surfaces the configured server URL on the login screen, with a "Change server" link back to `/server-setup`. Native + Tauri only; PWA returns null since it's always same-origin. ## What changed - New `LoginServerRow` subcomponent in `apps/client/app/login.tsx` — gates on `Platform.OS !== "web" || isTauriShell()`, reads via the same `loadServerUrl` + `subscribe` pattern as Account's `ServerCard`, links via `router.replace("/server-setup")`. - Two new i18n keys under `login`: `connectedTo` and `changeServer` in `packages/i18n/messages/en.json` (es stays partial per ADR-0025). - Pre-flattened plain-object styles on the DOM-leaf `Text`s (no `style={[...]}` arrays), per the PR #232 gotcha. ## Test plan - [x] `pnpm -F @carol/client typecheck` - [x] `pnpm -F @carol/client lint` - [x] `pnpm -F @carol/client test` — 29 passed - [x] `pnpm -F @carol/client export:web` — produces dist/, no layout gap on web
feat(client): show + change the configured server URL from the login screen (#235)
Some checks failed
Commits / Conventional Commits (pull_request) Successful in 17s
PR / Lint (pull_request) Successful in 4m40s
PR / Static analysis (pull_request) Successful in 2m8s
PR / OpenAPI (pull_request) Successful in 2m33s
PR / Typecheck (pull_request) Successful in 4m43s
PR / OSV-Scanner (pull_request) Successful in 1m46s
PR / Package age policy (soft) (pull_request) Successful in 1m39s
PR / Client (web export smoke) (pull_request) Successful in 2m4s
Secrets / gitleaks (pull_request) Successful in 1m44s
PR / Test (sqlite) (pull_request) Successful in 2m13s
PR / pnpm audit (pull_request) Successful in 2m21s
PR / Test (postgres) (pull_request) Failing after 2m33s
PR / Build (pull_request) Successful in 2m38s
PR / Coverage (soft) (pull_request) Successful in 2m40s
PR / Trivy (image) (pull_request) Failing after 3m57s
1da0a58df6
Add a small row below the login submit button that shows which server
this build is signing in to and a "Change server" link back to the
server-setup screen. Renders only off-origin (native + Tauri); the PWA
returns null with no layout gap since it's always same-origin.

Mirrors the loadServerUrl + subscribe pattern from the Account
ServerCard so a "change server" round-trip stays in sync if the user
comes back to /login.

📊 Test coverage

Patch coverage: no testable lines changed.

Overall (app/, lib/, db/, excluding UI per ADR-0019):

Metric Value Soft target
Lines 83.0% ≥ 50%
Branches 75.9% ≥ 75%
Functions 91.3% informational

Soft thresholds per ADR-0019. Coverage is informational and does not block merge.

<!-- coverage-comment --> ## 📊 Test coverage **Patch coverage:** no testable lines changed. **Overall** (`app/`, `lib/`, `db/`, excluding UI per ADR-0019): | Metric | Value | Soft target | |---|---|---| | Lines | 83.0% ✅ | ≥ 50% | | Branches | 75.9% ✅ | ≥ 75% | | Functions | 91.3% | informational | Soft thresholds per [ADR-0019](docs/adr/0019-coverage-soft-targets.md). Coverage is informational and does not block merge.

Trivy (container image)

Threshold: high  ·  Total findings: 121  ·  At/above threshold: 1

critical high medium low
0 1 50 70
severity id package installed / range fix
high CVE-2026-12151 undici 6.25.0 6.27.0, 7.28.0, 8.5.0
<!-- scanner-comment: trivy --> ### Trivy (container image) **Threshold:** `high` &nbsp;·&nbsp; **Total findings:** 121 &nbsp;·&nbsp; **At/above threshold:** 1 | critical | high | medium | low | |---:|---:|---:|---:| | 0 | 1 | 50 | 70 | | severity | id | package | installed / range | fix | |---|---|---|---|---| | high | [CVE-2026-12151](https://avd.aquasec.com/nvd/cve-2026-12151) | undici | 6.25.0 | `6.27.0, 7.28.0, 8.5.0` |
james merged commit 55277f7efb into main 2026-06-23 12:28:16 +00:00
james deleted branch 235-login-server-url 2026-06-23 12:28:19 +00:00
Sign in to join this conversation.
No description provided.