no_human 0.1.1
Also in this release — reliability, honesty, and cost, measured not asserted
(full suite 8,864/0; funnel 5/5 with every holdout green; reviewer recall
17/19, up from 15/19):
- The eval judge's verdict now survives mid-run emission, a truncated end
marker, and marker drift — six bench tasks per run were being scored as
failures because a verdict could not be parsed, not because work was wrong. - Git lock contention (another process briefly holding
index.lock) is
retried with two short backoffs instead of crashing the task; every other
git failure still fails fast and loud. - Fix pairs: when a task fails on an error this machine has overcome before,
the retry is handed what worked — as evidence, never as an instruction. - A retry that ends byte-identical to its predecessor (same failure, same
diff) stops the loop and escalates honestly instead of buying the most
expensive third attempt. - Judgment-call blockers (ambiguity, novel-unknown, impossible) get exactly
one supervisor-checked challenge before parking; external blockers are
honored untouched, and a park is never converted into a fake "done". - The reviewer carries a maintainability-trajectory lens: does this change
make the NEXT change harder? Concrete findings only, capped below blocking
severity. nh bench harvest: escalated, parked, and failed tasks become bench-spec
candidates for curation.- The intake grill's answering pass pays for what the task needs: probe
budget scales with the question count; prose-only tasks skip filesystem
probes (assumption-grade answers, clearly marked). - Onboarding: two checkouts of the same repository are tellable apart —
colliding names show their full path. (Authored end-to-end by no_human
from its own board, review PASS, 8,847/0.) - The stale-data banner no longer eats clicks while disconnected.
- docs: an operator profile for reviewing untrusted external PRs in a
credential-isolated container. - This release restores auto-update for installed apps: it ships the ZIP and
latest-mac.ymlthatelectron-updaterrequires (0.1.0's release lacked
both).
Added
- CI builds the board-carrying wheel on every run and proves it installs:
uv tool install <wheel>yields annhthat finds its board and the Agent
SDK's bundledclaude— no Node, no separate CLI install. A release build
(workflow_dispatchwithwheel_release) keeps the wheel as an artefact. - A Claude Code plugin at
plugins/no-human/exposing the MCP bridge's two
tools (task_add,task_status). - A
Publish to PyPIworkflow (workflow_dispatchonly, typed confirmation)
that builds the board-carrying wheel and uploads it with PyPI Trusted
Publishing — no API token anywhere in the repository. - Version is 0.1.1 across
pyproject.toml,desktop/package.jsonand
web/package.json(and those lockfiles' root entries), so a built wheel is
no longer labelled with the released 0.1.0's version. CHANGELOG.md(this file) andglama.json.
Changed
- README: download buttons, the site's hero loop under the title, install
leads with the desktop app and names each build's architecture;nh approve
is documented as what it does — it squash-lands the PR as the configured
operator identity (git.approve_identity). CONTRIBUTING.md,docs/adapters.mdand thenh task add --backendhelp no
longer say "a single Claude backend": the coder runs on the Claude Agent SDK
by default with OpenAI Codex as the sanctioned second backend
(worker.backend); reviewer, planner, supervisor and utility tiers stay on
Claude.
Fixed
- The shipped harvest test no longer asserts that the (unshipped) scored corpus
directory exists, so the public repository's CI runs green.