Skip to content

Releases: MilindGaharwar/fettle

docs(release): authored v1.13.0 release notes

Choose a tag to compare

@github-actions github-actions released this 03 Sep 06:17

Fettle v1.13.0: Evidence Integrity Hardening

Fettle v1.13.0 closes every finding from an adversarial audit of its own
evidence chain. The attacks are pinned by tests so they stay fixed: forged or
stale evidence can no longer turn a gate green, live agent runners lose their
blanket permission bypasses, and policy resolution now governs every consumer.

What Changed

  • The assurance record's behavior dimension requires a passing verify stamp
    bound to the current session and HEAD revision; a red run is FAIL and a
    hand-written or stale stamp stays UNKNOWN. A red stamp also overrides a
    completed mutation report.
  • The verify and CI Stop gates fail closed when a green stamp omits its
    canonical-evidence reference; deleting the key from the agent-writable stamp
    no longer skips the canonical validation layer.
  • Assurance dimensions consume real, verifiable evidence: the CI dimension
    reads the stamp fettle ci wait actually writes and requires a green
    verdict bound to HEAD; authorization verifies capsule digest integrity;
    UAT requires the canonical sidecar to bind the exact report content,
    session, and completion.
  • Live agent runners replace --dangerously-skip-permissions and --yolo
    with deny-by-default tool grants; a test invariant pins that no runner argv
    carries a permission-bypass flag.
  • Profile command overrides and assurance release policies resolve through
    the layered policy resolver, so a repository-level override can no longer
    silently defeat org policy — and org packs can now supply release policies.
  • UAT sessions, evaluator passes, and eval scenarios launch child agents
    under delegation capsules visible to fettle report --lineage; a
    provisioning failure downgrades to a traced ungoverned launch, never a
    silent one.
  • The quality gate surfaces subprocess timeout, crash, and unparseable output
    as tool_error instead of a silent allow, restoring failure visibility and
    escalation.
  • The host capability matrix declares per-event enforcement (block vs
    notify); fettle doctor discloses hosts where enforce-mode gates can only
    notify, and bridge fail-open toasts say so explicitly.
  • Supply chain: the TLA+ verification workflow checksum-verifies
    tla2tools.jar and runs with least-privilege permissions; workflows and the
    published action pin actions by commit SHA and install analyzers at the
    pinned tool versions; workflow inputs reach shells only via environment
    indirection.
  • LOW-severity sweep: the FETTLE_GATE_MODE=off kill switch is screened in
    every Bash command segment; mutation subprocesses no longer inherit
    credential-bearing environment variables; per-check budget overruns are
    traced; the agent-writable profile cache cannot override resolver-governed
    commands; published bridge directories are owner-only.
  • Documentation now leads with pipx install "finefettle[all]" as the single
    installer covering analyzers, mutation, evaluation, commit hooks, and
    browser automation on top of the dependency-free core.

Deprecations and Accepted Risks

  • The scriptsfettle/ compatibility symlink will be removed in the next
    minor release.
  • Recorded accepted risks: runner prompts remain visible in process argv, and
    delegation environment export briefly mutates process environment on
    single-threaded launch paths.

Upgrade Notes

pipx upgrade finefettle
fettle doctor

Live UAT and eval runners now execute with scoped tool grants instead of
permission bypasses. If an agent run needs a tool outside the default grant,
the denial is visible in the transcript; no configuration migration is
required.

v1.12.3

Choose a tag to compare

@github-actions github-actions released this 28 Aug 05:00
fdd0cb5

Fettle v1.12.3: Dependency-Free Installed Demo

Fettle v1.12.3 makes the product's control loop directly observable from the
base package. The bundled demonstration runs offline in a temporary directory
with Git and without third-party Python dependencies.

What Changed

  • Added fettle demo, a deterministic four-stage walkthrough that introduces a
    broad exception handler, detects it, repairs it, and independently verifies
    the repaired behavior with four bundled tests.
  • Added an actionable prerequisite error with macOS, Debian/Ubuntu, and Windows
    installation commands when Git is unavailable.
  • Kept the base finefettle installation dependency-free. External quality,
    mutation, evaluation, and UAT capabilities remain available through optional
    extras, including finefettle[all].
  • Added assurance sufficiency policies and standalone capability, multi-agent,
    and guided-workflow references.
  • Corrected the release smoke test to distinguish the package from standard
    virtual-environment bootstrap tooling.
  • Added a post-publication canary in a clean python:3.11-slim container that
    installs Git, reports the installed Python package count, and runs the public
    PyPI wheel's complete demo.

