sashiko
Release of Sashiko
Sashiko (刺し子)

Sashiko (刺し子) is a Japanese folk embroidery tradition — reinforcing worn fabric with running stitches. LunarWing v2.0.3.0 follows that theme: reinforcing the v2 engine in multiple ways, stitching closed the remaining Engine V2 security and lifecycle gaps left open from previous releases since 2.0.0.0
LunarWing v2.0.3.0 is a security, reliability, and documentation release built on v2.0.2.0. Its largest change is the completion of the Engine V2 security and lifecycle hardening track. The release also replaces the proprietary Cloudflare/ngrok/tailscale tunnel providers with self-hosted NetBird, hardens DarkIRC outbound delivery, completes the WeeChat session-restore handoff that v2.0.2.0 left broken, and refreshes documentation across the tree.
Abbreviated Highlights
- Engine V2 provenance policy is now wired into production dispatch, so taint-based capability rules govern active execution instead of sitting implemented but inactive.
- Mission lifecycle is hardened:
mission_deleteenforces ownership and hard-deletes,event:andwebhook:cadences now actually fire through the scheduler, expired pending gates are swept in the background, and one malformed mission no longer aborts the rest of the ticker cycle. - The proprietary tunnel providers are gone. LunarWing now ships a
self-hosted NetBird provider, with a
V24migration that removes legacy tunnel settings automatically on startup. - DarkIRC outbound delivery is paced, durable, and frame-safe through a new adapter outbox that respects the configured agent message budget.
- WeeChat session restore actually works now: the FIFO payload is corrected
to
*/upgrade -quit, startup passes--upgrade, and OpenRC stops run the graceful helper as the tenant user. Re-render v2.0.2 units to pick up both halves. - External workers gain bounded context, retry logic, and hardened cancellation, terminal-state, and timeout handling.
- Kimi Code joins the persistent worker roster alongside NanoCode, Pebble, and OpenCode — each task runs in a fresh, isolated subprocess with no cross-task state leakage.
- The self-improving skills pipeline is repaired end to end: learning missions now fire on their triggers and can persist extracted Skill documents through a real write path. It remains disabled by default.
- Study Notes is a new read/write skill with an approved write path and a read-only MCP integration.
- The web gateway keeps streaming answers alive across thread switches and SSE reconnects, and renders faster with a quicker initial page load.
- MCP management improves with in-place
lunarwing mcp updateandlunarwing doctordiagnostics; WASM builds gain a fail-closed--strictmode. - LunarWing agents can now talk like Tony Soprano. Yes, you read that correctly.
Upgrading
Two things deserve attention before you restart. First, if you relied on
Cloudflare, ngrok, or tailscale tunnels, configure the NetBird provider (or
a custom tunnel) beforehand — the old providers are removed. Second, review
your missions: event: and webhook: cadences dispatch for the first time
in this release, so make sure the ones you have are ones you want firing.
Rust is pinned to 1.96.1 everywhere, now also declared as the MSRV.
For full release notes, check the repository as always.
Important
- The Nanocode external worker is expected to be fully removed in the next main release, 2.0.4.0
- The author, 0xGingi, has stopped his work on the project and has transitioned to working on Pebble instead
- All users of Nanocode should consider switching to Opencode (since Nanocode is a fork of Opencode)
- Alternatively, feel free to try out one of the other three harnesses via other supported external workers