{"repo":"NousResearch/hermes-agent","public_id":"91623","display_label":"Routines row controls clipped in narrow desktop panes","summary":"These issues and fixes address UI controls (switches, delete buttons) in Routines/cronjob rows being clipped or hidden when the desktop pane is narrow or docked to the right. Work also includes rebuilding Bot Mode on the app's design system.","subsystem":"apps/desktop","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":96726},"resolution":{"state":"resolved","by":"pr-113393"},"freshness":{"state":"verified","last_verified_at":"2026-09-17T00:14:46+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":89534,"pr_number":96726,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":89534,"pr_number":113393,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":91623,"pr_number":96726,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":91623,"pr_number":113393,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":94609,"pr_number":96726,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":102224,"pr_number":113393,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":91623,"title":"[Bug]: Desktop Bot Mode Routines (Cronjobs) tile — row switch and delete controls clipped when pane is docked right","url":null,"state":"closed"},{"kind":"pr","number":91625,"title":"fix(desktop): keep Routines row switch visible in narrow pane (#91623)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#95352","number":95352}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":95136,"title":"fix(desktop): keep Routines controls visible in narrow panes (salvage #91625)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#91625","number":91625}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":95352,"title":"fix(desktop): keep Routines rows usable in narrow panes (salvage #91625 + #89557)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#96726","number":96726},{"kind":"pr","value":"#91625","number":91625},{"kind":"pr","value":"#89557","number":89557}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":96726,"title":"Rebuild Bot Mode on the app's design system","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/package.json","apps/desktop/src/app/chat/composer/index.tsx","apps/desktop/src/app/chat/pane-mirror.test.ts","apps/desktop/src/app/chat/pane-mirror.ts","apps/desktop/src/app/chat/preview-tile.test.ts","apps/desktop/src/app/chat/route-tile.tsx","apps/desktop/src/app/chat/session-tile.tsx","apps/desktop/src/app/chat/sidebar/chrome.tsx","apps/desktop/src/app/chat/sidebar/connection-glyph.tsx","apps/desktop/src/app/chat/sidebar/row-geometry.ts","apps/desktop/src/app/contrib/controller.tsx","apps/desktop/src/app/contrib/wiring.tsx","apps/desktop/src/components/assistant-ui/chat-empty-slot.test.tsx","apps/desktop/src/components/assistant-ui/chat-empty-slot.tsx","apps/desktop/src/components/assistant-ui/thread/index.tsx","apps/desktop/src/components/assistant-ui/tool/delegate.tsx","apps/desktop/src/components/assistant-ui/tool/fallback.tsx","apps/desktop/src/components/chat/intro.tsx","apps/desktop/src/components/chat/scaffold-row.tsx","apps/desktop/src/components/chat/wordmark.tsx","apps/desktop/src/components/pane-shell/tree/renderer/main-placement-floor.test.tsx","apps/desktop/src/components/pane-shell/tree/renderer/track-model.ts","apps/desktop/src/components/pane-shell/tree/renderer/tree-group.tsx","apps/desktop/src/components/pane-shell/tree/renderer/tree-split.tsx","apps/desktop/src/components/pane-shell/tree/renderer/workspace-scope.test.tsx","apps/desktop/src/components/pane-shell/tree/store.ts","apps/desktop/src/components/pane-shell/workspace-scope.test.ts","apps/desktop/src/components/pane-shell/workspace-scope.ts","apps/desktop/src/contrib/types.ts","apps/desktop/src/lib/chat-empty.ts","apps/desktop/src/lib/katex-memo.ts","apps/desktop/src/lib/lru-cache.test.ts","apps/desktop/src/lib/lru-cache.ts","apps/desktop/src/lib/use-session-slice.ts","apps/desktop/src/lib/use-stores-selector.test.tsx","apps/desktop/src/plugins/hermes-bots/avatar-image.ts","apps/desktop/src/plugins/hermes-bots/avatar-picker.tsx","apps/desktop/src/plugins/hermes-bots/avatar.face-clock.test.ts","apps/desktop/src/plugins/hermes-bots/avatar.test.tsx","apps/desktop/src/plugins/hermes-bots/avatar.tsx","apps/desktop/src/plugins/hermes-bots/bot-delete.test.ts","apps/desktop/src/plugins/hermes-bots/bot-open-focus-identity.test.ts","apps/desktop/src/plugins/hermes-bots/bot-row-keeps-closed-chat.test.ts","apps/desktop/src/plugins/hermes-bots/bot-row.test.tsx","apps/desktop/src/plugins/hermes-bots/bot-row.tsx","apps/desktop/src/plugins/hermes-bots/bot-state.focused-owner.test.ts","apps/desktop/src/plugins/hermes-bots/bot-state.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat-adopt-on-conflict.test.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat-creation.test.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat-registry.test.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat.ts","apps/desktop/src/plugins/hermes-bots/chat-empty.tsx","apps/desktop/src/plugins/hermes-bots/create-agent-lazy-profile.test.tsx","apps/desktop/src/plugins/hermes-bots/create-dialog.single-flight.test.ts","apps/desktop/src/plugins/hermes-bots/create-dialog.tsx","apps/desktop/src/plugins/hermes-bots/cron-create-dialog.test.tsx","apps/desktop/src/plugins/hermes-bots/cron-detail.test.tsx","apps/desktop/src/plugins/hermes-bots/cron-jobs-view.test.ts","apps/desktop/src/plugins/hermes-bots/cron-load.test.ts","apps/desktop/src/plugins/hermes-bots/cron-owner.test.tsx","apps/desktop/src/plugins/hermes-bots/cron-pane.test.tsx","apps/desktop/src/plugins/hermes-bots/cron-prompt.test.ts","apps/desktop/src/plugins/hermes-bots/cron-rpc-error.test.ts","apps/desktop/src/plugins/hermes-bots/cron-selected-bot.test.ts","apps/desktop/src/plugins/hermes-bots/cron.tsx","apps/desktop/src/plugins/hermes-bots/cross-connection-bots.test.ts","apps/desktop/src/plugins/hermes-bots/data.bot-meta-migration.test.ts","apps/desktop/src/plugins/hermes-bots/data.bot-meta.test.ts","apps/desktop/src/plugins/hermes-bots/data.cached-roster.test.ts","apps/desktop/src/plugins/hermes-bots/data.identity.test.ts","apps/desktop/src/plugins/hermes-bots/data.roster.test.tsx","apps/desktop/src/plugins/hermes-bots/data.ts","apps/desktop/src/plugins/hermes-bots/dialog-parts.tsx","apps/desktop/src/plugins/hermes-bots/edit-profile-dialog.tsx","apps/desktop/src/plugins/hermes-bots/group-activity.test.ts","apps/desktop/src/plugins/hermes-bots/group-activity.ts","apps/desktop/src/plugins/hermes-bots/group-attachments.ts","apps/desktop/src/plugins/hermes-bots/group-bot-handoff.test.ts","apps/desktop/src/plugins/hermes-bots/group-chat-parts.test.tsx","apps/desktop/src/plugins/hermes-bots/group-chat-parts.tsx","apps/desktop/src/plugins/hermes-bots/group-chat-view.test.ts","apps/desktop/src/plugins/hermes-bots/group-chat-view.tsx","apps/desktop/src/plugins/hermes-bots/group-chat.test.ts","apps/desktop/src/plugins/hermes-bots/group-chat.ts","apps/desktop/src/plugins/hermes-bots/group-membership.test.ts","apps/desktop/src/plugins/hermes-bots/group-membership.ts","apps/desktop/src/plugins/hermes-bots/group-panes.test.ts","apps/desktop/src/plugins/hermes-bots/group-panes.ts","apps/desktop/src/plugins/hermes-bots/group-rounds.test.ts","apps/desktop/src/plugins/hermes-bots/group-rounds.ts","apps/desktop/src/plugins/hermes-bots/group-rounds.unaddressed.test.ts","apps/desktop/src/plugins/hermes-bots/group-test-utils.ts","apps/desktop/src/plugins/hermes-bots/group-turns.test.ts","apps/desktop/src/plugins/hermes-bots/group-turns.ts","apps/desktop/src/plugins/hermes-bots/hidden-bots.test.ts","apps/desktop/src/plugins/hermes-bots/hidden-bots.ts","apps/desktop/src/plugins/hermes-bots/hide-bot-chats.runtime.test.ts","apps/desktop/src/plugins/hermes-bots/hide-bot-chats.test.ts","apps/desktop/src/plugins/hermes-bots/hygiene.test.ts","apps/desktop/src/plugins/hermes-bots/hygiene.ts","apps/desktop/src/plugins/hermes-bots/i18n-test-helper.ts","apps/desktop/src/plugins/hermes-bots/i18n.test.ts","apps/desktop/src/plugins/hermes-bots/i18n.ts","apps/desktop/src/plugins/hermes-bots/labels.ts","apps/desktop/src/plugins/hermes-bots/legacy-sdk-compat.test.ts","apps/desktop/src/plugins/hermes-bots/mcp-setup.tsx","apps/desktop/src/plugins/hermes-bots/model-picker.test.tsx","apps/desktop/src/plugins/hermes-bots/model-picker.tsx","apps/desktop/src/plugins/hermes-bots/new-compact-guard.test.ts","apps/desktop/src/plugins/hermes-bots/pet.test.tsx","apps/desktop/src/plugins/hermes-bots/pet.tsx","apps/desktop/src/plugins/hermes-bots/plugin-panes.test.tsx","apps/desktop/src/plugins/hermes-bots/plugin.js","apps/desktop/src/plugins/hermes-bots/plugin.mentions.test.ts","apps/desktop/src/plugins/hermes-bots/plugin.tsx","apps/desktop/src/plugins/hermes-bots/profile-config-capabilities.test.tsx","apps/desktop/src/plugins/hermes-bots/profile-config.test.ts","apps/desktop/src/plugins/hermes-bots/profile-config.tsx","apps/desktop/src/plugins/hermes-bots/profile-ops.test.ts","apps/desktop/src/plugins/hermes-bots/profile-ops.ts","apps/desktop/src/plugins/hermes-bots/relay.test.ts","apps/desktop/src/plugins/hermes-bots/relay.ts","apps/desktop/src/plugins/hermes-bots/roster-actions.test.ts","apps/desktop/src/plugins/hermes-bots/roster-actions.ts","apps/desktop/src/plugins/hermes-bots/roster-pane.tsx","apps/desktop/src/plugins/hermes-bots/roster-sections.tsx","apps/desktop/src/plugins/hermes-bots/routing.test.ts","apps/desktop/src/plugins/hermes-bots/routing.ts","apps/desktop/src/plugins/hermes-bots/row-helpers.test.ts","apps/desktop/src/plugins/hermes-bots/row-helpers.ts","apps/desktop/src/plugins/hermes-bots/session-sweep.ts","apps/desktop/src/plugins/hermes-bots/shared.ts","apps/desktop/src/plugins/hermes-bots/skills-hub-picker.test.tsx","apps/desktop/src/plugins/hermes-bots/skills-hub.tsx","apps/desktop/src/plugins/hermes-bots/soul.test.ts","apps/desktop/src/plugins/hermes-bots/soul.ts","apps/desktop/src/plugins/hermes-bots/tests/94478-mention-settle.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/active-now-strip.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/activity-toasts.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/blobatar-shapes.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-attention-badge.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-delete.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-meta-asset-sync.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-meta-hydrate.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-meta-persistence.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-meta-sync.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-open-focus-identity.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-relay.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bot-row-keeps-closed-chat.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bots-home-refront-loop.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bots-home.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/bots-search.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/canonical-chat-adopt-on-conflict.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/canonical-chat-creation.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/canonical-chat-registry.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/cloud-alias-identity.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/create-agent-clone-default.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/create-agent-mcp-setup.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/create-group-chat.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/cross-connection-bots.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/draft-agent-discard.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/duplicate-bot.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/embed-real-capabilities.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/embed-skills-view.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/face-catchlight.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/face-clock.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/focused-bot-highlight.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-activity.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-chat-attachments.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-chat-empty-sentinel.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-chat-identity-edit.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-chat.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-composer-drafts.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-member-hold.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-mention-composer.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-room-ux.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-stop-thread.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-to-local-bot-handoff.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-turn-lease.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/group-turn-races.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/hide-bot-chats.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/hide-bots.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/hub-picker-guard.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/legacy-member-normalize.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/legacy-sdk-compat.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/mention-completions.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/mention-identification.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/mention-renamed-bots.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/mention-roster-cache-key.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/model-inherit.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/model-picker-settle.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/model-switch-confirm.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/multi-source-roster.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/new-compact-guard.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/orphaned-connection-members.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/pane-dock-layout.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/pet-fetch.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/profile-prewarm.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/reclaim-proactive-refresh.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/relay-push-drain.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/relay-socket-retention.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/remote-routing-races.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/roster-groups.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/roster-preview.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/roster-query-retry.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routine-deliver-target.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routine-detail.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routine-owner.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routine-prompt.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-dialog-owner-label.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-error.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-filter-hint.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-pane-owner.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-pause-failure.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-profile-scope.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-rpc-error.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/routines-selected-bot.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/single-flight.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/soul-protocol-backfill.test.mjs","apps/desktop/src/plugins/hermes-bots/tests/unaddressed-mentions.test.mjs","apps/desktop/src/plugins/hermes-bots/types.ts","apps/desktop/src/sdk/index.test.ts","apps/desktop/src/sdk/index.ts","apps/desktop/src/sdk/profile-routing.test.ts","apps/desktop/src/store/bot-chat-scope.test.ts","apps/desktop/src/store/session-states.ts","apps/desktop/src/store/session-unread.ts","apps/desktop/src/styles.css","hermes_cli/profiles.py","tests/hermes_cli/test_profiles.py"]},{"kind":"pr","number":113393,"title":"fix(bot-mode): Routines rows fit the 250px pane and a closed Scheduled jobs pane comes back (#91623, #89534, #102224, salvage #91625, #89557, #102342)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/e2e/bot-routines-pane-narrow.spec.ts","apps/desktop/package.json","apps/desktop/src/plugins/hermes-bots/cron.tsx","apps/desktop/src/plugins/hermes-bots/plugin-panes.test.tsx","apps/desktop/src/plugins/hermes-bots/plugin.tsx","apps/desktop/src/sdk/index.ts","website/docs/user-guide/bot-mode.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}