Skip to content

Hankweave v0.6.2

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Mar 00:17

Installation

Via npm:

npm install -g hankweave
# or
npx hankweave --init

Via Standalone Executable:
Download the binary for your platform below, make it executable, and run it.

What's Changed

[0.6.2] - 2026-03-19

Added

  • Exported public types and schemasserver/exports/types.ts and server/exports/schemas.ts expose a stable set of runtime types and Zod schemas for use by external consumers. A dedicated tsconfig.exports.json and updated build script generate the exports bundle.

Changed

  • Updated model data — Refreshed models-dev-data.json with latest provider model entries (March 2026). (ENG-225)
  • Codex shim API key logic consolidatedresolvedApiKey, apiKeySource, and isAuthConfigured are now readonly getters on CodexShim, replacing scattered utility functions. Key priority order is explicit and tested: OPENAI_API_KEY > CODEX_API_KEY > ~/.codex/auth.json. Unit and integration tests cover all priority combinations.

Fixed

  • Codex shim falls back to SDK bundled binary when codex not on PATHresolveCodexPath() previously called writeStartupError if which codex failed, blocking the SDK's own findCodexPath() from running. In CI, codex is not on PATH but is available via npm platform packages. Now passes null to the Codex constructor so it can resolve the binary itself; self-test also tries tryFindSdkBundledCodex() as a fallback.
  • Codex shim WebSearch defers tool_use emission until item.completed — WebSearch items arrive with query: "" at item.started; the real query only appears in later streaming chunks. Deferring emission ensures transcript logs record a non-empty query.
  • Codex warnings no longer thrown as errors — The shim previously threw on any non-fatal warning message from Codex, causing spurious failures. Warnings are now logged and ignored.
  • Codon failure classification reads msg.result instead of msg.errorResultMessage has no error field; error text lives in msg.result. Reading msg.error always yielded undefined, so every error result was classified as { type: "unknown", retriable: false }, including retriable timeouts and rate-limit errors.
  • Loop codons funded via hank proportional shares now route correctly — When a hank used proportional allocation with a named share for a loop but the loop had no explicit budget field, loopContext.loopBudget was undefined. The routing condition fell through to resolveHankScopedLimits, which looked up shares by codon ID instead of loop ID, yielding a $0 allocation. Now synthesizes an implicit loopBudget: {} so the correct loop-scoped path is taken.

Platform-Specific Instructions

macOS

  • Apple Silicon (M1/M2/M3): hankweave-darwin-arm64
  • Intel: hankweave-darwin-x64

After downloading:

xattr -d com.apple.quarantine hankweave-darwin-arm64
chmod +x hankweave-darwin-arm64
./hankweave-darwin-arm64 --help

Linux

  • x64: hankweave-linux-x64
  • ARM64: hankweave-linux-arm64
chmod +x hankweave-linux-x64
./hankweave-linux-x64 --help

Windows

  • x64: hankweave-windows-x64.exe
.\hankweave-windows-x64.exe --help