The v1.12.2 tag is retained as an unpublished failed release; no v1.12.2
artifacts reached PyPI.

Upgrade Notes

pipx upgrade finefettle
fettle demo

No configuration migration is required.

v1.12.1

Choose a tag to compare

@github-actions github-actions released this 27 Aug 12:16
89c61be

Fettle v1.12.1: Apache-2.0 License

Fettle v1.12.1 adopts the Apache License 2.0 for this and later releases.
Releases through v1.12.0 remain available under the MIT License under which
they were published.

What Changed

  • Replaced the repository and package license with Apache-2.0.
  • Added NOTICE, TRADEMARK.md, and CITATION.cff.
  • Added Developer Certificate of Origin sign-off guidance for contributions.
  • Synchronized Python, Claude plugin, and VS Code package metadata.
  • Included LICENSE and NOTICE in both wheel and source distributions.

Upgrade Notes

This release changes licensing and project metadata only. It does not change
Fettle's runtime behavior or configuration contract.

v1.12.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 12:16
7c3c931

Fettle v1.12.0: Enforced Mutation Gate, Governance Ledger, Graph Intelligence

Fettle's mutation gate is no longer advisory on Fettle's own repository:
changed-scope survivors now block merges, backed by more than ten qualifying
retained runs and a reviewer-confirmed actionability precedent. This release
also lands the change-integrity hypergraph through its advisory CLI, a
tamper-evident governance ledger, artifact-bound acceptance verdicts, and
frozen cross-view consistency contracts.

Start With The New Capabilities

pipx install "finefettle[all]"
cd your-project
fettle pipeline              # composed gate/check pipeline with provenance
fettle graph status          # ephemeral hypergraph digest + provider completeness
fettle graph impact src/     # advisory blast-radius closure
fettle ledger status         # governance evidence ledger state

What Changed

