Repository navigation
Hidden diagnostics viewer, app-wide logging, unified dialogs, git hardening - #33
Merged
Merged
Conversation
added 3 commits
November 12, 2026 13:00
A bounded in-memory log every module can append to without Android dependencies, mirrored to Logcat and a rotating file pair (filesDir/logs/app.log + app.old) installed by the application class. The hidden diagnostics screen built next tails this buffer live, so a user can capture exactly what happened — including details the message bars truncate — before reporting a bug. Wiring (every user-visible failure now reaches the log): - app startup (including Keystore failures, Logcat only — no secrets); - bootstrap phases via BootstrapManager.log(); - server start/exit failures in ManagedServer; - OpenCodeClient HTTP rejections, HTML-instead-of-JSON and unparsable responses; - ChatViewModel catch paths (agent list, todos, questions, connection, SSE stream, session reload); - SettingsViewModel connection tests and sign-in method fetches.
Git operations in Files now fail with a next step, not a dead end: - every recognised git failure class (identity missing, auth/token, diverged history, unborn branch, unreachable host, missing CA store) appends a localized hint to the error message (git_hint_* strings); - git status tracking headers are parsed into ahead/behind counters exposed via FilesUiState.gitAhead/gitBehind (UI chips come with the GitBar change in the following commit); - commit refuses with a pointer to Settings → Git when the identity is not configured, instead of git's "Please tell me who you are"; - push reports "nothing to push" when git already reports up to date instead of a fake success line; - every command (argv only — credentials stay in the environment) and every failure lands in the AppLog diagnostic buffer with its exit code. Strings for the hints and counters ship in both EN and RU.
Hidden log viewer (task: "скрытая возможность просмотра логов"): - five taps within four seconds on the drawer version footer navigate to a Diagnostics screen (haptic confirms the unlock; deliberately undiscoverable — support tells the user the gesture); - the screen tails the AppLog buffer live with minimum-level filter chips, tag/text search, an auto-scroll toggle and entry counts; - actions: copy to clipboard, share as text via the system sheet, and clear (destructive-toned confirmation). Unified dialog voice (task: "приведи модальные окна в порядок"): - new OcConfirmDialog / OcInputDialog in the design system: tinted leading emblem, one primary action, one quiet dismissal, destructive actions in the error palette with a matching emblem, autofocused input with inline validation and IME-done-to-confirm; - all ten simple confirmations across Files, Chat, Terminal, Settings and the startup path now use them (delete/discard/restart/reset/data clearing are destructive-toned; clone/new/rename gained live validation that catches non-HTTPS URLs before the clone attempt); - the commit and session-rename dialogs keep their richer layouts but join the emblem convention. GitBar shows the new ahead/behind chips (↑N/↓M) so the sync state is visible without running a push.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что внутри
1. Скрытый просмотрщик логов (задача 1)
2. Полноценное логирование и обработка ошибок (задача 2)
AppLogвcore/model: ограниченный кольцевой буфер (1500 записей) без Android-зависимостей, зеркала — Logcat и ротируемая пара файловfilesDir/logs/; sink переживает смерть процесса для разбора багрепорта.3. Модальные окна приведены в порядок (задача 3)
OcConfirmDialog/OcInputDialogв дизайн-системе: тонированная эмблема, один яркое действие + тихая отмена, деструктивные действия — красная палитра с иконкой, автофокус, валидация прямо в поле, подтверждение с клавиатуры (IME Done).4. Git-работа как можно надёжнее (задача 4)
git status -b.Проверка
56e15f2(ядро логирования),1f382b7(git-харденинг + строки),0993e6d(UI: просмотрщик + диалоги).