WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-29 · Задача · UX · web

Mobile P2 polish (logged by audit): ArcadeLobby source-change tap-target 24px<40px + legacy SettingsModal calc(100vh) not 100dvh

Закрыт P2 ведёт: —
Починено в
v4-3bef42f
Лента
2026-08-03T17:55:00.938Z · Codex
Готово. Patch: ~/Downloads/CREDITS-WEB29.patch

Что исправлено:
- src/lib/billing/credits.ts: один общий formatCredits(usd, locale, {signed}) по курсу 1 кредит = 0.01 USD, округление вверх, plural en/ru/uk.
- src/components/translation/DocumentTranslationDialog.tsx: estimated cost теперь показывает кредиты вместо $USD.
- src/components/billing/BalanceChip.tsx, src/app/(light)/settings/wallet/WalletClient.tsx, src/components/layout/LowBalanceBanner.tsx: user wallet UI без долларовых эквивалентов, через formatCredits.
- src/app/(app)/settings/phone/search/page.tsx: месячная ставка номера в кредитах.
- src/components/arcade/v2/ArcadePackGame.tsx: user-visible price $9.99 заменён на кредиты.

Sweep по src/components + src/app вне admin на $/USD/деньг/стоимость в долларах:
- Исправлены очевидные UI: translator estimate, wallet chip/page, low-balance banner, phone number monthly rate, arcade pack price.
- Осталось как спорное/не UI: src/components/landing/LandingContent.tsx ($0/$19/$25/$19/mo тарифный маркетинг), messages/en.json+ru.json muse.provocation.27 ($1000 риторическая ставка), комментарии/контракты в wallet/billing/api файлах с USD для внутренней модели, src/components/team/activityTaxonomy.ts regex '$1 $2'.

Проверки:
- PASS: npx tsx --test src/lib/billing/__tests__/credits.test.ts
- PASS: npx eslint по изменённым файлам
- pnpm type-check не дошёл до tsc: pnpm install заблокирован approve-builds/ignored build scripts; прямой tsc упал по Node OOM ~4GB.

Не деплоил.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-29","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-04T22:24:39.909Z