Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,21 @@ Hive did not historically maintain a complete changelog. This file starts a prag

## Unreleased

## 2026-09-09 (v4.21.0)

### Added

- `muse` now launches through the shared-`$HOME` `umask 007` wrapper (Layer 8.26 of `src/Dockerfile`), alongside `agy` and `claude`. Without it, muse creates its entire state tree (`$XDG_DATA_HOME/muse`: `sessions/`, `runtime/`, `skills/`, `plugins/`, `model-catalog/`) group-unwritable on first launch, so the first agent to start muse locks out every other agent sharing `/data/home`. muse fails harder than the two CLIs already wrapped: rather than degrading to a login screen it exits non-zero before doing any work — ``failed to create session lock directory for session <uuid>: Permission denied (os error 13)`` — and the agent crash-loops. Observed on a live spoke where every muse-backed agent reported `state=running` / `busy=working` while restarting hundreds of times.
- `muse` (Muse Code) as a headless contributor-relay backend. It dispatches through muse's own `muse exec "<prompt>"` sub-command with `--approval-mode never --user-input-auto-resolve`, and — unlike `opencode`/`kilo` — muse ships a **real OS-enforced sandbox** (bubblewrap/seccomp on Linux, seatbelt on macOS) that is on by default, so it joins the `claude`/`codex`/`copilot` sandboxed class rather than the refuse-to-launch group: hive narrows that sandbox on the local path (`--workspace`, `--sandbox-network proxy-only`, `--no-foreign-personal-context`) instead of demanding an unconfined opt-in, with `HIVE_MUSE_DANGEROUSLY_BYPASS_APPROVALS_AND_SANDBOX=1` as the escape hatch. `--yolo` is deliberately not used, since muse documents it as disabling approval *and* sandboxing. Credentials flow only through `META_API_KEY` or muse's own `~/.config/muse/auth.json`, and `AGENT_REASONING_EFFORT` maps to `--reasoning-effort` with values outside muse's vocabulary dropped rather than passed. Both `src/Dockerfile` and `src/Dockerfile.contributor` install muse from its release manifest, pinned by version and per-arch SHA-256 rather than through the public `dev.meta.ai` installer, whose launcher pins nothing by digest; the binary is ~250-265 MB per arch, the largest CLI layer in either image. muse stays out of the Kubernetes headless allowlist until its `META_API_KEY` auth is verified end-to-end in a fresh pod.
- muse's model catalog is **caller-dependent**, and hive's docs now say so. Measured 2026-09-08 with a single API key, `GET https://api.meta.ai/v1/models` returned seven ids from a workstation and only four from a container in AWS; a rung naming a model the caller cannot see fails at task time with ``model `…` does not exist or you lack access``. muse also does not reliably reject a bad id up front — a wholly invalid model completed normally and exited 0 for the prompt `hi` (3/3) while exiting 1 for `say ok` — so a mistyped or unentitled model can pass a smoke test and fail only on real work. Resolve model ids against the catalog as seen by the machine that will run muse, not against a trial run.
- `HEADLESS_BACKENDS` entries can now declare `flagsAfterCommand` for sub-command-first CLIs, whose options are parsed by the sub-command rather than the root binary. Without it, `muse --approval-mode never exec "<prompt>"` prints the root help and exits 0 — a silent no-op that would have been reported as a successful task.
- Hive now has a post-merge DCO trailer check for recent `v4` and `v5` commits, so protected-branch squash commits with missing or mismatched sign-offs are surfaced before they are inherited by sync PRs ([#6312](https://github.com/hivecommons/hive/issues/6312)).

### Fixed

- Fixed the Advisory Digest so findings that are merely absent from later agent output stay open and are marked unverified instead of appearing as "Recently Resolved" without positive resolution evidence.
- Fixed the agent thrash breaker pane capture to join tmux display-wrapped lines so blocked-action markers split by narrow panes are detected reliably.

## 2026-09-09 (v4.20.2)

### Fixed
Expand Down
4 changes: 0 additions & 4 deletions changelog.d/added-6222-muse-backend.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/added-6312-dco-post-merge-check.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/fixed-6262-advisory-false-resolved.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/fixed-6333-thrash-breaker-wrapped-marker.md

This file was deleted.

Loading