feat: add hermes-status plugin#898
Conversation
Traffic-light status indicator for Hermes Agent (CLI + Gateway). Shows online/busy/attention/degraded/offline states in the status bar with real-time hook-based updates via hermes shell hooks. Features: - Real-time status via hook signal file (sub-second latency) - Fallback polling with configurable interval - Click-to-expand detail panel (Gateway PID, session, tokens, platforms) - Settings UI for script path, poll interval, signal file - Supports Niri compositor
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
… defaults - Remove unnecessary 'official' property from manifest.json - Add sectionWidgetIndex/sectionWidgetsCount defaults per AGENTS.md - Remove translation fallbacks (tr() handles missing keys) - Replace hardcoded text in Panel.qml with pluginApi?.tr() calls - Replace hardcoded spacing: 4 with Style.marginS - Add i18n/en.json and i18n/zh-CN.json translations
8b86860 to
264002e
Compare
spiros132
left a comment
There was a problem hiding this comment.
Some feedback about the PR! :D
| readonly property string scriptPath: { | ||
| var cfg = pluginApi?.pluginSettings || {}; | ||
| var defaults = pluginApi?.manifest?.metadata?.defaultSettings || {}; | ||
| return cfg.statusScript ?? defaults.statusScript ?? "~/.config/noctalia/hermes-status-check"; |
There was a problem hiding this comment.
I would suggest changing this path so that it doesn't point to the root folder of the noctalia config folder. For example maybe it would be better if you used the cache folder, ~/.cache/noctalia/plugins/hermes-status/hermes-status-check
| @@ -0,0 +1,34 @@ | |||
| { | |||
| "id": "hermes-status", | |||
| "name": "Hermes Agent", | |||
There was a problem hiding this comment.
Hermes Agent or Hermes Agent Status?
| "Panel", | ||
| "AI", | ||
| "Indicator", | ||
| "Niri" |
There was a problem hiding this comment.
Is this plugin only for niri or would it also work on the other compositors as well?
There was a problem hiding this comment.
I believe the README file needs to be in English.
| ## 效果 | ||
|  | ||
|
|
||
|  |
There was a problem hiding this comment.
I don't see where these pictures exist.
| NTextInput { | ||
| Layout.fillWidth: true | ||
| text: cfg.statusScript ?? pluginApi?.manifest?.metadata?.defaultSettings?.statusScript ?? "" | ||
| placeholderText: "~/.config/noctalia/hermes-status-check" |
There was a problem hiding this comment.
As before this file shouldn't be in the noctalia config root folder.
| }, | ||
| "metadata": { | ||
| "defaultSettings": { | ||
| "statusScript": "~/.config/noctalia/hermes-status-check", |
There was a problem hiding this comment.
As the above comment, this shouldn't be in the noctalias root config.
- Move config path from ~/.config/noctalia/ to ~/.cache/noctalia/plugins/hermes-status/ - Rename plugin to 'Hermes Agent Status' - Remove Niri tag (no niri-specific APIs used) - Translate README to English - Fix image references
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
…remove tr() fallbacks
- Add multi-process tracking: per-session process list with ListModel, activeCliCount, process state icons, source labels (GW/CLI/Cron) - Fix pendingRefresh: rapid hook updates no longer dropped when a status check is already in-flight - Fix clearAttention: only clear needsAttention after rm succeeds (onExited callback instead of optimistic clear) - Add missing i18n keys: event.finalizing, event.reset, panel.gw, panel.cli, panel.cron, panel.dead - Bump version to 2.0.0 - Panel: increase size to fit process list, add process helpers
- Add fetchWatchdog (15s): force-resets fetchState if statusProcess onExited never fires (process crash, QML engine bug) - IPC refresh now uses force=true to bypass stuck loading guard - Downgrade stale busy signals for live processes after 180s
Hermes Agent Status Plugin
Traffic-light status indicator for Hermes Agent (CLI + Gateway) in Noctalia Shell.
What it does
Shows real-time Hermes Agent status in the status bar:
Architecture
Features
Preview
Source
Full source and installation guide: https://github.com/Mel-SRK/noctalia-hermes