You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Add oh harness install muse-code, standard .agents/skills discovery, and META_API_KEY secret storage for Muse Code in the persistent sandbox home. (#952)
Boot the sandbox with systemd as PID 1 via cap_add: SYS_ADMIN, apparmor=unconfined, tmpfs: /run,/run/lock,/sys/fs and cgroup: private — no host cgroup bind. (#956)
Run the existing entrypoint.sh as openharness-bootstrap.service, a Type=oneshot unit whose environment is derived from PID 1 by a systemd environment generator. (#956)
Supervise .oh/scripts/cron-runtime.ts directly with openharness-cron.service as sandbox, with a rate-limited Restart=on-failure and an ExecReload that sends SIGHUP. (#956)
Add the systemd-sandbox-init and cron-systemd-service probes, and prove PID 1, unit state, PID agreement, reload, and kill recovery in sandbox-boot-smoke.sh. (#956)
Changed
Rename the tracked secrets template .env.example to .example.env, so the **/.env* ignore rule no longer needs an exception. Copy .example.env to .env. (#979)
BREAKING: The sandbox image boots CMD ["/sbin/init"] with STOPSIGNAL SIGRTMIN+3; both Docker flavors drop init: true, the entrypoint: override, and command: sleep infinity. (#956)
sandbox-healthcheck.sh reads systemd unit state for scheduler liveness instead of requiring the cron-watchdog and cron-system tmux sessions. (#956)
Mask the Debian cron.service and ssh.service/ssh.socket so installing systemd cannot start a second scheduler or bypass the access.ssh gate. (#956)
cron-runtime.ts now holds its event loop open for signals, so a registry with zero armed crons stays reloadable and never leaves a stale crons/.pid. (#956)
Narrow tailscale-tool-boundary from "no cap_add" to an allowlist of exactly SYS_ADMIN, keeping every networking capability and /dev/net/tun forbidden. (#956)
Removed
Remove @narumitw/pi-plan-mode from the default Pi packages and its bundled /plan mode. (#972)
BREAKING: Remove the cron-watchdog tmux supervisor, its generated /tmp/cron-watchdog.sh, and CRON_WATCHDOG_INTERVAL; systemd Restart= replaces the polling loop. (#956)
BREAKING: Remove the scheduler-level cron-system tmux session and the legacy system-cron reaping; per-fire tmux: true sessions are unchanged. (#956)
Remove .oh/scripts/maintenance/restart-openharness-tmux.sh and its date-expired heartbeat step, which recreated the retired scheduler sessions. (#956)
Remove the cron-watchdog eval probe, whose subject no longer exists. (#956)
Fixed
Align the sandbox user with the Docker socket GID by joining the group that already owns it, instead of silently failing when groupmod cannot renumber docker. (#975)
Stop operator-config-guard requiring two deny rules that Claude Code never consults, which left the eval gate red for every pull request. (#977)
Drop five unenforceable Write(...)/NotebookEdit(...) deny rules that warned on every session start without adding protection. (#974)
Keep Hermes runtime state in the workspace, reject ambiguous homes, and reconcile shared skills without replacing user paths. (#969)
Shorten spec and wiki skill descriptions to remove Pi skill-conflict warnings. (#967)