- Fix SettingsView/SegmentsView specs to match current dialog-based
confirm flows instead of stale assumptions.
- Fix FeatureDetail delete confirmation: deleteConfirmName was
referenced but never declared, so the type-to-confirm gate was dead
code with no input or disabled binding.
- Extract the router's auth guard as authGuard so it can be tested
directly instead of duplicated inline in specs; add missing
allowAuthenticated and redirect-query coverage.
- Add specs for previously untested modules: api/client.ts (401
refresh/retry/queueing), LoginView, RegisterView, AcceptInviteView,
stores/theme.ts, utils/validation.ts, ConditionEditor, and
RuleGroupEditor.
Builds and tests are driven entirely by scripts/ci/*.sh so every step
(build, test, image build/push, QA deploy) can be run identically in
CI or on a workstation. QA runs as an isolated docker-compose stack
with its Postgres volume wiped and recreated on each deploy.