Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Changelog

JevCompass publishes a focused changelog per release. Evidence boundaries and pilot
limits live in [PILOT.md](PILOT.md); release-task receipts live in [TASKS.md](TASKS.md).
Earlier releases predate this file and are summarized in
[RELEASE_NOTES.md](RELEASE_NOTES.md) and the
[GitHub releases](https://github.com/acidkill/JevCompass/releases) page.

## 0.1.23 (2026-10-01)

This release publishes the three explicit, nonblocking coding-decision commands that
have been maturing on `main` since v0.1.22, together with the fifth bundled skill and
the typed-decision cache. Nothing in this release gates commands, runs tools, changes
permissions, or waives required validation, and no speed, quality, or cost benefit is
claimed: the paired-trial evidence to date remains mixed or censored
(see [PILOT.md](PILOT.md), VCR308/VCR312).

### Added — user-facing

- **Pretask strategy choice:** `jevcompass strategy choose --kind coding --signal …`
returns up to two reviewed strategies from allowlisted signals only; it accepts no
prompt, path, source, or log text. Verified local contract evidence
(`--contract-evidence consistent|conflicting|absent|partial|unknown`) and explicitly
resolved strategies (`--resolved-strategy`) route locally without a remote call.
Dependency-change inspection advice includes a short local migration checklist.
- **Opt-in strategy hook:** `jevcompass install --strategy-advice` attaches conservative
pretask guidance to `UserPromptSubmit`; `--disable-strategy-advice` removes it.
Ordinary installs are unchanged and the hook has no evaluated coding benefit.
- **Post-change test order:** `jevcompass tests discover` finds Python focused checks
from staged, unstaged, and untracked changes; `jevcompass tests rank` orders explicit
or discovered candidates. It prints an order and never executes tests; the supplied
required gate is returned unchanged. Optional verified metadata covers change
signals, per-candidate coverage and runtime buckets, and coverage targets. Bounded
`decision_reason` values distinguish local resolution, remote choice, and fallbacks.
- **Failure triage:** `jevcompass triage --exit-code … --kind … --hypothesis …` ranks a
first diagnostic step for ambiguous failures using enums only. Verified observation
facts (`--import-observation`, `--assertion-observation`, `--timeout-observation`)
can resolve or constrain the choice locally and skip the remote call. Opt-in
`--rank-hypotheses` adds a bounded pairwise causal ordering. Output includes a fixed
`decision_reason` and per-step `selection_source` provenance.
- **Caller-verified diagnostic costs:** `--diagnostic-cost HYPOTHESIS=low|medium|high|unknown`
passes fixed relative-effort tokens for supplied hypotheses only. Costs may guide
next-check ordering; they are never treated as causal-likelihood evidence and never
waive required checks.
- **Typed-decision cache (opt-in):** `JEVCOMPASS_TYPED_DECISION_CACHE=1` reuses
validated strategy, test-order, and triage decisions for up to 24 hours with explicit
`cache_hit`/provenance labels; disabled by default.
- **Fifth bundled skill:** the opt-in installer now ships
`jevcompass-coding-workflow` alongside `jevcompass-focused-tests`,
`jevcompass-regression-review`, `jevcompass-plan-implementation`, and
`jevcompass-plan-cutover`. Skills remain explicit opt-in and never install silently.
- The `Changelog` project URL now points to this file.

### Added — repository trial tooling (not in the wheel)

- Paired-trial runners, supervisor triage bridges, case profiles, and immutable
fixtures for pretask, test-order, and triage comparisons, including equal-arm
mandatory-command exposure, safe shell-wrapper normalization, profile diagnostic
costs wired end to end through the bridge, and observation flags ordered before
`--rank-hypotheses` so intercepted commands stay bridge-counted.

### Fixed

- Triage separates causal hypotheses from diagnostic actions in pilot contracts.
- Coding intent is preserved across mandatory validation commands.
- Validation-timing status labels align with measured evidence.
- Safe simple shell wrappers are normalized without granting compound-command gate
credit.

### Verification

- Full offline suite: 858 Python tests pass on Linux at this revision; the hosted CI
job runs the same suite on Python 3.11 for the release pull request and again inside
the publish workflow. Distribution contents are checked by
`tools/check_distribution.py` in the publish workflow.
- Registry publication receipts (Trusted Publishing run, artifact digests, fresh
install check) are recorded in [TASKS.md](TASKS.md), [PILOT.md](PILOT.md),
[README.md](README.md), and [ROADMAP.md](ROADMAP.md) after publication.
- Unchanged boundaries: advice stays nonblocking; remote ranking sees only allowlisted
coarse metadata; original failing exits and required validation are preserved;
macOS runtime and fresh Desktop prompt delivery remain unverified; no repeatable
speed or quality benefit is established.
9 changes: 9 additions & 0 deletions PILOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -1856,3 +1856,12 @@ The bundled English coding workflow explains optional caller-verified relative c
Future paired trials may declare caller-verified relative diagnostic costs in a case profile for supplied hypothesis IDs only. Both arms receive the same cost disclosure; the treatment arm is told costs may guide next-check ordering only, are never causal-likelihood evidence, and never waive required checks. Costs reach the remote decision only as fixed low/medium/high/unknown enum tokens through the validated bridge spec, the exact triage command, the intercepted shim request, and the production triage call, keeping transport bridge-counted. Cost-bearing requests are rejected by the bridge and shim unless they match the supervisor-validated profile. Profiles without costs keep identical prompts, commands, requests, and decision state. The supervisor triage command now orders observation flags before `--rank-hypotheses` to match the bridge command and shim, closing a silent-fallback path for exact rank-plus-observation requests in future trials; no historical trial is rescored or rerun.

This is prospective trial instrumentation; no pair was run. Ten new wiring tests plus updated doubles pass, including parity and interception for rank-plus-observation commands, and the full 858-test suite passes locally with `git diff --check` clean. Hosted CI remains required before merge. No efficacy, delivery, or release claim is made.


## VCR409 — Ledger numbering audit: no missing records

A full audit accounted for every VCR identifier used by the acceptance and task ledgers. Twenty-seven identifiers — VCR278, VCR282, VCR300, VCR301, VCR306, VCR307, VCR309, VCR313, VCR316, VCR327, VCR328, VCR337, VCR339, VCR340, VCR357, VCR358, VCR361, VCR363, VCR364, VCR368, VCR369, VCR378, VCR385, VCR386, VCR388, VCR390 and VCR406 — appear in neither ledger, in no commit subject across all refs, and in no other tracked file; they are unused identifiers, not lost or withheld pilot records. VCR283 is recorded here only; the workflow-integration gap it announced was later closed by the phase-aware skill and verified-content refresh it described. A companion documentation pass restated the current capability set in README, ROADMAP, RELEASE_NOTES and a new CHANGELOG.md while preserving every unverified-benefit caveat. No frozen result, gate or score changed, and overall acceptance remains not established.

## VCR410 — v0.1.23 release candidate

Version 0.1.23 is a packaging release, not an acceptance result. It publishes the explicit strategy, test-order and triage commands, diagnostic-cost metadata, the typed-decision cache and five opt-in skills; per-change details and boundaries are in CHANGELOG.md. Pre-publication evidence at the release revision: 858 offline tests pass on Linux, `git diff --check` is clean, the exact-tree wheel and sdist pass `tools/check_distribution.py`, and the registry was rechecked (latest published 0.1.22; 0.1.23 unused). Hosted CI and the tag-gated publish workflow remain the merge and release gates. This release claims no speed, quality, cost, host-delivery or platform benefit; the frozen cohorts remain censored or mixed and fresh Desktop delivery stays unverified.
Loading