Skip to content

v0.5.0

Choose a tag to compare

@treeol treeol released this 06 Nov 20:42
· 66 commits to master since this release
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.