Skip to content

release: v0.4.0 — read_page, auto-detect dario, personas, audit replay#30

Merged
askalf merged 1 commit into
mainfrom
release/v0.4.0
Apr 30, 2026
Merged

release: v0.4.0 — read_page, auto-detect dario, personas, audit replay#30
askalf merged 1 commit into
mainfrom
release/v0.4.0

Conversation

@askalf
Copy link
Copy Markdown
Owner

@askalf askalf commented Apr 30, 2026

Summary

Bundles four feature PRs landed since v0.3.0. All additive — v0.3.0 users see no behavior change without opting into the new flags or letting the new tool surface.

Functional (already merged, surfaced as v0.4.0)

Test count

49 → 92.

Empirically verified

  • All four feature PRs rebased onto each other cleanly (one cli.ts + run.ts conflict resolved during integration; no semantic regression).
  • read_page tool live-tested end-to-end through dario for OAuth subscription billing (3 prompts: Wikipedia article summarize, Anthropic docs query, claude.ai SPA-shell honesty test). All routed `five_hour`.
  • Full suite passing locally on the rebased branches.

Test plan

  • `npm install --package-lock-only` — clean, 0 vulns.
  • `npm run build` — clean.
  • `npm test` — 92/92 pass.
  • `node dist/cli.js --version` → `0.4.0`.
  • Required CI checks (`actionlint`, `analyze`, `build (20)`, `build (22)`) on this PR.
  • On merge: `auto-release.yml` fires → tag `v0.4.0` → `npm publish --access public --provenance`.
  • Post-publish smoke within ~10 min: `npm install -g @askalf/hands@0.4.0` → `hands --version` → `hands doctor` clean → `hands run --dry-run "echo test"` end-to-end.

Bundles four feature PRs landed since v0.3.0 (#25-#29). All
additive; v0.3.0 users see no behavior change without opting into
the new flags or letting the new tool surface.

Headline change: hands gains a `read_page(url)` tool that fetches a
URL via plain fetch + cleans the HTML and hands it to the agent
directly. No browser, no JS execution, no screenshot+OCR. The
"browser without a browser" thesis turned into product.

Other features:
- Auto-detect dario at startup (probes localhost:3456/health, sets
  ANTHROPIC_BASE_URL when it responds — operator override wins via
  pre-set env var or --no-dario).
- --persona <name> / --system-prompt <path> flags swap in custom
  system prompts. Bundled set: minimal, thorough, concise,
  security-aware. User overrides at ~/.hands/personas/<name>.md.
  Safe per dario research (#172) — billing classifier doesn't
  fingerprint system prompt content.
- `hands audit list/show/replay` — inspect and re-execute audit-
  log entries. Default replay is dry-run; --execute fires after
  prompt-confirmation for state-changing actions.

Test count 49 → 92. All four PRs were rebased onto each other
with no semantic regressions; the integration was live-tested end-
to-end through dario for OAuth subscription billing before merge.

Auto-release workflow will fire on merge (version-changed gate
sees 0.3.0 → 0.4.0), build + smoke + tag + GitHub release + npm
publish with provenance attestation.
@askalf askalf merged commit 1c101a9 into main Apr 30, 2026
5 checks passed
@askalf askalf deleted the release/v0.4.0 branch April 30, 2026 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant