Skip to content

Releases

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 09 Nov 16:25
v0.6.3
80eb115

Changelog

Features

  • 3264f70 feat: wakil init, config show, api_key_env and clear first-run errors

Fixes

  • 80eb115 fix(config): fully redact secrets in config show

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 09 Nov 13:45
v0.6.2
c6acb55

Changelog

Features

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 09 Nov 11:20
v0.6.1
5e935d7

Changelog

Features

Fixes

  • ea4cdbe fix(agent): correct omitted-files count in symbol map marker
  • b883f74 fix(install): refuse non-https downloads

Other

  • 0a9a907 test(tui): replace no-op false-positive test with code comment

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 08 Nov 20:49
c0fd0ac

Wakil 0.6.0

A leaner, faster Wakil, built on the hisn 0.4.1 sandbox contract.

This release is mostly about subtraction. The daemon, the remote/web stack and the Connect API are gone, and with them a large surface that Wakil didn't need to be a terminal coding agent. What's left starts in a fraction of the time, ships a smaller binary, and leaves nothing running behind a closed chat.

Smaller

  • Removed the daemon, remote and web stack, the Connect API, and the auth packages (apitoken, jointoken, oidcresolver, tokenresolver, tokenstore), along with api/gen/ and web/.
  • ~31k fewer lines of Go, ~20% smaller binary (≈41 MB, down from ≈51 MB), 15 direct dependencies instead of 17.
  • Removed the ilm session emitter and /assist (ADR 0013). Wakil no longer feeds the ilm-stack.

Faster

  • Start: ~2990 ms → ~149 ms to prompt (rubin, khatam repo). MCP connects in the background; probes, hisn reconcile and sandbox start are deferred past first paint.
  • Exit: near-instant. The old blocking ilm-emitter flush is gone; turn completion is signalled, not polled.
  • WAKIL_TRACE=1 (or --trace) writes a phase timeline to ~/.local/share/wakil/traces/.

hisn 0.4.1

  • Wakil now requires hisn 0.4.1 (ADR 0014) and speaks its detach contract: run --detach returns once the session is ready, and supervisor.pid is read as <pid> <starttime>.
  • Clean shutdown. Closing a chat stops its hisn supervisor; Close, Stop and failed starts all stop the real supervisor and wait on its pid. Sessions no longer leak after a chat ends.
  • A reaped supervisor is now correctly read as dead rather than "unknown", closing a race that could surface a spurious failed tool call.

Docs

  • README rewritten for 0.6.0; stale documentation cleaned up and a docs/ index added.
  • New docs/headless.md for wakil run.

Known follow-ups

  • hisn 0.4.1 is detected by timing; a version check would remove the dependence.
  • Wakil's own prune still affects every dead session of the user; it could scope by name prefix.
  • The rubin exit figure hasn't been re-measured since the ilm-emitter removal.

Changelog

Features

  • 46ce6b1 feat: hisn 0.4.0 session model — named sessions, v2 states, client record, hisn stop
  • 823a7d4 feat: phase timeline (WAKIL_TRACE=1, --trace) for start, /new, /resume and exit; baseline in docs/PERF-0.6.md
  • 783e483 feat: require hisn 0.4.1

Fixes

  • 90a5e42 fix: default hisn gate matches the explicit gate (0.3.3)
  • b9a9841 fix: drop removed store packages from coverage gate
  • 56f7afc fix: hisn 0.4.0 readiness — accept state running from hisn-ls/v2
  • fc0a1e3 fix: hisn 0.4.1 sessions no longer leak; Close and failed starts stop them
  • ab0c340 fix: procAlive treats a reaped supervisor as dead, not unknown

Other

  • 0b2f0e8 b2: address Mashura round 2 (built-in tools, reconnect readiness, races)
  • f4d515b b2: address review findings (races, stale probes, run.sh read-only)
  • f352d56 hisn: adapt to 0.4.1 run --detach contract (supervisor exits, detached mode)
  • a7d3301 ilm removal: address review findings
  • a18447e lsp: probe for the server binary before launch
  • 0c13c20 mashura: retry a VOID once, chunk oversize sources, review a commit range
  • 17113fc mcp: connect servers in the background; remove the Telegram approval bridge
  • fb35108 perf: run.sh uses the real hisn trust store read-only and explains empty runs
  • c0fd0ac release: 0.6.0
  • c04437d remove the ilm-stack emitter
  • 673621c start: defer probes, hisn reconcile and sandbox start off the first prompt
  • 59419a1 test: counsel oracle respmessage coverage
  • 649041a test: doctor hisn fixtures track the 0.3.3 default gate
  • cf4aeca wiring: exit waits on a turn-done signal, not the 50ms Release poll
  • 76004d9 wiring: trace each step of facade Close (exit gap diagnosis)

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 07 Nov 09:17
0a1d67f

