v0.0.5
Release notes: English · 简体中文 · 日本語 · Español · Deutsch
[0.0.5] - 2026-08-25
The three-device lab patch: the first real macOS + OrangePi + Windows cluster — installed from the public installers, linked over LAN, driven end-to-end — exposed that queued tasks never left their origin node, tier-2 consent died at the delegation boundary, and a locked-out agent CLI could attract routing and hang for minutes. Five commits, all verified on that hardware.
Added
panda task add --requires— declare the abilities a task needs (--requires gpio:read, comma-separated); a queued task without a local match is routed to a device that has them, the same root-scheduler policypanda askhas always used (c4e1bc7).
Fixed
- Queued tasks now route cross-device — tasks from
panda task addand the web console were claimed and executed by the origin node only: a task requiring an ability only another device had failed outright (route: no capability matchesforpi.uptimefiled on a Mac). On claim the scheduler now consults the root scheduler; with no local match the claim is re-targeted to a capable peer (declined-by loop protection, lease so a dead executor is detected), and the peer's result completes the origin's row. Verified in all three directions on the lab: Mac→OrangePi, OrangePi→Mac, Windows→OrangePi (c4e1bc7). - Tier-2 authorization travels with delegation —
--authorizeconsent was local to the submitting node, so an agent task delegated to a peer bounced at the executor's defense layer even though the user had approved it. Consent now propagates on the authenticated bus and the executor honors it: a credential-less OrangePi filing an authorized coding task at the Mac's claude completes instead of dying in review (c4e1bc7). - Locked-out agent CLIs no longer attract routing — a capability card is static, but an installed CLI can be unusable:
claude.exeon the Windows box with no login state and no model key advertisedagent:*to the fleet, routing sent it a coding task, and it hung for minutes before failing on a network error. The local fallback chain and the capability summary advertised over hello now gate on viability — CLI on PATH and a reachable model (own credentials or injection); the Windows summary now advertises onlywin.sysinfo(2db530f). panda webno longer dies on a taken port — a second/web(or a leftover process) errored withbind: address already in useand printed a token to copy by hand. The console now falls forward to a nearby port and says so; the browser opens already authenticated (the token is never printed), and/webwhile it runs re-opens the browser logged in.--no-browserstill prints a token-carrying URL for manual use (c4e1bc7).- Peer hello reports the real version — all three hello paths advertised a hardcoded
0.1.0-dev, sopanda nodesshowed wrong versions across a mixed-version fleet; they now reportversion.Version(all three lab devices show 0.0.5) (2db530f). - The capability card next to the resolved config wins over
./capabilities.yaml— starting a daemon from a directory that happens to contain a capabilities.yaml (a repo checkout, another node's card) silently loaded the wrong card; the init-written card next to the config file now takes precedence,--cardstill overrides (2db530f). - Windows data directory no longer collides with the install prefix — the default state dir
%LOCALAPPDATA%\openpandaand the install prefix%LOCALAPPDATA%\OpenPandaare the same directory on case-insensitive NTFS: the SQLite store, memory, and projects lived inside the install prefix and an uninstall swept them away. The data dir is now%LOCALAPPDATA%\openpanda-data; Windows nodes coming from 0.0.4 start with a fresh store (fc50721). - Installers survive a rate-limited GitHub API and a broken WinPS 5.1 HTTP stack —
api.github.comallows 60 unauthenticated requests per IP per hour; when exhausted, both installers now resolve the latest version through the/releases/latest302 redirect instead.install.ps1forces TLS 1.2 up front, prefers the bundledcurl.exe(Windows 10 1803+) withInvoke-WebRequestfallback, and adds timeouts so a broken WinINET proxy fails fast instead of hanging. Both behaviors were hit during the real three-device install (109b567). - Homebrew tap push authenticated — the release workflow's tap-update step failed with
could not read Usernamewhen the job token lacked the grant; the push URL now embeds the token (6868a63).
Install
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Xustalis/OpenPanda/main/scripts/install.sh | shWindows (PowerShell)
irm https://raw.githubusercontent.com/Xustalis/OpenPanda/main/scripts/install.ps1 | iexmacOS (Homebrew)
brew install Xustalis/openpanda/openpandaAfter installing, run panda init to set the node up, or just type panda to drop into the REPL. An older install upgrades in place with the same command — user data is preserved.
Full Changelog: v0.0.4...v0.0.5