Skip to content

Attune Harness 1.3.0

Choose a tag to compare

@silversurfer562 silversurfer562 released this 09 Oct 16:24
v1.3.0
0ecf8e6

Attune Harness 1.3.0 release notes

Published on PyPI October 7, 2026. This GitHub Release records the existing
1.3.0 package at signed tag v1.3.0, commit
0ecf8e6058cee9ed6f9b9510e043e3af3cbe1da0. It contains no later changes from main.

1.3.0 lets plan and fix start from a command. Until now, both verbs
needed a file nobody wrote for you: plan --request needed a work request
with a frozen effects manifest, and fix needed a trusted probe. init --for
writes each one, checked by the verb that reads it (O-70). Use an isolated
environment:

pipx install 'attune-harness[all]==1.3.0'

The v1 compatibility contract holds. Envelope keys only grow: init adds
files. Existing defaults and exit codes are unchanged, and
docs/deprecations.json stays empty. One argparse effect is new: init --f,
--fo and --t are now ambiguous abbreviations. Spell --force, --tests
or --task-dir.

What is new

  • init --for fix writes probe.json, the trusted probe fix reads. It
    runs the named tests with pytest. Before writing, init runs the same freeze
    fix runs, as a dry run, so anything fix would refuse is refused first, in
    the same words. It runs nothing. Its next_action is the fix preview.
  • init --for plan writes a work request plan --request accepts as
    written: the goal, the scope, the named tests as acceptance, one task,
    distinct worker and reviewer, and an effects manifest frozen over the
    checkout. It goes beside the task directory, as <task-dir>.work.json,
    outside the checkout the manifest freezes. Writing it accepts nothing: the
    preview and --accept stay separate steps. A refused init removes what it
    wrote.
  • Example participants in examples/starter/participants.json finish both
    journeys with no model call. They are example code, not a profile: lead
    applies one declared replacement and reviewer approves without judging.
    They need python on PATH.
  • The Claude Code plugin comes from a release tag. The 1.3.0 plugin uses
    v1.3.0 and its verified release commit, rather than unreleased main.
  • build says when its participants cannot build. Every profile init
    writes is for review, so build refuses a plan made with one. The refusal
    now names those participants, comes before any dispatch flag is asked for,
    and says to plan again with participants that can propose files;
    init --for plan says so up front (O-77). The starter journeys run from a
    checkout of this repository with a virtual environment activated, because
    examples/ is not in the package.
  • Symlink refusals name the path to use. On macOS, /tmp and /var are
    symlinks, so a task directory under them is refused. The refusal now says
    which link and what to use instead (O-76).

