Repository navigation
Releases
v0.6.5
v0.6.4
What's fixed
Mashūra reviews no longer get marked VOID when the reviewer cites a whole labelled block.
When a reviewer answered with the block's full decorated header — e.g. ── diff 59a7449..HEAD (120 lines) ── — the citation check compared it against the plain label (diff 59a7449..HEAD (120 lines)) and failed, voiding an otherwise complete review. The ── box-drawing decoration is now stripped on both sides (like the trailing (N lines) group already was), and matching is still exact — a different label can never pass via decoration.
The VOID diagnostic now also prints both normalized forms (expected … / got …), so any future mismatch is self-explaining instead of needing a code read.
Related hardening in passing (all from live-review feedback this session):
- Live check against the release commit: 2/2 reviewers ended their reply with the full decorated header citation and both were counted, not VOID.
Verified by
- Unit + end-to-end tests: decorated citations (
── … ──,-- … --,— … —) count; a wrong decorated label still returns VOID. go test ./...,go vet ./...,gofmt,scripts/check_config_docs.sh— all clean; CI green on the release commit.
Install
curl -SfL https://github.com/treeol/wakil/releases/download/v0.6.4/install.sh | shv0.6.3
v0.6.2
v0.6.1
Changelog
Features
- 5de219d feat(proxy): attribute OpenRouter traffic to https://wakil.pro
- 6df6f1d feat: add install.sh quick installer and quickstart config
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
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/andweb/. - ~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 --detachreturns once the session is ready, andsupervisor.pidis 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.mdforwakil 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
v0.5.1
v0.5.0
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_PATHno longer changes store keys. - Legacy store read-through (C2). Pre-0.5.0 shared memory store is opened read-only;
memory_get/memory_searchfall 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-keyshows the legacy key and count. - hisn rootfs (P2).
sandbox.hisn.rootfsselects the session root filesystem. Needs hisn ≥ 0.3.2. - hisn persistent home (P1).
[home] persiston hisn ≥ 0.3.2;sandbox.hisn.homecontrols persist vs tmpfs. - Git identity and SSH signing (P3). Session gitconfig carries
user.name/user.email/user.signingkeyfrom global/system scope. Signing key fingerprint must be insandbox.hisn.ssh_keys.GIT_CONFIG_GLOBALpoints at the in-session path. - Browser under hisn (P4). Browser tools run inside the hisn session via
CLIExecerownership 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_GLOBALpoints at the in-session home (F8). Signing guard allows reads (F7). Command-scopeGIT_CONFIG_*env vars override repo-local config (F9).
Security fixes
- F1: Broken or unapproved
.wakil/sandbox.jsonis a startup error — no docker fallback, no browser. - F4:
SSH_AUTH_SOCKpassed 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/configcannot shadow the enforced key.
Known limitations
- Browser under hisn: name resolution fails on hosts where
/etc/resolv.confonly 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.