Дмитрий
9ff7bc8fa0
feat(биллинг-фронт): баланс на запуске — сообщения в рублях, метка «не запущен», группы
...
Фронт для правила «баланс блокирует запуск, а не создание»:
- ProjectLimitOverloadDialog переформулирован в «Проект не запущен — пополните
~X ₽ или уменьшите объём» (сумма в рублях topup_rub).
- NewProjectDialog: создание всегда успешно; при launch.deferred показывает
сообщение (не блок). Update-лимита 409 → тот же диалог.
- Возобновление (toggle-active) ловит 409 balance_insufficient (стор не
переключает is_active), показывает диалог; постоянная метка «Не запущен —
не хватает баланса» на карточке/в панели по preflight_blocked_at/balance_blocked.
- BulkActionsBar: сводка «Запущено N, отложено M — не хватает баланса» на resume.
- Автоподбор: CreateScreen показывает сводку запуска (рубли); FieldCompetitor
массовые pause/resume через общий POST /api/projects/bulk (наследует BULK_MAX,
слепок-защиту, балансовый гейт).
- ProjectResource отдаёт preflight_blocked_at.
Новые/обновлённые фронт-тесты зелёные. Пред-существующий красный baseline
фронт-набора (ErrorView/Settings/Legal/… + ProjectsView v-show) не трогался.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 12:04:16 +03:00
..
2026-06-17 05:17:12 +03:00
2026-06-30 04:57:58 +03:00
2026-06-17 05:17:12 +03:00
2026-06-17 05:17:12 +03:00
2026-05-17 07:13:50 +03:00
2026-06-28 10:14:47 +03:00
2026-05-09 05:33:21 +03:00
2026-06-17 05:17:12 +03:00
2026-05-17 07:13:50 +03:00
2026-05-17 07:13:50 +03:00
2026-06-28 08:42:19 +03:00
2026-06-28 10:14:47 +03:00
2026-05-17 05:24:44 +03:00
2026-06-17 05:17:12 +03:00
2026-06-17 05:17:12 +03:00
2026-06-26 04:27:32 +03:00
2026-06-25 18:52:39 +03:00
2026-06-17 05:17:12 +03:00
2026-06-17 05:17:12 +03:00
2026-05-17 08:18:44 +03:00
2026-05-18 03:42:41 +03:00
2026-05-18 03:42:41 +03:00
2026-06-28 12:06:56 +03:00
2026-06-28 12:06:56 +03:00
2026-06-17 05:17:12 +03:00
2026-06-19 11:29:46 +03:00
2026-05-28 09:52:42 +03:00
2026-06-19 11:29:46 +03:00
2026-05-17 03:28:05 +03:00
2026-06-18 23:33:26 +03:00
2026-06-18 23:33:26 +03:00
2026-07-02 12:04:16 +03:00
2026-07-02 12:04:16 +03:00
2026-06-28 15:41:07 +03:00
2026-06-28 15:53:36 +03:00
2026-06-30 06:42:33 +03:00
2026-07-02 12:04:16 +03:00
2026-07-01 18:27:00 +03:00
2026-06-30 04:18:46 +03:00
2026-06-30 04:18:46 +03:00
2026-06-28 15:22:36 +03:00
2026-06-28 15:33:20 +03:00
2026-06-30 04:18:46 +03:00
2026-06-30 04:18:46 +03:00
2026-06-23 03:47:19 +03:00
2026-06-25 12:21:55 +03:00
2026-05-26 20:39:21 +03:00
2026-06-25 12:21:55 +03:00
2026-06-23 09:06:46 +03:00
2026-07-02 12:04:16 +03:00
2026-05-13 01:36:22 +03:00
2026-05-23 18:46:22 +03:00
2026-05-17 03:33:51 +03:00
2026-05-12 10:06:08 +03:00
2026-06-25 12:28:38 +03:00
2026-06-27 12:47:49 +03:00
2026-05-12 20:23:51 +03:00
2026-06-17 13:30:46 +03:00
2026-06-17 05:17:12 +03:00
2026-06-19 11:29:35 +03:00
2026-06-25 12:54:32 +03:00
2026-06-17 05:17:12 +03:00
2026-06-19 11:29:35 +03:00
2026-05-18 03:42:40 +03:00
2026-05-18 03:42:40 +03:00
2026-06-19 11:29:35 +03:00
2026-06-19 11:29:35 +03:00
2026-06-19 11:29:35 +03:00
2026-05-12 09:49:37 +03:00
2026-05-12 20:23:51 +03:00
2026-06-27 12:47:49 +03:00
2026-06-24 16:40:57 +03:00
2026-07-02 12:04:16 +03:00
2026-05-12 20:23:51 +03:00
2026-05-17 02:23:26 +03:00
2026-06-25 13:41:27 +03:00
2026-06-25 12:25:04 +03:00
2026-05-16 10:09:29 +03:00
2026-06-19 17:09:59 +03:00
2026-06-17 05:17:12 +03:00
2026-06-27 10:23:55 +03:00
2026-06-17 05:17:12 +03:00
2026-06-22 19:19:58 +03:00
2026-05-17 07:13:51 +03:00
2026-06-23 03:47:19 +03:00
2026-05-12 09:45:22 +03:00
2026-06-22 20:54:28 +03:00
2026-05-18 03:42:41 +03:00
2026-05-15 19:37:20 +03:00
2026-05-12 15:20:18 +03:00
2026-06-24 16:15:06 +03:00
2026-05-12 20:23:51 +03:00
2026-05-18 03:42:41 +03:00
2026-07-02 12:04:16 +03:00
2026-06-24 16:07:02 +03:00
2026-06-24 16:07:02 +03:00
2026-07-02 12:04:16 +03:00
2026-05-12 22:14:51 +03:00
2026-05-09 11:27:57 +03:00
2026-06-19 11:29:46 +03:00
2026-05-12 09:59:22 +03:00
2026-06-17 05:17:12 +03:00
2026-06-23 11:32:42 +03:00
2026-07-02 12:04:16 +03:00
2026-05-21 08:37:26 +03:00
2026-06-25 19:08:47 +03:00
2026-07-02 12:04:16 +03:00
2026-05-18 14:33:33 +03:00
2026-05-18 03:41:46 +03:00
2026-05-21 08:37:26 +03:00
2026-07-02 12:04:16 +03:00
2026-06-24 16:35:20 +03:00
2026-05-21 08:37:26 +03:00
2026-05-13 13:30:51 +03:00
2026-06-17 07:22:08 +03:00
2026-06-24 16:48:35 +03:00
2026-05-16 12:45:51 +03:00
2026-05-16 12:45:51 +03:00
2026-06-22 18:32:10 +03:00
2026-05-17 08:18:43 +03:00
2026-06-27 13:43:10 +03:00
2026-05-16 14:25:42 +03:00
2026-05-09 05:33:21 +03:00
2026-05-12 20:23:51 +03:00
2026-05-09 05:33:21 +03:00
2026-05-23 20:02:38 +03:00
2026-06-17 03:17:32 +03:00
2026-06-17 03:17:32 +03:00
2026-05-23 18:46:23 +03:00
2026-05-12 09:15:29 +03:00
2026-06-22 21:50:13 +03:00
2026-06-17 15:07:26 +03:00
2026-05-13 01:46:30 +03:00
2026-05-17 02:23:26 +03:00
2026-05-12 20:23:51 +03:00
2026-05-18 03:42:41 +03:00
2026-05-12 20:23:51 +03:00
2026-05-12 09:37:43 +03:00
2026-05-12 11:57:35 +03:00
2026-05-09 10:17:51 +03:00
2026-05-18 03:42:41 +03:00
2026-05-12 20:23:51 +03:00
2026-06-25 12:36:15 +03:00