Replies: 1 comment
-
|
Technical direction: The design in the issue body is well-thought-out. Implementation sequence:
The channel routing (Slack/Teams) can be wired up later by adding a channel dispatch layer in publish-status.ts — the tool interface is already future-proofed for it. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The Idea
Evolve the fleet status line from a passive display into an active, LLM-callable pub/sub system. Any skill, LLM, or user can publish named topic segments to the status line (and eventually other channels like Slack/Teams) without knowing about other topics or the full layout.
Relationship to the Fleet Dashboard (#188)
Discussion #188 proposes a Fleet Dashboard + VS Code Extension — a rich, interactive surface that visualizes everything fleet knows: member state, session history, token spend, active tasks. This discussion and #188 are complementary, not competing.
The status line is the zero-cost peripheral vision layer. The dashboard is the rich investigation layer. A natural integration: the dashboard's "live status" panel reads from the same topic registry that the status line renders.
Why the Status Line Matters
Two specific problems this solves:
The tool is general-purpose — any skill, the LLM directly, or the user can keep a short note permanently in front of their eyes. MCP does not know or care who the caller is.
Proposed Design
1. New MCP tool:
publish_statustopic— a caller-chosen name reserving a segment. Callers are responsible for picking names unlikely to collide (e.g.pmstores its topic name inprojects.md; a user can use any memorable string). MCP does not enforce uniqueness — callers own their namespace.value— the string to display. Truncated tosizecharacters. Omittingvalue(or passing empty) clears and forgets the topic immediately — no need for a separateclear_statustool.channel— optional, defaults to"statusline". Future values:"slack","teams","log". Same tool, multiple destinations.size— optional, defaults to 16 characters. Set on first publish; resizable on subsequent calls.2. Topic Registry (MCP-managed, persisted)
MCP maintains a topic registry persisted to a JSON file so topics survive MCP restarts. Skills re-publishing on their next update naturally refresh the registry; no explicit re-registration needed.
2↑ 1↓ idleODM→DDDVI..o..oAVMS→██░░░░deploy after 5pm3. Freshness-Based Rendering
Topics render left-to-right ordered by recency. Because each topic's value includes its own identity (e.g.
ODM→...,AVMS→...), positional shifts are not disorienting — the label travels with the value. Topics not updated in 24 hours are automatically forgotten.fleetis the default topic, always registered at startup.4. Value Format — Caller's Choice
Callers decide their own format. Examples:
ODM→DDDVI..o..owhereD=done,V=verified,I=in-progress,o=pendingAVMS→██░░░░ 3/6✓ Release x64deploy after 5pmlm: 4/7 tests5. Clearing a Topic
No separate
clear_statustool needed.Known Limitations
Implementation Scope
publish_statustool: new MCP tool infleet-mcppmskill: callpublish_status("pm-<project>", "PROJECT→<progress>")on task state changes; callpublish_status("pm-<project>")on sprint completionfleet_statustool: becomes a topic publisher (publish_status("fleet", ...))Out of Scope for Initial Implementation
channelparam reserved for future)Beta Was this translation helpful? Give feedback.
All reactions