Skip to content

Commit 20aa071

Browse files
CopilotPureWeen
andcommitted
Update README with latest features and fix dead links
- Remove dead link to non-existent COPILOT-SDK-CHAT-FIDELITY-PLAN.md - Fix Android package name (com.companyname → com.microsoft) - Document Fiesta mode, slash commands, notifications, demo mode, git auto-update, Tailscale integration - Update project structure tree with new models, services, components - Add fiesta.json to settings files table Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com>
1 parent 1ffdbad commit 20aa071

1 file changed

Lines changed: 53 additions & 13 deletions

File tree

README.md

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ The Copilot CLI is powerful, but it's one agent in one terminal. What if you cou
3333

3434
That's PolyPilot.
3535

36-
## 🗺️ Active Planning Doc
37-
38-
Current Copilot SDK event/chat-fidelity planning work is tracked in:
39-
40-
- [`COPILOT-SDK-CHAT-FIDELITY-PLAN.md`](COPILOT-SDK-CHAT-FIDELITY-PLAN.md)
41-
4236
## ✨ Key Features
4337

4438
### 🎛️ Multi-Session Orchestrator Dashboard
@@ -65,12 +59,44 @@ Point each agent at a different repo or directory. Native folder pickers on macO
6559
### 🏗️ Session Organization
6660
Groups, pinning, and multiple sort modes (Last Active, Created, A–Z, Manual) let you manage large fleets of agents without losing track. Collapsible groups keep things tidy.
6761

62+
### 🎉 Fiesta Mode — Multi-Machine Orchestration
63+
Discover and link other PolyPilot instances on your LAN. Start a "Fiesta" to fan out work to linked worker machines via `@mention` routing. Workers are discovered automatically via UDP broadcast and linked manually in Settings. Use `@worker-name` in your prompts to dispatch tasks to specific machines.
64+
65+
### ⌨️ Slash Commands
66+
Built-in slash commands give you quick control without leaving the chat:
67+
68+
| Command | Description |
69+
|---------|-------------|
70+
| `/help` | Show available commands |
71+
| `/clear` | Clear chat history |
72+
| `/version` | Show app version, SDK, runtime, and git commit info |
73+
| `/compact` | Summarize conversation and start fresh |
74+
| `/new [name]` | Create a new session |
75+
| `/sessions` | List all active sessions |
76+
| `/rename <name>` | Rename the current session |
77+
| `/diff [args]` | Show git diff |
78+
| `/status` | Show git status |
79+
| `/mcp` | List, enable, or disable MCP servers |
80+
| `/plugin` | List, enable, or disable plugins |
81+
82+
### 🔔 Smart Notifications
83+
Get notified when agents finish tasks, encounter errors, or need your attention — even when the app is in the background. Context-aware notification messages tell you exactly what happened.
84+
85+
### 🎮 Demo Mode
86+
Test the UI without a Copilot connection. The built-in demo service simulates streaming responses, tool calls, and activity indicators with realistic timing — perfect for UI development and showcasing features.
87+
6888
### 🔌 Flexible Connection Modes
6989
From embedded stdio for quick single-machine use, to a persistent server that survives app restarts, to remote mode for mobile access — pick the transport that fits your workflow.
7090

7191
### 🛡️ Auto-Reconnect
7292
If an agent's underlying process dies mid-conversation, PolyPilot automatically resumes the session and retries — transparent to you.
7393

94+
### 🔄 Git Auto-Update
95+
When running from a git checkout, PolyPilot can automatically detect and pull updates from the main branch — keeping your instance up to date without manual intervention.
96+
97+
### 🌐 Tailscale Integration
98+
Detects your Tailscale VPN status and IP automatically, making it easy to share your agent fleet across your Tailscale network without DevTunnel.
99+
74100
## Connection Modes
75101

