Skip to content

Releases: no-human-ai/no_human

no_human 0.1.4

Choose a tag to compare

@eyalgolan eyalgolan released this 20 Aug 23:07

Fixes nh mcp-serve on every install that resolves dependencies from PyPI — which is every install that is not a git checkout.

The bug (public issue #15). intake/mcp_bridge.py imports mcp.server.fastmcp; the MCP SDK removed that path in 2.0.0, and our requirement was mcp>=1.28.0 with no upper bound. So uvx no-human mcp-serve, nh mcp-serve after uv tool install no-human, and the Claude Code plugin's command all died with ModuleNotFoundError on 0.1.1, 0.1.2 and 0.1.3.

It did not start when 2.0.0 shipped (2026-07-28): claude-agent-sdk carried mcp<2.0.0 until 0.2.140 relaxed it to mcp<3.0.0 on 2026-08-18 — someone else's cap had been holding this package up by accident, and every release of ours postdates that.

The fix

  • mcp>=1.28.0,<2, with the cause and the raise-it-together rule recorded at the requirement.
  • CI's wheel job now imports the bridge inside the environment it builds with uv tool install — the only lane that resolves from PyPI rather than uv.lock, and the blind spot that let this ship.
  • tests/test_mcp_dependency_bound.py fails if the declared bound ever admits an SDK without the module the bridge imports.

Verified on the published package: uvx no-human mcp-serve answers initialize and lists task_add + task_status. The MCP Registry entry (io.github.no-human-ai/no_human) is republished at 0.1.4.

Desktop apps were never affected (they bundle the locked SDK). Porting the bridge to the SDK's 2.x API, so the cap can be lifted, is tracked in #16.

Install: uv tool install no-human · pip install no-human · desktop apps below, each with a SHA-256.

no_human 0.1.3

Choose a tag to compare

@eyalgolan eyalgolan released this 20 Aug 19:56

Registry release — the package now carries what the official MCP Registry needs, plus the loop fixes that accumulated since 0.1.2.

MCP

  • server.json + the README ownership marker list no_human's MCP bridge on the official MCP Registry as the PyPI package no-human; a tokenless OIDC workflow publishes it.
  • New console script no-human (same entry point as nh), so registry clients can run uvx no-human mcp-serve.

Loop

  • nh task add --backend claude|codex|local is a real per-task coder switch, validated at intake; reviewer, planner, supervisor and utility stay on Claude (public issue #5).
  • The review gate gives a FAIL with non-critical findings one bounded refute pass before charging the coder.
  • A failed conflict-path enumeration in the wake watcher no longer falls open into a coder round.
  • A server stop checkpoints every running attempt and requeues it; a PR whose tests never ran says so.
  • The wheel-build refusal without the board now names uv tool install no-human (public issue #4).

Install: uv tool install no-human · pip install no-human · desktop apps below. SHA-256 alongside each artifact.

no_human 0.1.2

Choose a tag to compare

@eyalgolan eyalgolan released this 20 Aug 15:14

Security and release-infrastructure release. Same product as 0.1.1, patched runtime, and — unlike 0.1.1, which shipped macOS only — an artifact for every platform, all built from one commit (d1d0adc).

Dependency security. Electron moves to 38.8.6 (the last 38.x), clearing every advisory patched within the current major; js-yaml 4.3.1, fast-uri 3.1.5, undici 6.28.0, postcss 8.5.26, mcp 1.29.0 and cryptography 50.0.0 likewise. 21 of the repository's 40 open Dependabot alerts closed by measurement, not estimate; 19 remain, stated plainly rather than left implicit: 5 are high severity (4 in the bundled Electron 38.8.6 runtime this release ships inside the desktop apps, 1 in extract-zip, which has no patched version in existence), 18 of the 19 are fixed only by the Electron 39 major — a bump deliberately deferred to its own release rather than taken hours before this one. Known, tracked, and a deliberate call.

Release infrastructure. The Windows job gains the same on-demand release lane the Linux job has (workflow_dispatch + windows_release): build, verify against the tree that built it, checksum, bounded-retention artifact. Windows bundles now carry the same BUILD_STAMP provenance (commit=/dirty=/board_sha256=) POSIX builds have had since the stale-DMG incident — an absent stamp fails verification rather than passing quietly.

Downloads

  • macOS (Apple silicon) — no_human-0.1.2.dmg. Signed and notarized; drag to Applications. (no_human-0.1.2-arm64-mac.zip + latest-mac.yml also attach — they are the in-app update-notification feed, not the download.) SHA256SUMS-macos.txt covers both.
  • Windows (x64) — no_human-0.1.2-UNSIGNED.exe (or the .zip). Not code-signed yet: SmartScreen warns; choose More info → Run anyway. SHA256SUMS-windows.txt covers both.
  • Linux (x64) — no_human-0.1.2-linux-amd64.deb (recommended) or the .AppImage. SHA256SUMS-linux.txt covers both.
  • Python wheelno_human-0.1.2-py3-none-any.whl (board embedded as package data; pip install <wheel-url> gives a working nh with the web UI, no Node needed).

Every artifact's SHA-256 ships alongside it. Built by the repository's public CI (Linux/Windows, run 32370112386) and the documented signing pipeline (macOS); each bundle's BUILD_STAMP names commit d1d0adc862c6, dirty=no.

no_human 0.1.1

Choose a tag to compare

@eyalgolan eyalgolan released this 19 Aug 23:24

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.yml that electron-updater requires (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 an nh that finds its board and the Agent
    SDK's bundled claude — no Node, no separate CLI install. A release build
    (workflow_dispatch with wheel_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 PyPI workflow (workflow_dispatch only, 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.json and
    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) and glama.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.md and the nh task add --backend help 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.

no_human 0.1.0

Choose a tag to compare

@eyalgolan eyalgolan released this 16 Aug 09:34

no_human 0.1.0 — first packaged release

no_human takes a software task end to end — plan, code, test, adversarial
review, and a pull request with proof it works. A human only approves.

macOS

  • no_human-0.1.0.dmg — signed and notarized (Gatekeeper: "Notarized
    Developer ID"). Apple silicon. Drag to Applications; the app bundles the
    server and the board, and runs on your own Claude subscription.
  • Verify: shasum -a 256 no_human-0.1.0.dmg and compare with the .sha256
    asset.

Windows

  • no_human-0.1.0-UNSIGNED.exe — installer (x64). Unsigned: SmartScreen will
    warn ("More info" → "Run anyway"); code signing lands in a later release.
    no_human-0.1.0-UNSIGNED.zip is the portable build of the same payload.
  • Verify: certutil -hashfile no_human-0.1.0-UNSIGNED.exe SHA256 and compare
    with SHA256SUMS-windows.txt.

Getting started

See the README's install section and https://getnohuman.com/docs.