uzairansaruzi/hermex
64.6
Adequate · 1 October 2026
109.5k
lines of production code
Swift
primary language
2
measurements over time
What this system is
This system is a mobile client application for interacting with an AI agent platform, supporting both human-led chat sessions and autonomous bot workflows. It provides comprehensive features for managing conversations, including real-time tool usage visibility, file attachments, and deep-link navigation, alongside project management tools like Kanban boards and scheduled cron tasks. The application ensures reliable background operation through encrypted push notifications and Live Activities, while offering detailed usage insights and secure local authentication.
Features
Added provider logos bundle metadata
A new Info.plist file has been added to the ProviderLogos.bundle resource directory, defining the bundle's identifier, name, and version information. This establishes the metadata required for the system to recognize and load the provider logo assets.
HermesMobile/Resources/ProviderLogos.bundle · high confidence
Bot Chat now displays work progress, tool usage, and reasoning
Users can now see a bot's internal work process directly in the chat transcript. This includes a structured plan showing completed and in-progress steps, live tool calls with their results, and the model's reasoning text. These elements are presented as collapsible cards that respect the user's display settings. Additionally, the chat supports richer interactions such as reacting to messages with Tapbacks, attaching files and images, and previewing generated artifacts.
HermesMobile/Features/Bots · high confidence
Chat composer gains camera capture, inline reference chips, and refined interaction controls
The chat composer now supports attaching photos via a new camera picker, with the preview layer detached to the background to prevent main-thread blocking. Users can insert inline reference chips for skills, workspace files, and bots directly in the text editor, which are preserved in drafts and sent as part of the message. The send button behavior has been refined: it now displays a Stop control during active streams, and a long-press (or hold) opens a choice card to Steer, Queue, or Interrupt the running response. Additionally, message context menus are now implemented using UIKit's UIContextMenuInteraction to avoid SwiftUI snapshot delays, and clarification requests are pinned above the composer with an expandable card that preserves the keyboard state.
HermesMobile/Features/Chat · high confidence
Expanded API client capabilities for Kanban, session management, and workspace controls
The networking layer now supports a comprehensive set of new and updated API interactions. Kanban functionality is introduced via a new \KanbanDataClient\ protocol and streaming client, enabling board management, card operations, and live event updates. Session management gains the ability to export transcripts (HTML/JSON), duplicate sessions, clear history, and import external CLI/messaging sessions, while also supporting project-scoped session creation. Workspace controls are expanded to allow adding, removing, renaming, and reordering workspaces directly from the app. Additionally, the client now handles provider quota checks, server-side TTS synthesis, cron job history and delivery options, skill toggling, and profile creation. Existing chat and transcription endpoints have been refined to improve error handling, support multipart requests with custom headers, and optimize network path monitoring for better offline resilience.
HermesMobile/Networking · high confidence
Expanded app capabilities and UI polish
This update introduces several new features and behavioral improvements to the HermesMobile app. Users can now secure the app with Face ID or passcode via the new AppLock feature. The chat experience is enhanced with the ability to recall the last message using the up arrow, preview staged documents, and open web links in an in-app Safari sheet. Bot interactions are improved with the ability to create, duplicate, and delete bots, as well as view bot profiles and avatars. The workspace now supports browsing files in a lazy-loaded tree and viewing source files with syntax highlighting. Additionally, the app includes better network handling with reconnection logic and a "Waiting for network" indicator, and the composer now supports sending attachments without text.
HermesMobile.xcodeproj · high confidence
Expanded model support and new Cron, Kanban, and Chat capabilities
The app now supports Cron jobs with a provider field, delivery options picker, and recent completion history, while Kanban boards feature card creation, editing, bulk actions, and live updates. Chat interactions include mid-turn steering hints, inline tool activity logs, and attachment persistence, and approval prompts now display clearer scope descriptions for Allow/Always actions. Audio attachment detection uses magic bytes for faster type identification, and ANSI escape sequences in cron transcripts are stripped for clean display.
HermesMobile/Models · high confidence
Introduces push notification support with encrypted previews and deep-link routing
This change adds the core infrastructure for receiving and handling push notifications. It registers the app with Apple Push Notification service (APNs) and a custom relay, storing server pairings and encryption keys in a shared Keychain group. Incoming banners are decrypted by a Notification Service Extension to show localized previews, and tapping a notification routes the user to the correct webui session or bot conversation via deep links, while suppressing banners for the currently active chat.
HermesMobile/Push · high confidence
Kanban cards can now be viewed in detail, edited, and created
Users can now open a Kanban card to see its full description, metadata, comments, and operational history. From this detail view, authorized users can edit card properties such as title, status, priority, and assignment via a dedicated editor. The feature also introduces the ability to create new cards directly within the Kanban board, with validation for required fields like title and status.
HermesMobile/Features/Kanban · high confidence
Live Activities now support bots and relay push handoffs with richer status details
Live Activities now display specific tool usage counts and freshness indicators instead of generic filler text, and they support bot-run activities that persist and update via push relay even when the app is suspended or locked. The manager now tracks the server context for webui runs to enable reliable push handoffs, alerts users locally when an approval or clarification is needed while the app is in the background, and handles deep-linking to bot conversations. These changes improve the accuracy of elapsed timers, reduce redundant notifications, and ensure bot activities remain visible and up-to-date through the system's push infrastructure.
HermesMobile/LiveActivities · high confidence
Memory view now displays a read-only project context document
The Memory screen now surfaces a new read-only section for the project context document, including a header with a lock icon, modification time, and a footer that indicates if a local file is overriding the global context. This section is conditionally rendered only when the server provides a non-empty context document, ensuring backward compatibility with servers that do not support this feature.
HermesMobile/Features/Memory · high confidence
Native bot artifact downloads and image uploads
The Bots networking layer now supports downloading generated artifacts and uploading images directly from the mobile app. This change introduces dedicated clients and protocols to handle file attachments, including size limits, redirect protection, and base64 encoding, enabling users to attach images to bot conversations and view generated files without relying on external tools.
HermesMobile/Networking/Bots · high confidence
New developer tooling for local simulation, benchmarking, and fixture capture
The repository now includes a suite of new scripts to streamline local development and testing workflows. Developers can run a deterministic, local Hermes agent with a scripted stub model for offline testing, capture real agent responses as sanitized JSON test fixtures, and execute XCTest suites on iOS simulators with automatic handling of hung test runners (including simulator reboot and retry). Additionally, optimized host-side benchmarks are provided to measure the performance of math formatting and streaming reply scans without simulator overhead, and a dedicated script allows uploading feature branches to a side-by-side TestFlight app for internal review.
scripts · high confidence
New high-performance diff review surface with syntax highlighting and accessibility
The ReviewDiff feature now uses a custom CoreGraphics canvas to render diffs, allowing it to handle very long files by drawing only the visible rows instead of creating thousands of UI elements. This surface supports syntax highlighting for source files, line selection via tap and long-press gestures, and full VoiceOver support with dynamic labels for added, removed, and context lines. Users can now view changed files in a single unified surface with collapsible file headers, viewed-state tracking, and horizontal panning for long lines.
HermesMobile/Features/Workspace/ReviewDiff · high confidence
New shared UI components and accessibility improvements
This update introduces several new shared components for the HermesMobile app: an ActionToast system for transient, undoable confirmations (such as session archiving) that respects VoiceOver and Reduce Motion settings; a configurable ModelPickerSheet shared across the composer, settings, and task editor; a QuickLookFilePreview for handling binary file previews; and a SectionCard container for consistent UI chrome. Additionally, the AdaptiveGlassModifier now supports an inheritsClipping option to ensure glass effects render correctly within masked scrollers, and HapticButton has been refactored to use optional performers for better testability.
HermesMobile/Features/Shared · high confidence
Support for decrypted push notification previews
A new HermesNotificationService extension has been added to handle incoming relay banners that contain mutable content. This service intercepts notifications while the app is suspended or terminated, decrypts the sealed preview using keys stored in the shared Keychain group, and rewrites the notification content before it is displayed to the user. If processing times out, the original unmodified notification is delivered.
HermesNotificationService · high confidence
Workspace file tree with syntax-highlighted source viewing
Users can now browse the workspace as a lazily loaded file tree with search, and view source files on the review surface with syntax highlighting, line selection, and copy support. The file tree resolves icons by filename or extension chain, supports fuzzy search, and keeps ancestor context during queries. Source files are rendered with a line gutter, optional word wrap, and syntax coloring that loads incrementally as the user scrolls, with a plain-text indicator for unsupported files.
HermesMobile/Features/Workspace · high confidence
Behavioural changes
App Lock and improved authentication handling
Users can now secure the app with Face ID, Touch ID, or the device passcode via a new App Lock feature that covers the interface when the app is backgrounded or inactive. The authentication flow has been refined to correctly handle OIDC and trusted-header sign-in modes, preventing false errors for servers using single sign-on or identity proxies. Additionally, removing a server account now properly cleans up associated bot connections, push notifications, and unread states.
HermesMobile/Auth · high confidence
App configuration and localization resources for mobile features
The app now supports localized app shortcuts for starting new chats, includes a comprehensive set of translated UI strings for internationalization, and updates its configuration to enable time-sensitive push notifications, shared keychain access, and local network connectivity for backend communication.
HermesMobile/Resources · high confidence
CI now prevents TestFlight uploads when the App Store release train is closed and enforces i18n completeness
The CI pipeline now fails early if a TestFlight upload attempts to use a marketing version that is already approved on the App Store, preventing App Store Connect rejection errors (90186/90062) by checking the release train status before archiving. Additionally, a new check ensures that every UI string extracted during compilation is present in the Localizable.xcstrings catalog, failing the build if any are missing to avoid shipping English-only strings. The pipeline also now provides detailed, structured reports of test failures and slowest tests in PR comments to improve debugging.
ci · high confidence
Changelog and documentation overhaul
The repository now uses a structured CHANGELOG.md to track user-facing changes by release version, replacing the previous ad-hoc documentation approach. To support this, the legacy PROJECT\_SPEC.md and PROJECT\_INTENT.md files have been removed, and AGENTS.md has been rewritten to focus on agent conventions and API verification rather than product scope. Additionally, a new CONTEXT.md file defines canonical terminology for Kanban and Chat concepts to ensure consistent language across the product.
(repo-wide) · high confidence
Configured Keychain access groups for push notification support
The configuration files now define specific Keychain access groups to support push notification features. A default access group is set for existing credentials, and a separate shared access group (appended with .push) is configured for the Notification Service Extension to securely store per-server push pairing keys without disrupting user sessions.
Config · high confidence
Debug tooling, notification prompts, and settings for ratings, tips, and UI visibility
This update introduces several new configuration and behavioral components within the app's settings and debug infrastructure. For developers, it adds DevAutoLogin to automate simulator sign-ins via environment variables and a HitchMeter overlay to visualize frame hitches during debugging. For end users, it introduces a one-time prompt to enable local alerts or push notifications after the first run, a new policy for requesting app store ratings at quiet moments based on usage history, and an optional 'coffee tip' card with its own dismissal logic. Additionally, it adds settings to hide unused main-page and chat sections (such as Files and Git controls), enables a default-off Bot Mode preview gate, and adds display preferences for showing message timestamps and folding settled turns behind an elapsed-time row.
HermesMobile/Config · high confidence
Draft persistence and cache performance improvements
The app now persists composer attachments and settings with drafts, ensuring typed text, quoted passages, staged attachments, and effective settings are restored after navigation, termination, or an abandoned new chat. Draft attachments are stored as durable, app-owned copies with file protection and automatic cleanup of unreferenced files. Cache performance is improved by stopping full-table scans and per-row fetches on cache writes, using batched lookups during transcript upserts, and adding performance signposts on hot paths. Cached messages now include additional fields like tool use IDs, tool call data, content parts, turn TPS, turn duration, and display kind, with optimized upsert logic to avoid unnecessary writes. Cached sessions now track user message counts, pending messages, worktree paths, parent session IDs, relationship types, and read-only status.
HermesMobile/Persistence · high confidence
Enhanced navigation, deep-link handling, and share import reliability
The app now supports opening bot conversations and web UI sessions directly from deep links and push notifications, holding these requests until the user is signed in or the correct server is active. Shared draft imports have been made transactional to prevent data loss, with a queue system allowing users to process multiple pending shares sequentially. Additionally, macOS users gain new keyboard shortcuts for creating chats, searching sessions, and navigating between chats via the menu bar or keyboard shortcuts.
HermesMobile · high confidence
Introduces a new, type-safe Hermes networking layer for Bot interactions
This change replaces the previous HTTP-based Bot implementation with a new, structured networking stack in HermesMobile/Networking/Hermes. It introduces a typed \HermesCall\ enum that strictly defines all JSON-RPC methods (profiles, sessions, turns, rooms) and their parameters, ensuring callers cannot send invalid requests. The new \HermesConnection\ class manages a single shared WebSocket gateway socket across all Bot screens, handling authentication, ticket-based upgrades, and connection lifecycle (including single-flight sign-ins and 401 retries). It also adds \HermesREST\ for HTTP operations and \HermesTurnOutcome\ to parse and display detailed turn failure reasons (like rate limits or billing issues) to the user.
HermesMobile/Networking/Hermes · high confidence
Live Activity widget now supports bot sessions and shows tool counts instead of filler
The Hermes Live Activity widget now displays working bot sessions alongside regular agent runs. For bot activities, the widget opens the bot directly when tapped and shows a 'Not connected' status if the socket closes, rather than implying freshness. The lock screen and Dynamic Island views now display tool counts and freshness indicators (chips) for non-bot sessions when no reply excerpt is available, replacing previous filler text. The widget also includes a new entitlement for app group sharing to support these updates.
HermesLiveActivityWidget · high confidence
Redesigned Task Editor and Agenda List with Configuration Pickers
The Tasks feature has been rebuilt to present scheduled jobs in an agenda-style list grouped by status (Now, Later Today, Tomorrow, etc.) and to offer a new editor for creating and modifying tasks. The editor sheet now includes dedicated pickers for selecting the model, provider, profile, and skills, replacing previous free-text or simpler input methods. It also supports a delivery-options picker instead of free-text delivery targets. The agenda list rows display concise status information, such as running elapsed time or failure summaries, while the task detail view provides a comprehensive configuration card and controls to run or pause tasks immediately.
HermesMobile/Features/Tasks · high confidence
Session list navigation, search, and row details overhaul
The SessionList feature now uses a dedicated \SessionNavigationState\ to manage navigation destinations, persist the last-selected session across app launches, and resolve deep links without race conditions. Session rows display an unread indicator, the session's attention state (e.g., streaming, approval pending), and a search excerpt explaining why a row matched a query. The list automatically refreshes when returning from the background, supports multi-word search, and allows users to hide unused sidebar sections. Session duplication now uses a dedicated endpoint to preserve tool calls and usage data, while archive/unarchive actions show context-aware undo toasts. A new TipJar card supports optional donations, and haptic feedback is now actor-safe.
HermesMobile/Features/SessionList · high confidence
Settings: server-synced CLI session toggles, read-only provider status, and accessible archived sessions
The Settings feature now includes a server-synced toggle for showing CLI and Claude Code sessions, which adopts the server's value on load and writes changes back with optimistic updates and error reversion. A new read-only Providers screen displays provider status, credential sources, and model catalogs without allowing key management. Archived sessions are now reachable and can be unarchived directly from the list, with proper error handling and API error forwarding. The Default Model and Default Profile pickers have been refactored to use shared, accessible list-based UIs with search and improved state management.
HermesMobile/Features/Settings · high confidence
Share extension now maps file attachments instead of loading them into memory
The Hermes share extension has been updated to use memory-mapped file access for shared attachments, significantly reducing the extension's memory footprint. By mapping file-backed pages rather than copying data into RAM, the extension handles larger files more efficiently and maintains valid mappings even after security-scoped access ends or temporary copies are deleted. This change also includes a privacy manifest update declaring the use of file timestamp APIs.
HermesShareExtension · high confidence
Share feature now uses transactional, versioned storage with file-based reservations
The share mechanism has been refactored to handle incoming shares transactionally and persist data using a new versioned file structure. Instead of holding all attachments in memory or using a single legacy file, the system now organizes data into specific directories (inbox, pending, reserved, temporary) and uses a payload versioning scheme. Incoming shares are enqueued as pending items, which are then reserved via a timed lock mechanism to ensure only one process consumes them at a time. This change improves reliability by preventing data loss during concurrent access and allows for better recovery of expired or malformed shares.
HermesMobile/Features/Share · high confidence
Usage screen redesign with provider limits and cache stats
The Insights feature has been rebuilt as a Usage screen that displays a windowed bar chart (with a metric toggle for Cost or Tokens), provider account limits, and cache efficiency statistics. Users now see a new Limits section showing per-provider quota cards and reset countdowns, alongside a new chart that supports scrubbing to inspect daily/hourly buckets. The screen also includes a Totals grid, a By Model breakdown, and Top Sessions, while replacing the previous list-based analytics view. The available time windows are now Today, 7 days, 30 days, and 90 days.
HermesMobile/Features/Insights · high confidence
Users can now enable or disable individual skills directly from the list
The Skills view now supports toggling the enabled state of skills without navigating to a detail screen. Each skill row displays a toggle switch and a context menu to enable or disable the skill, with visual feedback such as opacity changes and a "Disabled" badge for inactive skills. The interface also includes a loading state while the toggle request is in progress and handles API errors by reverting the change and showing an error message. Additionally, the search functionality now includes skill tags in its results, and the view layout has been adjusted for better readability on secondary destinations.
HermesMobile/Features/Skills · high confidence
Fixes
Onboarding: Honor Reduce Motion, lock form during connection, and update Tailscale Serve guidance
The onboarding flow now respects the system's Reduce Motion setting, disabling animations and transitions in the page indicator, keyboard action bar, and page navigation. To prevent race conditions where mid-flight edits could supersede persisted server state, the URL, password, and header fields are disabled (locked) while a connection test or configuration operation is in progress, and stale authentication status is automatically invalidated when the URL or headers change. Additionally, the setup instructions and connection prompts have been updated to reflect the use of Tailscale Serve for private HTTPS access, replacing previous references to plain HTTP or generic Tailscale URLs.
HermesMobile/Features/Onboarding · high confidence
Test coverage
Expanded test coverage for API client and app lock behavior
Added comprehensive tests for the Kanban API client (including board management, dispatcher queries, and path encoding), provider quota decoding (supporting OpenAI Codex and OpenRouter payloads), provider list decoding (handling custom providers and sparse fields), session export (verifying filename derivation and error mapping), and TTS synthesis (checking request bodies and error handling). Also added tests for the Action Toast state machine (auto-dismissal, replacement, and VoiceOver behavior) and the App Lock (authentication flows, background timing, and passcode requirements).
HermesMobileTests · high confidence
Dependencies
Add Swift Package Manager resolved dependency lockfile
Added a Package.resolved file to pin the versions of Swift Package Manager dependencies (Highlightr, KeychainAccess, NetworkImage, Splash, swift-cmark, swift-eventsource, swift-markdown-ui, and SwiftMath) to specific commits and versions. This ensures that all developers and CI environments build against the exact same dependency versions, improving build consistency and reproducibility.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 67 → 65 (-2.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 87 → 86 (-0.5)
- Architecture 98 → 98 (+0.6)
- Maturity 62 → 61 (-0.3)
- Readiness 56 → 60 (+3.7)
- Security 95 → 95 (+0.0)
- Domain Modelling 87 → 88 (+0.9)
- Performance 60 (new)
Resolved (31)
- BotClient.call (cognitive 40) (HermesMobile/Networking/Bots/BotClient.swift)
- BotClient.call (cyclomatic 30) (HermesMobile/Networking/Bots/BotClient.swift)
- BotClient.connect (cognitive 40) (HermesMobile/Networking/Bots/BotClient.swift)
- BotClient.connect (cyclomatic 24) (HermesMobile/Networking/Bots/BotClient.swift)
- BotConnectionView.connect (cognitive 27) (HermesMobile/Features/Bots/BotConnectionView.swift)
- BotConnectionView.connect (cyclomatic 19) (HermesMobile/Features/Bots/BotConnectionView.swift)
- Change coupling: ChatView.swift ↔ SettingsView.swift (HermesMobile/Features/Chat/ChatView.swift)
- ChatComposerConfigLoader.loadConfiguration (cognitive 19) (HermesMobile/Features/Chat/ChatComposerConfigLoader.swift)
- ChatStreamCoordinator.reconcileSessionLoad (cognitive 20) (HermesMobile/Features/Chat/ChatStreamCoordinator.swift)
- Duplicated block (11–12 lines × 2) (HermesMobile/Networking/APIClient+Transcribe.swift)
- Duplicated block (19–22 lines × 2) (HermesMobile/Features/Share/SharedDraftStore.swift)
- Duplicated block (23 lines × 2) (HermesMobile/Features/Kanban/KanbanFeatureState.swift)
- Duplicated block (7 lines × 3) (HermesMobile/Features/Chat/ChatViewModel.swift)
- Duplicated block (8 lines × 2) (HermesMobile/Features/Chat/ChatViewModel.swift)
- Duplicated block (8 lines × 2) (HermesMobile/Networking/APIClient+Transcribe.swift)
- Edited copy of a member (23 corresponding lines) (HermesMobile/Features/Kanban/KanbanCardDetailView.swift)
- GitDiffView.load (cognitive 17) (HermesMobile/Features/Workspace/GitDiffView.swift)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 11 more
New (242)
- APIError.errorDescription (cyclomatic 18) (HermesMobile/Networking/APIError.swift)
- AgentLiveActivityManager.observePush (cognitive 20) (HermesMobile/LiveActivities/AgentLiveActivityManager.swift)
- AgentLiveActivityManager.observePush (cyclomatic 16) (HermesMobile/LiveActivities/AgentLiveActivityManager.swift)
- AgentLiveActivityManager.requestOrUpdateActivity (cyclomatic 20) (HermesMobile/LiveActivities/AgentLiveActivityManager.swift)
- AgentLiveActivityManager.update (cognitive 26) (HermesMobile/LiveActivities/AgentLiveActivityManager.swift)
- AgentLiveActivityManager.update (cyclomatic 27) (HermesMobile/LiveActivities/AgentLiveActivityManager.swift)
- AppLockSceneDelegate.update (cognitive 17) (HermesMobile/Auth/AppLockWindow.swift)
- BotAttachmentDraft.prepare (cognitive 26) (HermesMobile/Features/Bots/BotAttachmentDraft.swift)
- BotAttachmentDraft.prepare (cyclomatic 20) (HermesMobile/Features/Bots/BotAttachmentDraft.swift)
- BotChatComposerView.composerContainer (cognitive 18) (HermesMobile/Features/Bots/BotChatComposerView.swift)
- BotChatComposerView.composerContainer (cyclomatic 19) (HermesMobile/Features/Bots/BotChatComposerView.swift)
- BotChatView.body (cognitive 40) (HermesMobile/Features/Bots/BotChatView.swift)
- BotChatView.body (cyclomatic 37) (HermesMobile/Features/Bots/BotChatView.swift)
- BotConnection.address (cognitive 23) (HermesMobile/Features/Bots/BotConnection.swift)
- BotConnection.address (cyclomatic 23) (HermesMobile/Features/Bots/BotConnection.swift)
- BotConnectionSetup.connect (cognitive 36) (HermesMobile/Features/Bots/BotConnectionView.swift)
- BotConnectionSetup.connect (cyclomatic 25) (HermesMobile/Features/Bots/BotConnectionView.swift)
- BotConnectionView.body (cognitive 19) (HermesMobile/Features/Bots/BotConnectionView.swift)
- BotConnectionView.body (cyclomatic 16) (HermesMobile/Features/Bots/BotConnectionView.swift)
- BotConversation.dispatchAnswers (cognitive 18) (HermesMobile/Features/Bots/BotConversation.swift)
- …and 222 more
Changes since last survey
- 212 commits — 158 feature/other, 54 fixes
By area
- HermesMobile/Features — 136 commits
- (root) — 32 commits
- HermesMobile/Networking — 7 commits
- HermesMobile/Resources — 7 commits
- HermesMobile/LiveActivities — 6 commits
- HermesMobileTests/BotChatPresentationTests.swift — 5 commits
- HermesMobile/Config — 3 commits
- docs/agents — 3 commits
- HermesMobile/Push — 2 commits
- .github/workflows — 1 commit
- HermesMobile.xcodeproj/project.pbxproj — 1 commit
- HermesMobile/Auth — 1 commit
- HermesMobile/Models — 1 commit
- HermesMobile/Persistence — 1 commit
- HermesMobileTests/BotDeepLinkTests.swift — 1 commit
- HermesMobileTests/ChatViewModelSendTests.swift — 1 commit
- HermesMobileTests/ComposerChipTests.swift — 1 commit
- HermesMobileTests/Fixtures — 1 commit
- HermesMobileTests/KanbanLiveUpdateTests.swift — 1 commit
- HermesMobileTests/ResponseSelectionTests.swift — 1 commit
Notable commits
- fix: chore(audit): fix dangling fragment in BotConversation.deliver doc comment (#604)
- fix: fix(bots): accept a pasted dashboard link (#952)
- fix: fix(bots): align room activity and keyboard behavior with chats (#627)
- fix: fix(bots): answer connection cards in the shape the host's release takes (#907)
- fix: fix(bots): dismiss the keyboard when the Bot Chat transcript is tapped (#774)
- fix: fix(bots): draw an in-flight prompt once when history already lists it (#617)
- fix: fix(bots): draw the Bot search bar with the shared adaptive glass (#795)
- fix: fix(bots): give each pinned tile its own long-press menu (#611)
- fix: fix(bots): offer Password AutoFill on the secret field and reset it per request (#782)
- fix: fix(bots): open the sign-in form after a rejected password (#942)
- fix: fix(bots): reconnect the inbox quietly and show loading skeletons (#610)
- fix: fix(bots): replace the composer status strip with one pill (#614)
- fix: fix(bots): say what to check when a Bot connection fails (#780)
- fix: fix(bots): send client.capabilities and a keepalive so approvals and questions work on 0.21.4 (#775)
- fix: fix(bots): show recent chat history before refreshing (#628)
- fix: fix(bots): show why a Bot turn failed (#937)
- fix: fix(bots): sign-in errors that name the real problem (#935)
- fix: fix(bots): simplify dashboard connection setup (#626)
- fix: fix(bots): support blocking requests in Hermes 0.21.2 (#530)
- fix: fix(bots): use the shared load-older pill in the bot transcript (#615)
- …and 192 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
uzairansaruzi/hermex was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b03cd3b9d2bc87d1d8a8d9cdbb75125c645b55c3 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.