76102
PolyPilot supports three transport modes, configurable from the Settings page:
@@ -165,19 +191,31 @@ PolyPilot/
165191
│ ├── BridgeMessages.cs # WebSocket bridge protocol (19 message types)
166192
│ ├── RepositoryInfo.cs # Managed repository metadata
167193
│ ├── DiffParser.cs # Git diff parsing for inline display
194+
│ ├── FiestaModels.cs # Fiesta worker discovery & linking models
195+
│ ├── ModelHelper.cs # Model name normalization (display ↔ SDK slug)
196+
│ ├── PendingImage.cs # Pending image attachment record
168197
│ └── PlatformHelper.cs # Platform detection (IsDesktop, IsMobile)
169198
├── Services/
170199
│ ├── CopilotService.cs # Core service: session CRUD, events, persistence
171-
│ ├── CopilotService.*.cs # Partial classes: Events, Bridge, Persistence, Organization, Utilities
200+
│ ├── CopilotService.Events.cs # SDK event handling (deltas, tools, intents)
201+
│ ├── CopilotService.Bridge.cs # WebSocket bridge integration
202+
│ ├── CopilotService.Persistence.cs # Session save/restore to disk
203+
│ ├── CopilotService.Organization.cs # Groups, pins, sorting
204+
│ ├── CopilotService.Utilities.cs # Shared helpers
172205
│ ├── ChatDatabase.cs # SQLite chat history persistence
173206
│ ├── ServerManager.cs # Persistent server lifecycle + PID tracking
174207
│ ├── DevTunnelService.cs # Azure DevTunnel CLI wrapper for remote sharing
175208
│ ├── WsBridgeServer.cs # WebSocket bridge server (desktop → mobile)
176209
│ ├── WsBridgeClient.cs # WebSocket bridge client (mobile → desktop)
210+
│ ├── FiestaService.cs # LAN worker discovery, linking, task dispatch
177211
│ ├── RepoManager.cs # Git repo cloning, worktree management
178212
│ ├── DemoService.cs # Offline demo mode for testing UI
179213
│ ├── QrScannerService.cs # QR code scanning for mobile connection setup
180-
│ └── TailscaleService.cs # Tailscale VPN integration for LAN sharing
214+
│ ├── TailscaleService.cs # Tailscale VPN detection for LAN sharing
215+
│ ├── KeyCommandService.cs # Mac Catalyst keyboard shortcut bridge
216+
│ ├── GitAutoUpdateService.cs # Auto-detect and pull updates from git
217+
│ ├── NotificationMessageBuilder.cs # Context-aware notification messages
218+
│ └── INotificationManagerService.cs # Platform notification abstraction
181219
├── Components/
182220
│ ├── Layout/
183221
│ │ ├── MainLayout.razor # App shell with sidebar + content area
@@ -191,14 +229,15 @@ PolyPilot/
191229
│ ├── SessionCard.razor # Dashboard grid card with streaming output
192230
│ ├── ExpandedSessionView.razor # Full-screen single-session chat view
193231
│ ├── ChatMessageList.razor # Message list with Markdown rendering
232+
│ ├── ChatMessageItem.razor # Individual chat message component
194233
│ ├── DiffView.razor # Inline git diff viewer
195234
│ ├── ModelSelector.razor # Model picker dropdown
196235
│ └── RemoteDirectoryPicker.razor # Remote directory browser for mobile
197236
├── Platforms/
198-
│ ├── MacCatalyst/ # Mac Catalyst entitlements, folder picker
199-
│ ├── Windows/ # WinUI entry point, folder picker
200-
│ ├── Android/ # Android platform bootstrapping
201-
│ └── iOS/ # iOS platform bootstrapping
237+
│ ├── MacCatalyst/ # Mac Catalyst entitlements, folder picker, notifications
238+
│ ├── Windows/ # WinUI entry point, folder picker, notifications
239+
│ ├── Android/ # Android platform bootstrapping, notifications
240+
│ └── iOS/ # iOS platform bootstrapping, notifications
202241
└── wwwroot/
203242
└── app.css # Global styles
204243
```
@@ -266,7 +305,7 @@ dotnet build PolyPilot.csproj -f net10.0-windows10.0.19041.0
266305

267306
```bash
268307
dotnet build PolyPilot.csproj -f net10.0-android -t:Install # Build + deploy to connected device
269-
adb shell am start -n com.companyname.PolyPilot/crc645dd8ecec3b5d9ba6.MainActivity
308+
adb shell am start -n com.microsoft.PolyPilot/crc64ef8e1bf56c865459.MainActivity
270309
```
271310

272311
## 📱 Remote Access via DevTunnel
@@ -342,6 +381,7 @@ The tunnel URL and ID are persisted across restarts — stopping and restarting
342381
| `active-sessions.json` | Active sessions for restore on relaunch |
343382
| `ui-state.json` | Last active page and session name |
344383
| `organization.json` | Session groups, pins, sort preferences |
384+
| `fiesta.json` | Linked Fiesta workers for multi-machine orchestration |
345385
| `server.pid` | PID and port of the persistent Copilot server |
346386
| `crash.log` | Unhandled exception log |
347387
| `repos.json` | Managed repository list |

0 commit comments

Comments
 (0)