Skip to content

v1.0.0 — automatic Evidence observation

Choose a tag to compare

@grapefruit0205 grapefruit0205 released this 12 Sep 08:51
· 26 commits to main since this release
Immutable release. Only release title and notes can be modified.
b621c00

Install on Claude Code

claude plugin marketplace add grapefruit0205/click
claude plugin install click@click

Update on Codex CLI

codex plugin marketplace upgrade click
codex plugin add click@click

Restart and start a new task after updating.

What v1.0.0 is

v1.0.0 publishes the automatic Evidence observation work that main carried
as the v0.97 candidate since v0.96.1. Both marketplaces pin v1.0.0.

Changes

  • Automatic input observation. Supported Evidence checks prepare local
    input capture automatically. Complete signed inputs establish per-check
    reuse without owner-written dependency JSON; owner declarations and shard
    partition rules remain intact. Observations whose only gaps are a followed
    child, concurrent threads or dynamic introspection are stored as
    conditional and back explicitly disclosed conditional reuse.
  • Conditional JS reuse. Default Node/Vitest/Jest checks can issue
    separately attested conditional receipts after two requested executions
    learn and compare inputs, including ignored files. Completeness is
    disclosed as unproven in host output, dashboard and reports. Runtime-only
    reads that vary between identical executions (glibc's overcommit probe, the
    runtime cgroup probes, V8 re-opening its own image) no longer refuse a
    receipt; Node Workers are detected explicitly and denied one.
  • Recovery and safety. Losing capture after an observed baseline never
    downgrades to Git-only reuse; completion rechecks reused inputs after sibling
    execution and invalidates only the affected evidence; SIGTERM retains output
    and stops the admitted target; native preparation publishes caches
    atomically.
  • Automatic sharding in Evidence mode. A broad unittest/pytest/Vitest/Jest
    parent check without a committed plan is sharded from Click's own proposal,
    kept in Click's state per repository, validated like a committed plan on
    every request, and regenerated when the inventory changes. Nothing is
    written into the repository.
  • Concurrent shard execution. Shard children run in forked workers on
    Linux (CLICK_VERIFICATION_WORKERS, default core count up to 8) with
    results consumed in submission order, so output, receipts and fail-fast
    behaviour match a sequential run.
  • Receipts outlive the host session. Passing receipts are archived per
    repository root; a new session starts from them as successor candidates and
    the existing requalification decides what is still valid.
  • Fewer spurious reruns. Observed-input identity is content-based
    (equal-content saves, checkouts and touch keep receipts); the receipt
    environment fingerprint is an allowlist with a normalized search path;
    project __pycache__ is derived, not observed.
  • Faster fixed cost. Runtime identity checks and git resolution are
    memoized per process, each observed input is read once per reuse decision,
    and the host-runtime input index is built once per runner (six-shard
    fixture: runner 9.35 s → 6.16 s).
  • Host output. click-gate status prints three short lines (JSON via
    --json); checks are named by the caller's evidence id; reused checks
    report the output the host did not read again as a disclosed estimate; the
    Evidence prompt context is a directive to run checks through
    click-gate verify.
  • Node Inspector controller exits on its own after reporting instead of
    being terminated after a five-second wait on every observed JS execution.

The stabilization note about the historical opposite-child decision remains
open; see docs/architecture/automatic-observation.md. Full details in
RELEASE_NOTES.md.