Repository navigation
v0.4.2
Pre-releaseA patch release on 0.4.0 that replaces 0.4.1. The 0.4.1 release was withdrawn when the commit history was cleaned, and its tag name can no longer be used. This release carries everything 0.4.1 contained: it upgrades the MCP SDK and Vite past the advisories that pnpm audit reported, makes connector requests refuse every special-purpose address, keeps the Codex analysis channel out of transcripts, replaces several quadratic scans (HTML neutralization, code spans, skill frontmatter, the orphan-process check) with linear ones, makes the verifier wait for every process it started, and refreshes the 3D scene, the READMEs and the release checks. It also gives the brand link and the floor plaque their visible words as accessible names.
This is a pre-release. It has a large automated test suite, but it is not a production release. The verification ledger says which capabilities are verified and which are not. macOS is the tested platform; on Linux the unit tests and selected browser workflows run in CI, but the full browser suite is not verified. No real phone and no screen reader have been tested yet.
Start with the README (Node.js 24.21.0, pnpm 12.8.1). The release is source only. A CycloneDX software bill of materials of the shipped packages is attached.
Changed
- Reorganize the English and Traditional Chinese READMEs, documentation navigation, contributor guidance and release checklist.
- Check documentation formatting and selected Linux browser workflows in CI; run source checks on both Linux and macOS.
- Pin Linux CI to Ubuntu 24.04 and run the SHA-pinned checkout action on its supported Node 24 runtime.
- Resume automatic framing with one tap after manual camera control, show its actual state, and keep automatic shots static when reduced motion is enabled.
- Refresh both README introductions with localized dark control-room covers, the orbital A logo, actual Git-flower and mobile captures, wide office and crown views, a desktop/mobile feature map with actual conversation feeds, Git commit history, approvals, PTY fixtures and ten mobile views, and a clearer path to getting started.
- Mark the pre-publication open-source risk assessment as a historical snapshot and point current decisions to the release and verification ledgers.
Fixed
- Replies with unequal, very long backtick delimiters no longer trigger repeated quadratic scans in HTML neutralization; adjacent code spans retain their protection.
- Browser-test retries release their synthetic terminal slots and restore deleted observer fixtures, so later tests remain independent.
- A cell of an HTML table in a reply that held a backslash before a pipe (
a\|b) could split into an extra column once the table
was turned into Markdown; the backslash is now escaped along with the pipe. - Neutralizing raw HTML in a very long reply no longer backtracks quadratically on thousands of
<codeopeners inside<pre>or
on a long run of spaces in a code block (two regular expressions). - Importing a skill whose frontmatter line held tens of thousands of spaces and a stray carriage return stalled the control
server for seconds; the line is now read in linear time. - A reply with a line of tens of thousands of backticks stalled the conversation text pass for seconds; code spans are now
found in linear time, and a run of more than 16 backticks no longer delimits a span. - Checking whether a session's process had been orphaned stalled for seconds when its parent's command line was very long; the
check is now linear, and--userhas to followsystemdwithin 256 characters. - Count only product runtime importers in both fan-in quality measures, so adding tests cannot worsen the product coupling score.
- Retry legacy transcript checkpoints once, then retain permanent schema failures so malformed files cannot replay old observations and grow the database on every poll.
- Load Codex and Claude Code upgrades without a release allowlist; retain protocol, path and permission validation and recover previously version-blocked observations.
- Batch identical idle branch beams and enforce the existing message-animation GPU budgets in the performance test.
- Keep task status badges visible on narrow phones when a workflow is waiting on dependencies.
- Scope the Playwright Chrome channel to Chrome projects so optional iPhone/WebKit tests can launch.
- Document the persistent LAN setting and reload steps for macOS login services so phone QR pairing can be enabled after login.
- Restore immutable migration SQL and accept only the exact historical comment-removal checksums, so existing databases survive rebuilds and restarts without changing their data or migration records.
- Quote the git commands that the git health report suggests, so a branch or worktree name with shell metacharacters cannot alter a pasted command.
- Preserve facial details at every model distance, keep hidden mouths beneath curved snouts, and retain a continuous mouth line through expression transitions.
- Remove the floor scanner that crossed employees and desk legs.
- Keep character models and animations stable while hovering or selecting employees.
- Remove unoccluded decorative light shafts, lift branch links above employees, narrow the squad light funnel, and replace puppet strings with solid team workstations beside the supervisor.
- Keep employees upright after handing in work and before departure.
- Keep camera transition covers transparent when reduced motion disables their fade.
- Aim automatic floor shots at present employees, reject departed message recipients, and ease camera motion at the flower crown while keeping its petals and halo inside the frame.
- Wait for every process a verifier started to end before taking the after snapshot, including children that ignore SIGTERM.
- The brand link and the floor plaque now carry their visible words in their accessible names (WCAG 2.5.3, enforced since axe-core 4.14); the plaque's name no longer adds the department.
Security
- Bind every manual release-evidence entry to a full ancestor commit SHA instead of accepting unversioned review claims.
- Validate version, changelog, workspace manifests, clean state and annotated tag identity before a release tag is pushed.
- Upgrade the MCP SDK to 1.32.1 and Vite to 8.3.4, which fix the advisories that
pnpm auditreports against 1.31.0 and 8.3.2. - Connector requests refuse every IANA special-purpose address, including hexadecimal IPv4-mapped IPv6 forms, carrier-grade NAT, documentation and 6to4 ranges and their NAT64-translated forms, and end at a total deadline so a server that drips bytes cannot hold one open.
- Keep the Codex analysis channel out of the session transcript, as the runner observer already does.
The same list is in the changelog.