obsidian-agent-fleet 0.4.5 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,13 +16,13 @@ Agent Fleet is an Obsidian plugin that lets you build, configure, and run AI age
16
16
 
17
17
  💬 **Interactive Chat** — Dock a chat panel anywhere in Obsidian. Switch between agents. Attach documents and images. Send follow-up messages while the agent works.
18
18
 
19
- 📡 **Slack Channels** — Chat with your agents from Slack. Multi-agent routing via `@agent-name` prefix. Native "is thinking..." indicator via Slack Assistants API. Session persistence across restarts.
19
+ 📡 **Slack & Telegram** — Chat with your agents from Slack or Telegram. Multi-agent routing via `@agent-name` prefix or interactive buttons. Slack Assistants API with native "is thinking..." indicator. Telegram with inline keyboard agent picker and typing dots. Session persistence across restarts.
20
20
 
21
21
  💓 **Heartbeat** — Autonomous periodic agent runs. Define what an agent does when no one is asking — monitoring, reports, health checks — with results posted to Slack.
22
22
 
23
23
  📋 **Task Board** — Kanban view with scheduling, priority, real-time progress tracking, and abort. Tasks run on cron schedules or on-demand.
24
24
 
25
- 🔌 **MCP Integration** — Discover, authenticate, and inspect MCP servers. One-click OAuth 2.1 authentication. Assign MCP tools to specific agents.
25
+ 🔌 **MCP Integration** — Add, remove, authenticate, and inspect MCP servers from the dashboard. One-click OAuth 2.1 with automatic CLI token injection agents can use authenticated servers immediately.
26
26
 
27
27
  🧠 **Agent Memory** — Agents persist context across sessions using `[REMEMBER]` tags stored as markdown.
28
28
 
@@ -204,6 +204,29 @@ channel_context: |
204
204
 
205
205
  ---
206
206
 
207
+ ### Telegram
208
+
209
+ Chat with your agents from Telegram — simpler setup than Slack, no @mention required in DMs.
210
+
211
+ **Setup:**
212
+ 1. Create a bot via [@BotFather](https://t.me/botfather) — `/newbot`, pick a name and username, copy the token
213
+ 2. Add the token in Settings → Agent Fleet → Channel Credentials (type: Telegram)
214
+ 3. Create a channel via the dashboard or as `_fleet/channels/my-telegram.md`
215
+ 4. Message the bot in Telegram
216
+
217
+ **Features:**
218
+ - **Zero dependencies** — long-poll via HTTPS, no WebSocket, no SDK
219
+ - **Typing indicator** — `typing...` dots while the agent works (auto-refreshed every 4.5s)
220
+ - **Inline keyboard agent picker** — `/agents` command shows interactive buttons to switch agents
221
+ - **Slash command autocomplete** — commands registered automatically via `setMyCommands`
222
+ - **Agent name prefix** — replies show `[agent-name]` when multiple agents are configured
223
+ - **Group chat support** — add the bot to groups (disable privacy mode via BotFather for full access)
224
+ - **Forum topics** — enable Threaded Mode in BotFather for topic-based conversations
225
+ - **Session persistence** — conversations survive Obsidian restarts via `claude --resume`
226
+ - **4096-char message splitting** — long replies automatically chunked at paragraph boundaries
227
+
228
+ ---
229
+
207
230
  ### Interactive Chat
208
231
 
209
232
  The chat panel is a first-class Obsidian view — dock it in the sidebar, center, or any split.
@@ -246,7 +269,18 @@ A kanban view for managing agent tasks with five columns:
246
269
 
247
270
  ### MCP Servers
248
271
 
249
- Discover and manage all MCP (Model Context Protocol) servers configured in Claude Code.
272
+ Add, remove, authenticate, and manage MCP servers directly from the dashboard no terminal needed.
273
+
274
+ **Add Server UI:**
275
+ - Click **"Add Server"** on the MCP page to open the form
276
+ - **stdio** — command, arguments, environment variables
277
+ - **HTTP / SSE** — URL, API key (stored securely), custom headers
278
+ - Scope selection (user or local) — defaults to "user" so servers are visible across projects
279
+ - Servers appear immediately after adding, with tools auto-discovered
280
+
281
+ **Remove Server:**
282
+ - Open any server's detail slideover → click **"Remove Server"**
283
+ - Cleans up CLI registration and stored secrets in one step
250
284
 
251
285
  **Discovery:**
252
286
  - **stdio servers** — spawned and probed directly via JSON-RPC (~1-2s)
@@ -255,12 +289,14 @@ Discover and manage all MCP (Model Context Protocol) servers configured in Claud
255
289
 
256
290
  **OAuth 2.1 Authentication:**
257
291
 
258
- One-click browser-based auth for MCP servers:
292
+ One-click browser-based auth with unified CLI token injection:
259
293
  1. Click "Authenticate" on any server card
260
294
  2. Plugin discovers OAuth endpoints automatically
261
295
  3. Registers via Dynamic Client Registration
262
296
  4. Opens browser for approval (PKCE flow)
263
- 5. Tokens stored in plugin settings, auto-refresh
297
+ 5. Tokens stored securely in OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service)
298
+ 6. Token automatically injected into Claude CLI config — agents can use the server immediately without separate CLI authentication
299
+ 7. Background token refresh — expiring tokens are refreshed and re-injected automatically
264
300
 