Additional changes included in 1.3.0

  • Shared source review and roundtable: bounded preparation, explicit dispatch,
    inspection and abandonment over immutable selected source bytes. Retained
    evidence distinguishes requested and reported model identities and preserves
    unresolved outcomes. These tools do not authorize their own model calls.
  • Consultation evidence and Antigravity: inspect frozen cited lines and retain
    checkpoint-bound citation judgments. Explicit Antigravity seats record model,
    effort and correlated process evidence; Codex seats can specify reasoning
    effort. This does not establish tool isolation or native plan/build parity.
  • Browser intake and intent approval: register existing feature-work drafts,
    save partial answers, inspect the current preview and explicitly accept intent.
    Existing CLI/agent forms remain supported. The loopback server retains session,
    origin, checkpoint and single-use decision checks. Browser build grants,
    dispatch, resume and broader GUI navigation are deferred to 1.4.0; neither
    launch flags nor direct HTTP execution routes enable them. M2 completion is
    not required for this bounded forms release. Confirmed saves and intent
    acceptance show inline success; unsuccessful submissions remain explicitly
    unconfirmed, with copyable answers and disabled controls. Accepted cards show
    intent acceptance. Cards lead with “Draft saved — ready for review” or
    “Intent accepted”, with the work goal beneath. Partial drafts say more answers
    are needed. The “Saved work” list includes both states, and confirmed retained
    forms update their headings while staying read-only.
    Browser storage refusals no longer abort startup or disable Refresh. The
    private launcher link works for the current page; if session storage is
    unavailable, reopen that complete link after reloading the page.
    Saved answers name the next step in Saved work. Editable cards show a bold Tip
    and a Continue form or Review your answers button, selected from the saved owner
    state. Accepted cards explain that intake and review are complete; execution
    stays separate.
    Reopened intake forms show Saved answers above the remaining questions.
    The full owner record stays below the form under Technical details (optional).
    Saved answers remain evidence, never prefilled into a newly issued field;
    the explicit approval boundary remains unchanged.
    Approval previews show questions with their saved answers in plain language.
    Full owner markdown, action definitions, checkpoint metadata and file-effects
    JSON stay in a collapsed Technical details disclosure. Owner readiness
    blockers remain visible outside it, with no unavailable action enabled.
    Open in browser is available in editable and read-only forms views. Panels
    at most 600 pixels wide recommend it; opening requires a click. The launcher
    requests the same private workspace in the system browser, which decides
    whether to use a tab or window. Copy unsaved answers before switching views;
    they remain read-only in the original view and are never transferred or saved
    automatically. This does not resize host panels or choose a monitor.
  • Reliability: malformed native-memory content entries now retain structured
    refusal evidence. Starter failures clean up their own partial writes, forced
    probe backups count toward the entry bound, and Claude refusal classification
    distinguishes completed refusals from uncertain supervision failures.
    Native-root recall, refresh and document resolve retain generated status,
    staleness and provenance, including recorded WRONG verdicts; tombstones remain
    inspectable. Source and sidecar changes invalidate existing handles. Nonfinite
    raw-memory timestamps expire instead of bypassing the age check.
  • Packaging and diagnostics: Codex onboarding no longer assumes unbundled
    helper scripts; qualification retains timing and slow-stack evidence. Windows
    supplemental coverage has temporary measurement headroom, not broader platform
    qualification. The Windows-traps guide and compact Shepherd reference are added.
    Installed qualification rejects editable or copied-source imports and optimized
    Python before effects, and its receipt records the final aggregate exit as well
    as the pytest exit.

See model consultation, the GUI specification,
Windows guidance and Shepherd.

The two journeys

The CLI guide's plan and fix sections open with blocks that CI runs as
printed on the installed wheel. The fix block runs on POSIX only, as fix
is qualified.

attune-harness init --for fix --project /path/to/repo --scope calc.py \
  --interpreter /path/to/venv/bin/python --tests tests/test_calc.py

See Plan and build and
Scoped repair.

Known limits

  • --test-root . is still refused (O-76).
  • Windows native-memory, fix and test limits remain as documented; isolated
    backend checks do not broaden the supported command surface.
  • Native-memory SDK/live model quality is not established by offline tests.
  • Fresh-session memory observations (S3), a qualifying non-programmer walkthrough
    (S6), and installed migration observations (S9) remain open.
  • The Claude marketplace explicitly lists Harness, cross-review and smart-test.
    The bundled roundtable skill is included in Codex packaging but is not selected
    by that marketplace entry. A tag-pointer update alone does not add it.
  • GUI browser, embedded-host, accessibility and real-user observations remain
    open acceptance gaps. Published library qualification does not close those
    observations; broader GUI remains deferred to 1.4.0.
    Retained research/opportunity prototypes are not installed-product qualification.

Evidence

The released source is commit 0ecf8e6058cee9ed6f9b9510e043e3af3cbe1da0 (#228),
signed tag v1.3.0. The successful Library qualification
and PyPI publishing run
both target that exact commit. The attached files are the original publishing
run's distributions, independently matched to PyPI by size and SHA-256:

7b6f40a41f5017aa0f96c3f83aee21f7eef2af8d38c951d76c363c3512fdd18a  attune_harness-1.3.0-py3-none-any.whl
c7c564e07b011c6eaad2617c8368819f8241c278e61d3d18c887951edc2a5e36  attune_harness-1.3.0.tar.gz

Merged intake/approval implementation and recovery changes support the bounded
browser forms slice. Broader GUI execution remains deferred and unreachable from
the 1.3.0 release server. Software qualification does not establish live model
quality or close the observation gaps listed above. The
project plan retains the 1.2.0
baseline and explicitly open observation gaps.