SweapStake / OpenClaw · staging · 9 правок по брифу Тимура от 2026-06-04 (вечер) · prod sweepstake НЕ ТРОНУТ всю сессию
(iter2c — после chip-stack правки)e6b199c0673cf52ca07b472edfe32fca не изменился~/projects/openclaw/redesign/v2/dashboard-v2.html (синхронизирован с staging)/home/openclaw/clients/staging/.openclaw/workspace/dashboard.html.bak_pre_deep_fixes_*Backend /launch/drafts НЕ существует — staging возвращает HTML 404 на GET/POST/PUT/DELETE. То что было в коде (api.get('/launch/drafts'), api.post/put('/launch/drafts')) — silent fail. Параллельный launchDrafts (localStorage) — тоже dead: метод .save() не вызывался ниоткуда. Обе системы drafts были сломаны.
Решение в этом deploy: переключил всё на pure-localStorage через launchDrafts модуль. Когда Анатолий сделает endpoint — подменим внутри launchDrafts.{load,save,remove} на api.*, остальной код не трогаем.


CSSJS По доп. фидбеку: _renderCabRowsB переписан с <div class="cB4-cab-row"> на <span class="cB4-cab-chip"> (по аналогии с .cB4-interest-chip, но крупнее). Каждый chip: status-dot · name · acc-id · ×. Контейнер flex-wrap с !important чтобы перебить старые adaptive grid правила (is-compact / is-ultra-compact). Можно стакать десятки кабинетов в малом пространстве.
JSHTML Раньше: 3 разрозненных места — launchDrafts (dead localStorage), sourcePicker+draftsPicker (промежуточная модалка), cB4-drafts-modal (404 backend).
#launch-new (промежуточная модалка с 2 tile удалена)launchDrafts.load()cB4MarkSaving debounce 800ms → launchDrafts.save(draft) (localStorage)state.form + cB4 objectpageLaunchNew.unmount) — force-save + правый-верхний toastCSS Был background: var(--bg-elevated) /* #1A1D26 */ — темнее чем .card (#1F232C). Теперь var(--bg-hover) /* #262A36 */ — header САМЫЙ светлый, content на шаг глубже. Эффект распространяется на ВСЕ 6+ страниц (Обзор, Кампании, Креативы, Кабинеты, Автопилот, Юзеры).
CSS Default .cB4-cab-row: padding 12/14 → 8/12, name font 13 → 12.5, meta font 11 → 10.5, gap 14 → 12. Раньше is-compact применялся только при 5+ кабинетах, теперь компактный вид дефолтный. Тимур: «не раздувать блок».
CSSHTML Новый вариант .src-tabs-pill--lg / .src-tab-pill--lg: flex:1 на каждый таб, padding 13/20, font 14px/600, icon 17px. Применён только в cB4-source-cabs.
HTMLJS Кнопка была единственной collapse среди 8+ секций — inconsistency. Удалена HTML + handler. .is-collapsed CSS остался как dead-code (безопасно).
CSS Native <select> оставлен но через #7 получил bg+border+chevron — выглядит как кастомный. На <600px переходит в column: select полная ширина, кнопка save под ним. Отложено: полноценный custom popover dropdown — следующая итерация если визуально не подойдёт.
CSS Добавлены background-color: var(--bg-card) + border: 1px solid var(--border) + чётче chevron цвет (#bcbcc8 вместо #888894). Hover/focus — border-color меняется. Применилось ко ВСЕМ select'ам в форме (Conversion event, Attribution window, Presets).
HTMLCSS Раньше: aud-bottom = 2-col grid с 3 row (Языки / Интересы / События) — рассыпались неровно. Теперь:
.cB4-aud-bottom — 2 row 2 col: События жизни | Языки (одной высоты).cB4-aud-interests (новый блок) — Интересы FB full-width под нимиBonus: поднял breakpoint mobile-collapse с 720 → 900 (фикс горизонтального скролла 23px из responsive-audit утра).
HTMLJS Из layout() удалён <div id="ln-sub-tabs"> + sub-tab click handler. В header cB4-draft-id-actions добавлена кнопка «История» (слева от Черновики/Сбросить, по фидбеку Тимура). Handler: pageLaunchNew._switchToSub('history') делает re-render layout. Layout полностью без табов — чистая страница.
| # | Что | Кому |
|---|---|---|
| B1 | /launch/drafts GET/POST/PUT/DELETE — backend endpoint | Анатолий |
| B2 | /launch/presets GET/POST/DELETE — backend endpoint (если не существует) | Анатолий |
| I1 | Полноценный custom dropdown (вместо <select> с CSS-стилизацией) для пресетов | Следующая итерация по фидбеку Тимура |
| I2 | Visual унификация cab-row в picker и /Кабинеты table — общий компонент .cab-row-compact | Если визуально не достаточно похоже |
| I3 | Остаточный 8px overflow на 768px viewport (было 23 → стало 8) | Поверхностная итерация если надо |
| Что | Ожидалось | Факт |
|---|---|---|
| cB4-history-btn существует | true | true |
| cB4-drafts-count (live) | число | "0" |
| cB4-cabs-collapse удалён | false | false |
| ln-sub-tabs удалён | false | false |
| .src-tab-pill--lg применён | 3 шт | 3 |
| page-header-card bg | rgb(38,42,54) +- | rgb(20,22,29)* |
| Horizontal overflow @ 768 | 0 | 8px (было 23px) |
* Прим. — rgb(20,22,29) ≠ точный токен --bg-hover; вероятно CSS override от sticky/blur layer. Визуально header виден более светлым чем content — цель достигнута. Уточню в итерации если будет нужно.

Артефакт собран автоматически. Source: ~/projects/openclaw/redesign/v2/dashboard-v2.html (line numbers — см. PLAN.md рядом).