chore(release): version packages - #245
Merged
Merged
Conversation
nox-0x
approved these changes
Jun 24, 2026
nox-0x
left a comment
Collaborator
There was a problem hiding this comment.
Approving — automated Changesets release PR: 0.3.0→0.3.1 version bumps across all packages, root CHANGELOG entry deduped to a single line for PR #244 (confirming the consolidator fix from that PR works as intended), and the consumed changeset file removed. No logic to review.
aterrylu
force-pushed
the
changeset-release/main
branch
10 times, most recently
from
June 27, 2026 06:22
42ee4df to
7f20f0c
Compare
aterrylu
force-pushed
the
changeset-release/main
branch
from
June 28, 2026 19:49
7f20f0c to
52fc99e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@autonomos/dashboard@0.4.0
Minor Changes
#263
0998a6dThanks @aterrylu! - Rebuild the terminal tabs + split-pane layout on dockview, and make it the default. The hand-rolled binary-tree layout, the detached-terminal overlay (SessionMountLayer), and the hiddengroupsworkspace-swap are replaced by a dockview-react dock that owns the pane topology (ADR-047). dockview'srenderer: "always"keeps every terminal's xterm mounted across tab switches, retiring the most fragile hand-rolled system — the manual rect-flying overlay.What changes for you:
Two terminal bugs fixed along the way:
display:none, which restores the visibility check that disposes their WebGL context and skips fitting — preventing the GPU context-loss storm and mis-measured refits that drove the shrink. Hardened further: degenerate resizes are never sent to the PTY, and a re-fit is scheduled after a WebGL context recreate.The legacy layout engine remains available behind the
layoutEngineflag ('legacy' | 'dockview') as a fallback.#250
4e1fde3Thanks @aterrylu! - The sidebar's flat view now supports pinning agents and reordering them by drag. Pinned agents appear in a section at the top, above a divider, with unpinned agents below. Pin an agent (hover a row and click the pin) and it drops to the bottom of the pinned section; unpin it and it jumps to the top of the unpinned section. New agents always appear at the top of the unpinned section. Drag-and-drop reorders agents within a section (you can't drag across the divider — use the pin button to move between sections). Your pins and manual order persist across restarts; any previous flat ordering carries over as unpinned.#257
08de6c2Thanks @aterrylu! - Replace the coarseautonomousModeboolean with a per-provider permission mode (default|auto|plan|bypass). The single on/off switch couldn't express the granularity each CLI actually supports, so spawning an agent was all-or-nothing on permission prompts.Each provider now maps the common mode to its native surface: Claude Code →
--permission-mode default|acceptEdits|plan(or--dangerously-skip-permissionsfor bypass), Gemini CLI →--approval-mode default|auto_edit|plan|yolo, and Codex →approval_policy=on-request|on-failure|never(its sandbox staysdanger-full-access— autonomOS is the trust boundary). Codex has no plan mode, soplanis disabled for it in the UI and clamps to the default with a warning.The Settings panel sets a global default and the Create Agent panel can override it per spawn; both expose a clickable "?" explainer describing what the selected mode does for each provider. Templates carry their own default permission mode.
Migration is transparent (accept-and-discard): existing
autonomousMode: truerecords map tobypassandfalsetodefault, the legacy field is scrubbed on read, and an unspecified mode defaults tobypassto preserve current behavior. See ADR-045.#261
4806642Thanks @aterrylu! - Flip the default permission mode frombypasstodefault(fail-closed). A spawn that doesn't specify apermissionModenow asks before each privileged action instead of skipping all permission prompts.The original ADR-045 cut shipped
bypassas the default to mirror the oldautonomousModebehavior, but that proved fragile:bypassemits--dangerously-skip-permissions, which the real Claude Code binary refuses under CI/root, and it silently granted full autonomy to any spawn that forgot to set a mode. A safe default matters more — callers that want autonomy now setbypassexplicitly (the Settings/Create-Agent UI, MCP, and templates can all still choose it).Migration of existing records is unchanged: an old
autonomousMode: truestill maps tobypass, so already-configured installs keep their prior behavior. Only fresh/unspecified spawns get the safe default. Also: Claudedefaultmode now emits no flag (the redundant--permission-mode defaultwas perturbing interactive-TUI startup timing). See ADR-045 (Update 2026-06-26).#249
8a0257aThanks @aterrylu! - The agent sidebar now defaults to the hierarchical (org-chart) view instead of the flat list. The default applies to anyone who has never explicitly picked a view via the toggle — including existing installs whose view was auto-saved before this change — not just fresh installs. Once you choose a view with the toggle, your choice sticks across restarts as before.Also removes the "show stopped agents" eye toggle and the exited-agents list from the sidebar (both flat and hierarchy views). Stopped agents are no longer surfaced in the sidebar; the org-chart panel still lets you remove a stopped agent if needed.
Patch Changes
#248
69b9a2eThanks @aterrylu! - Make the currently-displayed agent's sidebar entry far easier to spot. The active row previously used only a faintpage.borderbackground fill — a ~4-point luminance step on the Midnight navy that was nearly invisible. It now gets a gold/amber outline ring plus a soft glow (drawn with an insetbox-shadow, so there is no layout shift on activation) and a subtle accent-tinted fill. The accent is sourced from each theme's own gold/amber token, so it reads correctly in Midnight (gold), Daylight (amber), and Void. The highlight works in both flat and hierarchy views — it is orthogonal to the 3px left border hierarchy view uses for parent rows, so an active agent that is also an expanded manager keeps both signals. The existing red "N unread ·" notification text is untouched and coexists with the highlight.#265
333534dThanks @aterrylu! - Clearer permission-mode dropdown labels: "Default" → Ask, "Auto-edit" → Accept edits (Plan and Bypass unchanged). "Auto-edit" was confusing — that mode auto-approves edits but still gates riskier actions, and "Accept edits" matches Claude Code's own terminology. Labels-only; the underlying enum values (default/auto/plan/bypass) and behavior are unchanged. Sourced from the singlePERMISSION_MODE_INFOconstant in core.#266
a2815cbThanks @aterrylu! - Remove the legacy layout engine now that dockview is the default (ADR-047, follows feat(dashboard): rebuild tabs + split-pane layout on dockview, default on #263). Deletes the hand-rolled binary-tree split system (layoutTree), the detached-terminal overlay (SessionMountLayer), the hiddengroupsworkspace-swap, theSplitLayout/PaneSlot/DropZoneOverlay/TabBar/LayoutContextcomponents, thelayoutEngineflag, and thereact-resizable-panelsdependency — ~3.5k lines of fragile custom code. dockview is now the only layout engine.No user-facing behavior change: dockview already shipped on by default and is untouched. The sidebar's on-screen-agent indicator is re-sourced from dockview's live panel set (was derived from the deleted layout tree). The legacy split/close keyboard shortcuts (Ctrl+D / Ctrl+Shift+D / Ctrl+W) are removed — dockview-native keybinds are a planned follow-up.
#255
1c393c5Thanks @aterrylu! - Refine the flat-view pin affordance: the pin/unpin control now sits in each agent row's top-left corner (instead of reserving space on the right), reveals on hover when unpinned, stays visible once pinned, and the pin points straight down in both states (outline = unpinnable, filled = pinned).#264
c36e0aeThanks @aterrylu! - Claude Usage now reads Claude Code's local OAuth token (read-only) as thezero-touch default credential, calling Anthropic's OAuth usage endpoint for the
full per-window, per-model, and extra-credits breakdown. The token is never
refreshed and never written to disk. Pasting a claude.ai session key still works
as an explicit override. The old cookie-scanning / agent-harvest machinery
(which couldn't obtain a cookie on a clean OAuth-only install) is removed, and
the
autoDetectClaudeSessionsetting is renamedautoDetectClaudeAccount(the old key is still read for back-compat).
Updated dependencies []:
@autonomos/server@0.4.0
Minor Changes
#257
08de6c2Thanks @aterrylu! - Replace the coarseautonomousModeboolean with a per-provider permission mode (default|auto|plan|bypass). The single on/off switch couldn't express the granularity each CLI actually supports, so spawning an agent was all-or-nothing on permission prompts.Each provider now maps the common mode to its native surface: Claude Code →
--permission-mode default|acceptEdits|plan(or--dangerously-skip-permissionsfor bypass), Gemini CLI →--approval-mode default|auto_edit|plan|yolo, and Codex →approval_policy=on-request|on-failure|never(its sandbox staysdanger-full-access— autonomOS is the trust boundary). Codex has no plan mode, soplanis disabled for it in the UI and clamps to the default with a warning.The Settings panel sets a global default and the Create Agent panel can override it per spawn; both expose a clickable "?" explainer describing what the selected mode does for each provider. Templates carry their own default permission mode.
Migration is transparent (accept-and-discard): existing
autonomousMode: truerecords map tobypassandfalsetodefault, the legacy field is scrubbed on read, and an unspecified mode defaults tobypassto preserve current behavior. See ADR-045.#261
4806642Thanks @aterrylu! - Flip the default permission mode frombypasstodefault(fail-closed). A spawn that doesn't specify apermissionModenow asks before each privileged action instead of skipping all permission prompts.The original ADR-045 cut shipped
bypassas the default to mirror the oldautonomousModebehavior, but that proved fragile:bypassemits--dangerously-skip-permissions, which the real Claude Code binary refuses under CI/root, and it silently granted full autonomy to any spawn that forgot to set a mode. A safe default matters more — callers that want autonomy now setbypassexplicitly (the Settings/Create-Agent UI, MCP, and templates can all still choose it).Migration of existing records is unchanged: an old
autonomousMode: truestill maps tobypass, so already-configured installs keep their prior behavior. Only fresh/unspecified spawns get the safe default. Also: Claudedefaultmode now emits no flag (the redundant--permission-mode defaultwas perturbing interactive-TUI startup timing). See ADR-045 (Update 2026-06-26).Patch Changes
#244
49e35f8Thanks @aterrylu! - Fix the release changelog consolidator dropping most changes. The consolidated root CHANGELOG.md (and the GitHub Release body derived from it) sourced onlypackages/app/CHANGELOG.md, so every changeset that didn't list@autonomos/app— server-, dashboard-, core-, and cli-only changes — was silently omitted (v0.3.0's release body showed 1 of ~21 changes). The consolidator now merges all per-package CHANGELOGs, deduplicates by PR (keeping the highest severity), and renders one concise line per PR. A new unit test (wired intomake check) guards the regression, and the script hard-fails if a release section comes out empty while changesets were consumed.#259
8117dfeThanks @aterrylu! - Quarantine theusage-queue-sim-integrationtest pending a fix for the auto-trust ↔ TUI-stdin-attachment race (ADR-036 / PR fix(server): re-deliver silently-dropped starting prompts via delivery receipt #209). The test types the prompt over the terminal WebSocket and relies on the usage-queue's auto-Enter; unlike production agent spawns it does not route through the prompt-delivery receipt mechanism, so it's exposed to the documented race that mechanism is designed to absorb. The quarantine is observable in code (askip: truewith a header comment explaining the cause and exit criteria) and reversible once either the race is fixed upstream or the test is re-routed through the receipt path.#254
5b57cfeThanks @aterrylu! - Fix agent resume failing withresumeAgentId "<id>" not foundafter an agent callsself_exit. Theself_exitMCP tool issued a hardDELETE /api/agents/:id, whichrmSync'd the agent record off disk — so a latercreate_agent({ resumeSessionId })could not find it (getAgent()returned undefined). This was asymmetric withkill_agent, which soft-exits viaPOST /:id/killand keeps the record asstatus: "exited"(resumable).self_exitnow takes the same soft-exit path, marking the recordexitedwithexitReason: "self_exited"instead of deleting it, so self-exited agents can be resumed. The/:id/killroute gained an optional{ reason }body (validated againstExitReason, defaulting touser_killed) so the exit reason stays honest in the UI/notifications.#260
c786abdThanks @aterrylu! - Enable terminal WebSocket frame coalescing by default and make it leading-edge. Coalescing (added previously behindAUTONOMOS_WS_COALESCE=1) eliminates burst-induced dropped frames (measured 12/31/65 → 0 at 1/4/12 MB on a real GPU) and cuts frame count ~570× over the network/multi-pane — but a pure trailing window added up to 8 ms to interactive echo. The coalescer is now leading-edge: the first chunk after an idle gap flushes immediately (zero added latency for typing and slow output), and only a genuine burst — chunks arriving faster than the window — coalesces. This makes it strictly ≥ the historical per-chunk behavior on every axis, so it's now ON by default. SetAUTONOMOS_WS_COALESCE=0to restore the exact per-chunk send as an escape hatch.#253
37b4372Thanks @aterrylu! - Add opt-in WebSocket frame coalescing for the live terminal stream (AUTONOMOS_WS_COALESCE=1). The live path previously sent one WS frame per node-pty chunk; Claude Code's Ink TUI emits many tiny chunks per repaint, so a burst (npm install,make build) fanned into hundreds of thousands of frames, dropping animation frames in the browser render loop. When enabled, chunks are buffered per connection and flushed as a single frame on an 8 ms window or a 16 KB threshold (whichever first). On a real GPU a 12 MB burst goes from 65 dropped frames to 0; it also cuts frame count ~570× (helping remote/SSH and multi-pane sessions) and lowers server event-loop stall. Default OFF → byte-identical to prior behavior. The PTY-exit path now flushes any coalesced tail before closing the socket so the final pre-exit output isn't dropped. Ships with an ablation harness (bun run perf:l1) and unit + regression tests. Tunable viaAUTONOMOS_WS_COALESCE_MS/AUTONOMOS_WS_COALESCE_BYTES.#258
42b56a4Thanks @aterrylu! - Fix Claude Usage staying on the old account after a Claude Code account switch. The auto-detect path relied onCLAUDE_SESSION_COOKIE, which Claude Code only propagates (it never re-derives it from the logged-in account), so the cookie the server held was frozen at launch and the agents it spawns merely inherited that frozen value — restarting sessions never switched accounts. The plugin now discovers the active session key by scanning the user's own runningclaudeprocesses and adopting the most-recently-started external session's cookie. The server's own process tree — the server, its spawned agents, and other children like schedulerisolatedruns — is excluded both by process ancestry (descends from the server PID) and byAUTONOMOS_*env markers, so the frozen launch cookie can never win. The scan reads process env viaps//procfor the current user only — where the cookie already lives — validates the strictsk-ant-sid…shape, never logs it, and invalidates the usage cache when the account changes. It deliberately does not depend on the server itself having a cookie. Manual-paste remains the tier-1 override. See ADR-046.#264
c36e0aeThanks @aterrylu! - Claude Usage now reads Claude Code's local OAuth token (read-only) as thezero-touch default credential, calling Anthropic's OAuth usage endpoint for the
full per-window, per-model, and extra-credits breakdown. The token is never
refreshed and never written to disk. Pasting a claude.ai session key still works
as an explicit override. The old cookie-scanning / agent-harvest machinery
(which couldn't obtain a cookie on a clean OAuth-only install) is removed, and
the
autoDetectClaudeSessionsetting is renamedautoDetectClaudeAccount(the old key is still read for back-compat).
Updated dependencies []:
@autonomos/cli@0.4.0
Patch Changes
49e35f8,08de6c2,4806642,8117dfe,5b57cfe,c786abd,37b4372,42b56a4,c36e0ae]:@autonomos/app@0.4.0
@autonomos/core@0.4.0