Changelog

Fixes

  • c69041f fix: gofmt — restore trailing newline in testmain_test.go
  • 9f9f657 fix: isolate internal/server/connect tests — bare App saved repo-state to the real data dir

Other

  • 903a708 0.5.2 (A): hisn 0.3.3 image and minimum; known_hosts src:dst mount
  • 1a5e971 0.5.2 (B review fixes): trust uses startup config; approval bound to bytes
  • 6b6da99 0.5.2 (B): first-run risk ack without hand-written JSON
  • 0a1d67f 0.5.2: changelog

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 06 Nov 22:37
bfd7175

Changelog

Other

  • bfd7175 0.5.1: per-repo signing-key resolution on the host at plan time

v0.5.0

Choose a tag to compare

@treeol treeol released this 06 Nov 20:42
2e38a21

Wakil 0.5.0 — per-project identity, hisn parity

Highlights

  • Per-project identity (C1). Chat stores are keyed by the project directory (ResolveProject, symlink-resolved). WAKIL_WORKSPACE_PATH no longer changes store keys.
  • Legacy store read-through (C2). Pre-0.5.0 shared memory store is opened read-only; memory_get/memory_search fall through to it.
  • wakil state migrate --from-legacy (C3). Copies attributable legacy entries to their project stores. Dry-run by default.
  • First-start notice (C4). One notice line per project when a legacy store has entries. --print-workspace-key shows the legacy key and count.
  • hisn rootfs (P2). sandbox.hisn.rootfs selects the session root filesystem. Needs hisn ≥ 0.3.2.
  • hisn persistent home (P1). [home] persist on hisn ≥ 0.3.2; sandbox.hisn.home controls persist vs tmpfs.
  • Git identity and SSH signing (P3). Session gitconfig carries user.name/user.email/user.signingkey from global/system scope. Signing key fingerprint must be in sandbox.hisn.ssh_keys. GIT_CONFIG_GLOBAL points at the in-session path.
  • Browser under hisn (P4). Browser tools run inside the hisn session via CLIExecer ownership transport. Chromium ran inside the session on real hisn 0.3.2.
  • Signing enforcement (F5–F9). Fingerprint checked against ssh_keys (F5). Signing bypass refused in enforced sessions — git -c commit.gpgsign=false, --no-gpg-sign, GIT_CONFIG_* env (F6). GIT_CONFIG_GLOBAL points at the in-session home (F8). Signing guard allows reads (F7). Command-scope GIT_CONFIG_* env vars override repo-local config (F9).

Security fixes

  • F1: Broken or unapproved .wakil/sandbox.json is a startup error — no docker fallback, no browser.
  • F4: SSH_AUTH_SOCK passed to the host-side hisn supervisor only; exec clients never get it.
  • F6: Signing bypass refused in enforced sessions (tool guard + prompt rule).
  • F9: Signing settings injected at command scope via GIT_CONFIG_COUNT/GIT_CONFIG_KEY_n/GIT_CONFIG_VALUE_n — repo-local .git/config cannot shadow the enforced key.

Known limitations

  • Browser under hisn: name resolution fails on hosts where /etc/resolv.conf only lists the systemd-resolved stub (127.0.0.53); hisn 0.3.2 drops loopback resolvers. Fixed in hisn 0.3.3.

Full details

See docs/CLOSEOUT-0.5.0.md for the complete commit list, review status, and host verification results.

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 06 Nov 08:12
19bd15d

Changelog

Other

  • 19bd15d test: config and exec packages run under the isolated HOME (H1 follow-up)

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 06 Nov 01:00
b41c750

Changelog

Fixes

  • 12a9412 fix(remote): treat broken-pipe write on SessionStateService as not mounted

