Repository navigation
v0.7.7
Added
- The agent console starts only what the Mac can carry (FD-49, lifecycle LC-17): at least 5 GB free on the
folder's disk, swap not exhausted, at most six console sessions at once; otherwise the start is deferred and the
console says why and what frees it. - Switchboard sessions beside the agent (FD-43): the console lists what Switchboard launched in its folder —
state, account, mode, since when — read every 15 s only while the console is on screen. - A provider limit does not stop the agent (FD-51, LC-20): with a Switchboard account for the provider, every
Claude Code and Codex start runs through Switchboard's managed mode, and a session Switchboard moved to the
pool's next account says so. - An idle console session closes and comes back (FD-50, LC-18): after 30 minutes with no input or output it is
saved (when, and the Switchboard account) and closed; opening the console continues it. - Dashboards take the scheme and the theme (FD-42, FD-56): Settings offers Same as macOS, Dark and Light, and
the dashboard theme (Graphite, Fabric, Paper, Forest, Ocean, Ember, High contrast). Each dashboard gets
fabric_appearancein its own partition before every load and on a change, without a reload; a theme the page
says it does not ship is not sent; an invalid dashboard profile counts as undeclared and is logged once per load. - Runner and model on an agent's Health (FD-46, DEC-0046): the profile that applies, who set it, spend per
model, and Change in Fabric. - Every supervisor the contract names (FD-55, FD-57): descriptors under systemd, the Task Scheduler and the
Observatory node — and withrunner,channels,peerand the object form ofinstalledBy— are read instead
of shown Invalid (proven on the contract's 78 descriptor fixtures at fe55fc6). On Linux a copy waiting on its
lock reads Duplicate from systemd's MainPID; the Task Scheduler gives no pid, so a waiting copy is never an
outage. An app's own descriptor (manager: person, DEC-0069) is skipped, never probed. - A pre-commit check for leases (FD-26):
npm ciinstalls a hook that refuses a commit staging a guarded
register without this run's agent-sync lease.
Security
- Windows: a token file that grants Everyone GENERIC_READ is refused (CT-21, contract DEC-0057). The ACL reader
took .NET's signedFileSystemRights, so an ACE carrying GENERIC_READ (0x80000000) came out negative and was
skipped as granting nothing: such a token file passed. The mask is now read as an unsigned 32-bit number
(-band 4294967295in the PowerShell read), and a mask that is not one is refused rather than skipped. An ACE of
any type other than allow or deny is refused, SIDs compare case-insensitively, and an unreadable owner, SID or
type refuses the file. The contract'sfixtures/vectors/windows-token.jsonruns in the tests, vendored at 7688304.
Fixed
- Restart to update reopens on the screen the person left (FD-21 U-18), not on Overview.
- A half-written new descriptor no longer flashes Invalid or logs "installed" (U-16); a misnamed one keeps its
own key instead of colliding with the real one. - An online service that refuses TLS or redirects is down at once (R-19), not after three missed probes.
- Uninstall removes an update Squirrel has staged (R-20), so ShipIt cannot put the app back as it quits.
- One start/stop/restart sequence for the app and MCP (FD-20): the MCP tool now also names a stray copy that
keeps the port. - An event's
datais not kept in the history (DEC-0070); every member the protocol names still is. - Skills updates: "another update is running" is no longer an error. From sshlg-skills 1.56.0 one update
runs at a time and a second one refuses with exit 75. The app now logs that asestate_update busy, keeps
the version it showed and tries again within the hour, instead of reporting a failed update. - The Russian interface reads as Russian. After the operator's review, 164 of the 471 Russian strings and 16
translated machine reasons were rewritten. Each thing now has one name («агент для кода», «скилы», «События»).
Sentences agree with any service name, and calques and rhetorical dashes are gone. One string had lost half of its
meaning and says it again: a port that answers without fabric-service/0.1 gets the token again only when it asks
for one. The "since you were last here" date now follows the interface language, not the system's.
Verify
gpg --verify SHA256SUMS.asc SHA256SUMS # key 63B30DC324BD697487AA31944FAFB8AEC803B6A7
shasum -a 256 -c SHA256SUMS --ignore-missing
gh attestation verify <file> --owner passioncode-ai --signer-repo passioncode-ai/.githubThe organization's public key: https://github.com/passioncode-ai/.github/blob/main/release-signing/passioncode-release-signing.asc