Mutation Quality — Enforcement Live (on Fettle's own repo)

  • Required mutation evidence PR check with bounded shard fan-out, automatic
    replay of timed-out or lost shards, and fail-closed aggregation that names
    the offending shard.
  • Changed-scope survivor enforcement ratified and enabled after >=10
    qualifying retained runs; first enforced-week triage checklist and
    demotion/re-entry criteria documented (docs/mutation-ratchet-decision.md).

Change Integrity (P38, P45, P46, P47, P48)

  • Canonical specification traceability with drift evidence: stable-ID marker
    index, executed-result binding (declaration is linked; only a pass
    verifies), governed-change advisories.
  • Graph-independent source snapshots: deterministic committed manifests,
    content-hashed working manifests, verified materialization, read-set
    revalidation.
  • Deterministic ephemeral hypergraph with five native providers and atomic
    snapshot-bound publication.
  • Advisory graph CLI: fettle graph status|impact|shadow, including shadow
    parity against the legacy semantic layer (zero unexplained narrower
    results on maintained fixtures).

Governance Evidence (P41)

  • Commit-linked, tamper-evident ledger (fettle ledger status|verify|anchor):
    hash chain with precise break localization, commit/CI-artifact anchoring
    with explicit known/unknown coverage, rotation checkpoints, default secret
    redaction.

Authorship Separation (P52) — Graduated

  • Adversarial hardening (symlink aliases, traversal, absolute paths),
    topology advisor role-separation recommendations, evidenced two-role
    sessions.

User Acceptance (P72, P73, P74)

  • Artifact-bound reconciliation: sessions retain per-scenario observation
    bundles; CONFIRMED without artifacts degrades to INDETERMINATE; transcript
    drift is detected.
  • Exploration charters ([uat].explore) with Saboteur/Money/Supermodel tours;
    CANDIDATE findings recorded verbatim for human review.
  • Web surface driving (playwright) with full-page screenshot +
    accessibility-tree capture.

State Consistency (P53/SC1)

  • Frozen canonical contract schema with unknown-key rejection, comparator
    and consistency-model validation, TEMPLATE_V1, and lint.

Authorship Gate Rule

  • New enforced rule test-flow-root-cwd (CWE-362): mutation-flow calls in
    test functions must not use cwd-relative roots.

Packaging

  • Extras are real install targets; pip install "finefettle[all]" composes
    every capability over the batteries-included core wheel.
  • Release checklist codified (docs/RELEASE_CHECKLIST.md), including the
    squash-merge head-SHA rule.

Upgrade Notes

  • fettle init re-run recommended after upgrading (bridge versioning).
  • Mutation gate enforcement is repository-local policy; downstream repos
    graduate independently (see docs/mutation-ratchet-decision.md).
  • Filename-substring requirement inference in fettle trace_requirements
    is deprecated — declare # traces: <spec-id>/<scenario-id> markers.

v1.11.1: Python 3.11 Evidence Compatibility

Choose a tag to compare

@MilindGaharwar MilindGaharwar released this 15 Aug 15:56

Fixed

  • Restored canonical evidence parsing on Python 3.11 by validating serialized
    result states through the enum constructor instead of version-dependent enum
    containment behavior.

Verification

  • CI passed on Python 3.11, 3.12, 3.13, and 3.14, plus macOS, coverage, lint,
    completion evidence, and the repository self-scan.
  • The release wheel and source distribution passed package smoke tests and
    source reconstruction checks.
  • PyPI Trusted Publishing, build provenance, and CycloneDX SBOM generation
    completed successfully.

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 15:04

Fettle v1.11.0: Wheel-Native Agent Governance

Fettle's core promise now starts from the package users actually install. The
v1.11.0 wheel can register Claude Code, Codex CLI, Gemini CLI, and OpenCode
without requiring a Fettle source checkout.

Start With The Complete Loop

pipx install finefettle
pipx inject finefettle ruff
cd your-project
fettle init --dry-run
fettle init
fettle doctor

Initialization publishes a versioned bridge under the platform user-data
directory, binds it to the exact Fettle version and Python executable, and
preserves unrelated host configuration. --dry-run previews every mutation.

What Changed

  • Wheel-native transports for Claude Code, Codex CLI, Gemini CLI, and OpenCode.
  • SHA-256 manifest validation for every bridge-owned file.
  • Atomic bridge publication, idempotent reinitialization, tamper detection, and
    explicit recovery through fettle doctor.
  • Bundled Claude SubagentStart transport and all 17 guided workflows.
  • A contract-tested two-minute assurance example with accessible visual and
    text proof.
  • Structured bug and feature intake plus three bounded starter issues for new
    contributors.

Trust Boundaries

  • Hooks remain advisory-first session feedback; CI remains independently
    authoritative.
  • Fettle does not overwrite malformed or foreign host configuration.
  • Ruff, Semgrep, and other analyzers remain explicit and user-controlled.
  • Codex still requires its documented [features] hooks = true setting.
  • The bridge is not an operating-system sandbox.

Verification

  • Bridge/init/doctor/workflow/proof focused suite: 81 tests passed.
  • Wheel and source distribution installed in separate clean environments.
  • Dry-run immutability, idempotency, paths with spaces, tamper recovery, and a
    normalized out-of-checkout hook event were verified.
  • Release artifacts include PyPI provenance, GitHub build provenance, and a
    CycloneDX SBOM.

Full Changelog

v1.10.0...v1.11.0

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 07:07

Fettle v1.10.0: Reproducible Mutation Evidence

Fettle v1.10.0 turns full-repository Python mutation testing from an expensive
experiment into reproducible assurance evidence.

What Changed

  • Two independent full calibrations reproduced all 28,723 canonical outcomes:
    14,107 killed, 14,611 survived, five native timeouts, zero suspicious, and
    zero untested mutants.
  • Fingerprint-keyed checkpoints can resume compatible full calibrations without
    rerunning terminal mutants.
  • Baseline comparison now separates surviving-mutant changes from timeout,
    suspicious, and skipped evidence debt.
  • fettle mutation status correctly evaluates retained reports against a
    committed baseline.
  • README and active documentation now route users by adoption outcome and state
    current product boundaries explicitly.

Adoption And Upgrade

Install or upgrade the zero-runtime-dependency CLI:

pipx upgrade finefettle
# or: pipx install finefettle

Ruff, Semgrep, and mutation tooling remain explicit, user-controlled tools. The
v1.10.0 wheel supports CLI workflows, rules, and templates; live agent
transports still require the documented Git checkout path in this release.

Evidence

  • The accepted repository mutation floor is 49.1 percent for this pinned
    calibration, not a universal quality target.
  • Release artifacts include the wheel, source distribution, CycloneDX SBOM,
    and GitHub build-provenance attestations.
  • Changed-scope mutation enforcement remains advisory until representative
    runtime and reviewer-actionability criteria pass.

Full Changelog

v1.9.0...v1.10.0

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 08:05

Full Changelog: v1.8.0...v1.9.0

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 06 Aug 09:16

Full Changelog: v1.7.0...v1.8.0

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 06:25

Full Changelog: v1.6.0...v1.7.0