265
301
  **Server Management:**
266
302
  - Enable/disable toggle per server (writes to Claude's settings)
@@ -386,6 +422,12 @@ Click any run in the dashboard to see full details in a slideover panel.
386
422
  | Catch Up Missed Tasks | `true` | Run overdue tasks on startup |
387
423
  | Notification Level | `all` | `all`, `failures-only`, `none` |
388
424
 
425
+ ### Security
426
+
427
+ All secrets — MCP OAuth tokens, API keys, and channel credentials (Slack/Telegram) — are stored in your OS keychain via Obsidian's SecretStorage API. On first load after updating to v0.6.0, existing plaintext credentials are automatically migrated from `data.json` to the keychain and the plaintext copies are cleared.
428
+
429
+ Requires Obsidian 1.11.4+ for keychain support. On older versions, credentials remain in `data.json` with a console warning.
430
+
389
431
  ### Channel Settings
390
432
 
391
433
  | Setting | Default | Description |
@@ -437,11 +479,14 @@ Yes. Each agent has persistent chat sessions that survive Obsidian restarts via
437
479
  **Q: Does the Slack bot work when Obsidian is closed?**
438
480
  No. The bot runs inside Obsidian via Socket Mode — when Obsidian is closed, the bot goes offline. Slack buffers messages briefly during short disconnects.
439
481
 
440
- **Q: Can I use multiple agents in Slack?**
441
- Yes. Type `@agent-name: message` to switch agents within a Slack thread. Each agent maintains its own session. Use `/agents` to see available agents.
482
+ **Q: Can I use multiple agents in Slack or Telegram?**
483
+ Yes. Type `@agent-name: message` to switch agents, or use `/agents` to get interactive buttons. Each agent maintains its own session. Works in both Slack and Telegram.
484
+
485
+ **Q: Which is easier to set up — Slack or Telegram?**
486
+ Telegram. Create a bot via @BotFather (30 seconds), paste the token, create a channel. Slack requires creating an app with Socket Mode, scopes, events, and reinstalls after scope changes.
442
487
 
443
488
  **Q: What is a heartbeat?**
444
- An autonomous periodic run — what an agent does on a schedule without user input. Configured via `HEARTBEAT.md` in the agent's folder. Results can be posted to a Slack channel automatically.
489
+ An autonomous periodic run — what an agent does on a schedule without user input. Configured via `HEARTBEAT.md` in the agent's folder. Results can be posted to Slack or Telegram automatically.
445
490
 
446
491
  ---
447
492
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-agent-fleet",
3
- "version": "0.4.5",
3
+ "version": "0.7.1",
4
4
  "description": "Obsidian plugin for file-backed AI agents, task scheduling, channels (Slack), heartbeat, and interactive chat.",
5
5
  "main": "plugin/main.js",
6
6
  "bin": {