feat: add AI Workspace Menu Bar App design and enhance MCP server with resource definitions and read functionality
This commit is contained in:
76
core/services/menu-bar-app-design.md
Normal file
76
core/services/menu-bar-app-design.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# AI Workspace Menu Bar App Design
|
||||
|
||||
## Goal
|
||||
|
||||
Provide a small native macOS control surface for the AI Workspace Service Manager.
|
||||
|
||||
The app should not reimplement service logic. It should call the service manager/daemon API or CLI and display status, actions, and diagnostics.
|
||||
|
||||
## Recommended Shape
|
||||
|
||||
- SwiftUI `MenuBarExtra` app.
|
||||
- Local-only, no cloud dependency.
|
||||
- Start at login optional through `LaunchAgent` later.
|
||||
- Read-only status by default; explicit user actions for start/stop/restart.
|
||||
|
||||
## Initial UI
|
||||
|
||||
```text
|
||||
AI Workspace ▾
|
||||
Profile: Fidelity
|
||||
|
||||
Services
|
||||
✓ Context MCP Running
|
||||
✓ Mattermost Proxy Running
|
||||
✓ Mattermost Desktop Launched
|
||||
✓ Photo Inbox Running
|
||||
|
||||
Actions
|
||||
Start Fidelity
|
||||
Stop Fidelity
|
||||
Restart Context MCP
|
||||
Open Mattermost
|
||||
Open Photo Inbox Folder
|
||||
Copy Photo Inbox Upload URL
|
||||
Open Project Knowledge
|
||||
Open Logs
|
||||
|
||||
Diagnostics
|
||||
Run Doctor
|
||||
Copy Doctor JSON
|
||||
Show Recent Errors
|
||||
|
||||
Settings
|
||||
Start at Login
|
||||
Open Config Folder
|
||||
```
|
||||
|
||||
## Backend Contract
|
||||
|
||||
The first version can shell out to:
|
||||
|
||||
```bash
|
||||
python3 scripts/aiw/services.py status --profile fidelity
|
||||
python3 scripts/aiw/services.py doctor --profile fidelity --json
|
||||
python3 scripts/aiw/services.py start --profile fidelity
|
||||
python3 scripts/aiw/services.py stop --profile fidelity
|
||||
python3 scripts/aiw/services.py restart aiw-context-mcp --profile fidelity
|
||||
```
|
||||
|
||||
Longer term, prefer a small local daemon HTTP/Unix-socket API so the UI does not parse terminal text except `doctor --json`.
|
||||
|
||||
## Production-Ready Rules
|
||||
|
||||
- Do not store secrets in the app bundle.
|
||||
- Do not expose services beyond localhost unless explicitly configured.
|
||||
- Show whether a process is managed or externally running.
|
||||
- Surface missing dependencies from doctor checks.
|
||||
- Never let the app promote project memory automatically.
|
||||
- Keep capture services and context MCP separate; the app only orchestrates lifecycle.
|
||||
|
||||
## Implementation Phases
|
||||
|
||||
1. CLI-backed SwiftUI menu bar app using `doctor --json` for status.
|
||||
2. Add profile selector and service action buttons.
|
||||
3. Add LaunchAgent support for start at login.
|
||||
4. Replace shell parsing with a daemon API if daily use proves stable.
|
||||
Reference in New Issue
Block a user