Other

  • 7c06c55 agent: --think applies on /new and /resume without saved repo-state (M2)
  • 33d47ae agent: a partial collapse upgrade is measured against the form it replaces (T5 review)
  • 0bbe130 agent: a read of a background job pins its log for the whole read (T2 review)
  • 8d06cf0 agent: a run_shell that finishes inside its deadline removes its log (T2 review B5)
  • bb54e67 agent: a shell completing at its deadline is not lost (T2 review astra-4)
  • df6aec8 agent: collapse never inflates the request (T5)
  • 7fe8e15 agent: completion envelopes carry exit status and output (T1)
  • 7183a4d agent: correct stale comments about in-band skill hints (D2 follow-up, round-2 review)
  • 5a0209d agent: finished background jobs stay readable via read_process_log (T2)
  • 00ecc78 agent: read_file/read_file_full may read the sandbox's own /tmp (T3)
  • 3a5b0b5 agent: regression test for apply_skill_template under a German locale (L2)
  • 78cb375 agent: remove dead RunTurn and tuiConfirmer
  • fb6b18f agent: remove unused RestoreRepoStateResume wrapper
  • 60d7b30 agent: the collapse size gate measures what is actually stored and visible (T5 review)
  • 06f69b1 apitoken: remove unused IsNotFound
  • ba515b5 browser: abrupt forwarder death is reaped, not leaked (B3 review)
  • b41c750 browser: launch tests look only at profile dirs they could have created
  • 4038075 browser: lazy start, idle/new/exit stop, loopback-only CDP (B1-B3)
  • f73a144 browser: private direct-mode launch, pidfd ownership, shell-free test helpers (host run)
  • 0afa088 browser: review fixes R1-R3 and opCtx (0.4.4)
  • 9d56b1d cleanup(A1): ResolveProject as gc source of truth + golden-key and chat/gc invariant tests
  • dab7ecf cleanup(A2): shared lexical containment helper; close symlinked-missing-parent hole in memory
  • 5bf7ade cleanup(A3): OpenExisting refuses missing stores; plan gc uses it
  • e72839c cli: --print-workspace-key and the WAKIL_WORKSPACE_PATH startup line (M1, D3)
  • 54846c7 config: validate output and clipboard modes via their IsValid helpers
  • ef594a8 connect: remove unused NewServerFromInterfaces* constructors
  • fc395b4 deprecate daemon/remote/web and skill auto-creation; skill suggestions leave tool results (D1, D2)
  • ce4d61d exec,agent: user commands run under bash when the sandbox has it (T4)
  • f6189ad exec: a bash probe that fails is not cached as 'no bash' (T4 review B1)
  • 3c5d51a exec: a dead container is a transport error, not 'file not found' (review fix)
  • 181174c exec: helper commands run under LC_ALL=C; not-found decided by exit status (L1)
  • 03d8af0 gofmt: trailing blank lines left by the B1 deletions
  • 54bc114 id: remove unused NewToolCallID and NewSubagentID (deadcode -test leftovers); plan_gc: fix ResolveProject doc
  • bc0183f memory: pin dangling-symlink rejection in isWithinWorkspace (round-2 review)
  • 8209c9f remove zero-reference helpers (B1 batch)
  • ec3f3cf sessionhost, id: remove unused test-seam options and NewFromReader
  • 15868f6 test: drop unused raceEnabled const (lint)
  • 0fc7f53 test: e2e daemon readiness + race timeouts
  • b56b901 test: host-run fixtures no longer use 'sleep 300' (collided with the hisn pgrep)
  • b6f44ef test: no test writes to the real user data dirs; guard fails the package (H1)
  • 68b6959 test: wire cmd/wakil TestMain to testutil.Main (missed in the H1 commit)
  • a5c9de9 tools: OpenOnHost refuses in a test binary (a test opened example.com on the desktop)
  • 5b123f8 wiring: test the sessionhost id derivation matches the workspace report (M1)

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 05 Nov 10:46
45572e1

Changelog

Other

  • b06b025 0.4.2: TUI child-completion line shows files / and partial/rejected
  • d40bdd4 0.4.2: collapse line aggregates by tool name
  • 16c68bc 0.4.2: docs — dispatch discipline, plan gc, corrected CHANGELOG, plan open points
  • 8ce173f 0.4.2: drop unused helper (lint)
  • 90b55b0 0.4.2: end-to-end dispatch tests (real tool path, scripted model)
  • ba8ab85 0.4.2: fold Mashūra round 1 BLOCKING findings
  • 4b2d77d 0.4.2: fold Mashūra round 2 BLOCKING findings
  • c6558e2 0.4.2: harness dispatch guard — off-task rejection, split enforcement, stop state
  • 4fe1079 0.4.2: per-file read ledger
  • 77f4235 0.4.2: plan/current quarantine, wakil plan gc, memory_preflight_recall removal
  • cb84939 0.4.2: subagent budget by task class + structured partial
  • 13e2f43 0.4.3 B1 review fixes: map roots in the correct direction; alias paths
  • 2e656ae 0.4.3 B1: resolve workspace roots before containment checks
  • 1804d74 0.4.3 B2 review fixes: refuse to reject without a sessions directory; strict args
  • 7de01ff 0.4.3 B2: default store = cwd project
  • 90c8688 0.4.3 B2: plan gc opens the real store
  • 45572e1 release: v0.4.3 (includes 0.4.2)