Whitebox CRM
Скачать APK
Наведите камеру планшета на QR-код или нажмите кнопку.
Текущий файл: whitebox-2.0.12-387.apk
Текущий файл: whitebox-2.0.12-387.apk
Что нового
Merge task-066: Android — init-события больших презентаций доходят до сервера + v2.0.12. Корень: Chromium (Android System WebView) молча уничтожает навигации с URL >~2 МБ символов (url::kMaxURLChars) — js-frame-транспорт init'а (вся структура презентации в percent-encoded URL iframe'а) гиб ДО shouldOverrideUrlLoading; WebKit лимита не имеет (iOS 9.2 МБ init проходит). Фикс: document-start JS-шим window.CommunicateOverridenLog (штатный slave-seam deployed communicate.js) + узкий @JavascriptInterface-мост WbUsageBridge (один метод, off-main utf8Length без материализации, main-loop хоп, без decode — анти-double-decode запинен) + компенсация второй isSlave-ветки (window.open → js-frame:openFile/openUrl по схеме) + bridge_failed-маркер в catch. Вторая 2-МБ стена: CursorWindow роняла unsentRecords на больших строках (SQLiteBlobTooBigException, клинился весь батч) — двухфазное чтение (шапки length(data) + чанки substr ≤262144 символов, байт-в-байт, суррогат-безопасно) + кумулятивный байтовый бюджет батча 24 МиБ (всегда ≥1 строка, префикс по number ASC, markSent-семантика цела). iframe-канал сохранён (degraded-девайсы + каталог); degraded-инъекция расщеплена (бросок trap не глушит шим); via=jsi/iframe симметрия; row_vanished breadcrumb. Live-verified на стенде bayer-linux-dev (devsmoke2, WB_API31): init 3 959 610 Б (209) и 9 216 681 Б (211) записаны и отправлены reportUsageStatistic 200, 24/24 is_sent=1, повторный init сжат в logData:[]; non-degraded путь (WebView 150, Pixel_Tablet, hermetic перенос web/) — шим во всех фреймах, init_hash идентичен degraded-прогону, openFile из субфрейма работает. Reviewer PASS (2 пасса: medium #1 закрыт M5, minor'ы #2/#5/#6 — M6; injection-проверки пинов), Code Review MERGEABLE (2 пасса: 2 medium закрыты M7, minor'ы #3/#5/#6/#7 — M8, Rhino-исполнение шима в тестах → BACKLOG; 3 residual-minor'а re-pass приняты). Бамп 2.0.12.
task-066: orchestration — Code Reviewer done (re-pass MERGEABLE), 3 residual-minor'а в BACKLOG
task-066: orchestration — M8 done, Code Reviewer re-pass
task-066: M8 — bridge_failed-маркер, схема в window.open-шиме, границы чанков, via=iframe
task-066: BACKLOG — CR minor #4 (Rhino-исполнение инжектируемых JS в тестах) + закрыт stale-пункт про Bayer-init (диагностирован клиентским транспортом); попутные M5-находки
task-066: plan — append M8 (CR minor'ы #3/#5/#6/#7 по решению пользователя; #4 Rhino-исполнение шима → BACKLOG); M7 done
task-066: M7 — байтовый бюджет батча usage-uploader'а; bytes без материализации вне main-хопа
task-066: plan — append M7 code-review-fix (medium 1 байтовый бюджет батча uploader'а; medium 2 bytes-подсчёт off-main)
task-066: orchestration — Reviewer done (re-pass PASS), Code Reviewer in progress
task-066: orchestration — M6 done + та же дата-правка в testing.md:344 (продолжение minor #6); Reviewer re-pass
task-066: M6 — раздельная degraded-инъекция, breadcrumb пропуска строки, даты в memory bank
task-066: plan — append M6 (minor'ы reviewer #2/#5/#6, одобрено пользователем); M5 done
task-066: M5 — non-degraded live-проверка инъекции (Pixel_Tablet, WebView 150)
task-066: plan — append M5 reviewer-fix milestone (non-degraded проверка на WebView ≥108, hermetic перенос web/ на Pixel_Tablet без логина)
task-066: orchestration — M1/M2/M4/M3 done, Reviewer in progress
task-066: M3 — бамп 2.0.12 + memory bank (Android-лимиты URL/CursorWindow)
task-066: M4 — чтение больших usage-строк чанками (обход CursorWindow ~2 МБ)
task-066: plan — append M4 fix-milestone (CursorWindow ~2МБ роняет unsentRecords на init-строках; chunked substr-чтение), из блокера M2-сценария 5
task-066: M2 — live-smoke стенда: init 209 (3.96 МБ) и 211 (9.22 МБ) доехали через jsi-канал; blocked на отправке (SQLiteBlobTooBigException)
task-066: M1 — исправление хэша коммита в implementation_progress
backlog: кандидат — Android SqlDelightDatabaseOpener.open() не идемпотентен (мультисоединения → SQLITE_BUSY deadlock'и auth/commit); из live-smoke стенда 2026-08-21
memory-bank: ловушка сима — смещённый touch-маппинг WKWebView на долго-забутом симе (лечится simctl shutdown/boot)
task-066: orchestration — Code Reviewer done (re-pass MERGEABLE), 3 residual-minor'а в BACKLOG
task-066: orchestration — M8 done, Code Reviewer re-pass
task-066: M8 — bridge_failed-маркер, схема в window.open-шиме, границы чанков, via=iframe
task-066: BACKLOG — CR minor #4 (Rhino-исполнение инжектируемых JS в тестах) + закрыт stale-пункт про Bayer-init (диагностирован клиентским транспортом); попутные M5-находки
task-066: plan — append M8 (CR minor'ы #3/#5/#6/#7 по решению пользователя; #4 Rhino-исполнение шима → BACKLOG); M7 done
task-066: M7 — байтовый бюджет батча usage-uploader'а; bytes без материализации вне main-хопа
task-066: plan — append M7 code-review-fix (medium 1 байтовый бюджет батча uploader'а; medium 2 bytes-подсчёт off-main)
task-066: orchestration — Reviewer done (re-pass PASS), Code Reviewer in progress
task-066: orchestration — M6 done + та же дата-правка в testing.md:344 (продолжение minor #6); Reviewer re-pass
task-066: M6 — раздельная degraded-инъекция, breadcrumb пропуска строки, даты в memory bank
task-066: plan — append M6 (minor'ы reviewer #2/#5/#6, одобрено пользователем); M5 done
task-066: M5 — non-degraded live-проверка инъекции (Pixel_Tablet, WebView 150)
task-066: plan — append M5 reviewer-fix milestone (non-degraded проверка на WebView ≥108, hermetic перенос web/ на Pixel_Tablet без логина)
task-066: orchestration — M1/M2/M4/M3 done, Reviewer in progress
task-066: M3 — бамп 2.0.12 + memory bank (Android-лимиты URL/CursorWindow)
task-066: M4 — чтение больших usage-строк чанками (обход CursorWindow ~2 МБ)
task-066: plan — append M4 fix-milestone (CursorWindow ~2МБ роняет unsentRecords на init-строках; chunked substr-чтение), из блокера M2-сценария 5
task-066: M2 — live-smoke стенда: init 209 (3.96 МБ) и 211 (9.22 МБ) доехали через jsi-канал; blocked на отправке (SQLiteBlobTooBigException)
task-066: M1 — исправление хэша коммита в implementation_progress
backlog: кандидат — Android SqlDelightDatabaseOpener.open() не идемпотентен (мультисоединения → SQLITE_BUSY deadlock'и auth/commit); из live-smoke стенда 2026-08-21
memory-bank: ловушка сима — смещённый touch-маппинг WKWebView на долго-забутом симе (лечится simctl shutdown/boot)
Предыдущие версии
| Версия | Сборка | Файл |
|---|---|---|
| 2.0.11 | 378 | whitebox-2.0.11-378.apk |
| 2.0.10 | 355 | whitebox-2.0.10-355.apk |
| 2.0.9 | 340 | whitebox-2.0.9-340.apk |
| 2.0.8 | 338 | whitebox-2.0.8-338.apk |
| 2.0.7 | 331 | whitebox-2.0.7-331.apk |
| 2.0.6 | 328 | whitebox-2.0.6-328.apk |
| 2.0.5 | 320 | whitebox-2.0.5-320.apk |
| 2.0.3 | 309 | whitebox-2.0.3-309.apk |
| 2.0.2 | 284 | whitebox-2.0.2-284.apk |
| 2.0.2 | 283 | whitebox-2.0.2-283.apk |
| 2.0.1 | 281 | whitebox-2.0.1-281.apk |
| 2.0.0 | 279 | whitebox-2.0.0-279.apk |