Skip to content

Add Telegram notifications plugin (noobitoo.telegram-notifications) - #4

Open
NooBiToo wants to merge 3 commits into
stablyai:mainfrom
NooBiToo:add-noobitoo-telegram-notifications
Open

Add Telegram notifications plugin (noobitoo.telegram-notifications)#4
NooBiToo wants to merge 3 commits into
stablyai:mainfrom
NooBiToo:add-noobitoo-telegram-notifications

Conversation

@NooBiToo

@NooBiToo NooBiToo commented Aug 30, 2026

Copy link
Copy Markdown

Adds a community notifications plugin to the marketplace index.

Plugin

What it does

Sends a Telegram message when an agent changes status (finished, needs attention, stuck, error, waiting — user-configured keyword filter, optional workspace filter, anti-spam quiet window persisted across worker restarts).

  • Worker (main.mjs, plain Node) subscribes to agent.status.changed and posts via the Telegram Bot API. Messages use human titles per status (✅ finished / 🙋 needs attention / ⚠️ stuck …), Telegram HTML format, optional custom template with {{title}} {{worktree}} {{state}} {{time}} placeholders.
  • Panel — a setup guide; the actual settings UI is a localhost page the worker starts on demand (command Telegram: Open settings page), since panels are sandboxed documents and cannot hold secrets by design.
  • Config lives outside the immutable install tree (~/.orca-plugin-config/telegram-notifications.json) so user edits never trip the host's content-hash integrity check.
  • Capabilities requested: storage, secrets, settings:own, events:subscribe, notifications:show — no terminal, no workspace access.

Validation

  • Manifest and catalog verified against the host loaders shipped in v1.4.191/v1.4.192 (parsePluginManifest schema rules and parsePluginLanguagePackArtifact discipline applied to config handling); install from git URL with #ref verified end-to-end on Orca 1.4.191/1.4.192 (Windows): install → review → enable → command palette → settings page → Telegram delivery.
  • 27 local assertions around status filtering, workspace filtering, anti-spam persistence, and message building run in-repo (node scripts/test-local.mjs).

What's new in v0.4.1

  • Project / workspace shown with human names from the Orca store (profiles/<profile>/orca-data.json): project line + workspace title (git worktrees use their Orca displayName, folder workspaces their name, e.g. gittracker / #GT-89); falls back to the path basename if the store is unavailable.

What's new in v0.4.0

  • Notification format: project name + workspace name (parsed from worktreeId) instead of the raw uuid::path, localized status words, the noisy pane line removed.
  • The agent's last message (from the Stop hook, persisted by the host in agent-hooks/last-status.json) is appended to the notification (💬, truncated to 700 chars) — the plugin worker reads it directly from disk since the plugin event payload strips this field. Degrades gracefully: no file/field → no 💬 line.
  • Message labels now respect the configured language (RU/EN).

Note

This is the second plugin from the same author as #3 (Russian language pack); PRs are independent and can be reviewed/merged separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants