# Changelog All notable Hermes Mobile source changes are recorded here. Entries are added during the same work loop as their implementation; release artifacts are only listed after source commit, checks, and APK upload are verified. ## Unreleased ### Added - Added transport DTOs and domain repository contracts for server profiles, authentication, sessions, messages, stream events, tool results, and artifacts. - Added DTO-to-domain/UI mappers, stream reducer behavior, and a fake Hermes repository with unit coverage for mappings, stream reduction, and repository fixtures. - Added a fake-data Compose chat proving ground with local session rail/list, context controls, keyboard-safe composer, send/cancel/retry, and seeded empty/loading/reconnecting/error states. - Added typed user, assistant, system, error, and streaming chat models; selectable markdown-friendly text, copyable horizontally scrollable code blocks, expandable tool results, and reducer unit tests. - Added a Compose design-system package with color, semantic status, spacing, typography, shape, elevation, and motion tokens. - Added light and dark Hermes Compose themes backed by Material 3 color schemes. - Added Compose previews for small phone, normal phone, tablet width, light theme, and dark theme component coverage. - Added native Android chat, workspace, settings, local defaults, companion health, and file editing surfaces for the beta client. - Added `PROJECT_PLAN.md` as the project-controlled milestone plan. ### Changed - Changed the fake chat seed path to reuse the fake Hermes repository preview state. - Extracted shared Compose cards, rows, buttons, text fields, notices, message bubbles, list scaffolds, and code surfaces out of `MainActivity.kt`. - Updated the native Appearance screen to describe system light/dark theming and design tokens. - Updated companion `/api/chat` to call `hermes chat -Q --source tool -q `, sanitize CLI banners/help/control output, truncate large mobile replies, and return structured failures. - Reconciled `docs/ROADMAP.md` to the current native Android beta state. - Ignored `.gradle-user/` and `.dev/` alongside existing generated build artifacts. ### Fixed - Fixed companion/mobile lint issues from missing Node globals and an unused React settings value. ### Verification - Parent preflight immediately before B1 completion — script PASS; Android `:app:assembleDebug` BUILD SUCCESSFUL, 35 tasks total and 6 executed. - Parent preflight immediately before B1 completion — `git diff --check` passed. - `git diff --check` — passed - `GRADLE_USER_HOME=/root/hermes-mobile/.gradle-user ./gradlew :app:testDebugUnitTest :app:assembleDebug` from `apps/mobile/android` — passed - `GRADLE_USER_HOME=/root/hermes-mobile/.gradle-user ./gradlew :app:assembleDebug` from `apps/mobile/android` — passed - `npm run typecheck --workspace @hermes-mobile/companion` — passed - `npm run lint --workspace @hermes-mobile/companion` — passed - `npm run build --workspace @hermes-mobile/companion` — passed - `npm run typecheck` — passed - `npm run lint` — passed - `npm run build` — passed ## Release history _No versioned APK releases yet._ ## Entry format ```markdown ## [v0.1.0-beta.1] - YYYY-MM-DD ### Added - Concise user-visible change. ### Changed - Concise refinement or architectural change. ### Fixed - Concise defect fix. ### Verification - `command` — passed ### APK - `hermes-mobile-v0.1.0-beta.1.apk` — Telegram release topic message ```