Releases: TeoSlayer/pilotprotocol
v1.2.2
What's New
- Task Submit Service: Fix module imports (leftover from module rename)
- Dashboard Security: Restrict
/metricsand/debug/pprof/endpoints to localhost only - Prometheus Metrics: Fix cumulative histogram bucket counting
- Release Build: Updated to include all 7 binaries matching v1.2.1 structure
Install / Update
curl -fsSL https://raw.githubusercontent.com/TeoSlayer/pilotprotocol/main/install.sh | shTest Results
283 tests — 259 PASS, 24 SKIP, 0 FAIL
v1.2.1
What's new
- Task execution capability — Agents can now advertise that they can execute tasks via an opt-in boolean flag.
pilotctl enable-tasks/disable-taskstoggles thetask_execfield, visible in lookup, list_nodes, and the dashboard. Signature-verified, snapshot-persisted, full IPC stack (0x1D/0x1E). - Dashboard: Task Executors — New stat card, per-node "executor" badge in the nodes table, and a "Tasks only" filter toggle. Badge endpoint at
/api/badge/task-executors. - Website: Task Executors stat — Live Task Executors count on pilotprotocol.network.
Upgrade notes
Fully backwards-compatible. The task_exec field defaults to false for all existing nodes. No configuration changes required.
Install
curl -fsSL https://raw.githubusercontent.com/TeoSlayer/pilotprotocol/main/install.sh | shTest results
283 tests — 259 PASS, 24 SKIP, 0 FAIL
v1.2.0
What's new
- Webhooks & event system — Real-time HTTP event notifications from the daemon. Events for connection lifecycle (
conn.syn_received,conn.established,conn.fin,conn.rst), messaging (message.received), trust (handshake.pending,handshake.approved,trust.revoked_by_peer), and security (security.syn_rate_limited). Async delivery with buffered channel, runtime hot-swap via IPC. - Node tags — Capability tags for node discovery (e.g.
webserver,analytics,code-review). Validated format, max 8 per node, filterable in the dashboard.pilotctl set-tags/clear-tags. - Beacon relay performance — Worker pool architecture (one goroutine per CPU core) replaces single-threaded relay processing. Buffer pooling, read-only lock path, 4MB receive buffer. Handles 350+ relaying nodes with headroom.
- Registry persistence hardening —
pubKeyIdxsurvives registry restarts (no more identity loss on node reap cycles). Debounced save (1 flush/sec max), compact JSON, known-key re-registrations bypass rate limiter for fast swarm reconnection. - Dashboard improvements — pprof profiling endpoints, tag display with filtering, pagination for large node lists, responsive layout.
- CodeQL CI — Static analysis on every push/PR to main, weekly scheduled scans.
Upgrade notes
Fully backwards-compatible. No configuration changes required. Webhook feature is opt-in (--webhook <url> flag or pilotctl set-webhook).
Install
curl -fsSL https://raw.githubusercontent.com/TeoSlayer/pilotprotocol/main/install.sh | shTest results
226 tests — 202 PASS, 24 SKIP, 0 FAIL
v1.1.1
Fix: State Resilience
This patch fixes a critical bug where trust pairs and handshake state were permanently destroyed whenever a node disconnected from the registry.
The bug
When a node went offline (reaped after 3 minutes of inactivity) or explicitly deregistered (daemon shutdown), the registry's cleanupNode function deleted all trust pairs, handshake inboxes, and handshake responses associated with that node. This meant:
- Two nodes that had completed a mutual trust handshake would lose their trust relationship the moment either node restarted or went offline briefly
- Pending handshake messages for offline nodes were destroyed, so handshake relay for private nodes would silently fail
- The owner index was inconsistently wiped on reap but preserved on deregister, making owner-based re-registration unreliable after idle timeouts
- Replication snapshots sent to standby registries were missing trust pairs and handshake data entirely, so a standby promotion would lose all trust state
What changed
- Trust pairs survive disconnect —
cleanupNodeno longer deletes trust pairs or handshake inboxes. Trust is identity-to-identity and only removed by explicitrevoke_trust. - Owner index preserved on reap — matches deregister behavior so owner-based key recovery works after idle timeout.
- Replication snapshots are complete —
snapshotJSONnow includes trust pairs, handshake inboxes, and handshake responses, matching what disk persistence already saved. - Daemon re-syncs trust on reconnect — after re-registering, the daemon reports all locally persisted trust pairs back to the registry.
Test results
202 tests pass, 24 skipped, 0 failures.
Binaries
| Archive | Platform |
|---|---|
pilot-linux-amd64.tar.gz |
Linux x86_64 |
pilot-linux-arm64.tar.gz |
Linux ARM64 |
pilot-darwin-amd64.tar.gz |
macOS x86_64 |
pilot-darwin-arm64.tar.gz |
macOS ARM64 (Apple Silicon) |
Each archive contains pilot-daemon, pilotctl, and pilot-gateway. Static binaries, zero dependencies.
v1.1.0
What's new
- NAT traversal — STUN endpoint discovery, hole-punch coordination, relay fallback via beacon, heartbeat keepalive for NAT port mappings. Three-tier connection strategy: direct → hole-punch → relay.
- Messaging CLI —
subscribe,publish,send-message,received,inboxcommands for typed data exchange and pub/sub event streaming. - Handshake relay — Response inbox in registry enables trust establishment between private nodes without exposing IP addresses. Rejection relay and inbox persistence across restarts.
- Security hardening — Per-port accept lists, signed daemon operations (set-hostname, set-visibility, deregister), sliding window rate limiter.
- Demo — Public
agent-alphanode with auto-accept. Connect and browse a website served entirely over Pilot Protocol. - Registry dashboard — HTTP endpoint for monitoring registry state.
Install
curl -fsSL https://raw.githubusercontent.com/TeoSlayer/pilotprotocol/main/install.sh | shTest results
223 tests pass, 24 skipped. All connections direct across 5 regions including NAT→NAT.
Binaries
| Archive | Platform |
|---|---|
pilot-linux-amd64.tar.gz |
Linux x86_64 |
pilot-linux-arm64.tar.gz |
Linux ARM64 |
pilot-darwin-amd64.tar.gz |
macOS x86_64 |
pilot-darwin-arm64.tar.gz |
macOS ARM64 (Apple Silicon) |
Each archive contains pilot-daemon, pilotctl, and pilot-gateway. Static binaries, zero dependencies.