Release Notes
Added
- Added #687 divergent gate productization evidence: history-mining artifacts now
have a validator, hardened provenance/counts, and checked nose-on-nose
maintainer-pilot summaries that keep history mining offline and the PR gate
observe-only unless explicitly enforced.
- Added #686 GitHub Actions divergent-edit rollout examples for observe-only
SARIF reporting and enforcing strict failures, with step-summary counts and
docs-example validation.
- Added #685 divergent-edit gate hardening fixtures for report-only and suppression
edges: base= now honors config-relative ignore-file, malformed ignores fail
before empty-diff short-circuiting, path/language suppressions keep all-members
semantics, and copied/new-copy plus deletion/insertion/rename edge cases are pinned.
- Added the #684 divergent-edit strict-policy taxonomy audit: checked policy
artifacts now record gate.fail_default-based tier/taxonomy confusion counts,
strict false-positive buckets, and strict-positive retention against the
2026-07-06 labelset, while preserving the runtime v2 strict gate unchanged.
- Added query-base wrapper compatibility guardrails:
nose capabilities now
advertises divergent-edit JSON v8, SARIF, gate.fail_default, and structured
ignore support as explicit query capability flags, with tests pinning v8 closed
enum values and JSON/SARIF policy-field parity.
- Added the #678 semantic-pack default-promotion audit: a checked
bench/semantic_pack/default_promotion_audit_678.v1.json artifact and docs
page now record the current builtin lane state, row-level coverage refs,
promotion-candidate decision, rollback requirements, and external
metadata-only policy.
- Added checked divergent-edit v2 final closeout artifacts for the clean
a38ecb8b replay summary and policy reproduction, and extended
eval/divergence_fire/replay.py check-artifacts to validate that final
replay evidence instead of relying only on /tmp scratch summaries.
- Added the #677 Rust
block_on residual closeout: the async scheduling
hard-negative suite now covers nested runtime drive, wrapper-returned
Runtime values, and constructor-assigned runtime fields, with a checked
artifact documenting why exact block_on recovery remains reporting-only.
- Added a divergent-edit history-mining harness for bounded commit-range audits.
scripts/divergent-history-mining.py replays the existing base=<parent>
JSON view in temporary worktrees, emits deterministic
nose.divergent_history.v1 JSON, groups repeated findings across commits, and
documents the offline workflow separately from the PR-time base=<ref> gate.
- Added the divergent-edit v2
new-copy report-only lane for base=<ref>:
added/copied/renamed current-tree clone relationships now appear in human,
JSON, and SARIF output with base_family_id=null, current_only[] current-tree
provenance, and a non-failing gate.
- Implemented the divergent-edit v2 strict gate for
base=<ref>: JSON base output
now emits schema v8 tier/gate fields, SARIF uses tiered rule ids and levels, and
mixed/test-scope evidence is report-only instead of default-failing.
- Documented the divergent-edit v2 gate contract: strict, review, report-only,
and suppressed tiers; stable false-fire taxonomy; query-JSON v8 base
fields; and SARIF rule/severity mapping.
- Added a runtime-triage harness and maintainer runbook for classifying query-runtime
regressions as noise, capability-growth cost, lower/front-end cost, value-graph cost,
or mixed hot paths before optimizing. The runtime-triage and query-regression harnesses
can now select every checked-out corpus repo with --all-repos.
- Added a pre-push Cargo target prune step that removes stale
target/debug/deps/*.rcgu.o files before the fast local CI gate, avoiding
macOS dyld/code-signing stalls when local debug target directories grow very
large.
- Added a self-test for the Cargo target prune script and a shellcheck gate for
versioned hooks plus scripts/*.sh in local and GitHub CI.
Changed
- Tightened the dogfooding duplication ratchet from 29 to 26 reviewed
default-surface families by sharing admission-resolver provenance test
helpers for Rust HashMap::from, Java Map.of, and JavaScript Set/Map
constructor scenarios.
- Clarified the #681 divergent-edit opt-in gate closeout docs:
gate.fail_default
remains the sole default CI authority, the checked strict precision baseline is
0.562, and non-strict tiers remain advisory.
- Polished divergent-edit v2 CI documentation and output copy: SARIF messages now name
strict/review/report-only tiers directly, human base=<ref> output explains report-only
reasons more specifically, and CI examples pin detection modes plus top=0 SARIF uploads.
- Removed the retired
nose-cli legacy prelude and tightened its ratchet into a
zero-budget reintroduction guard.
Fixed
- Fixed divergent-edit diff parsing for source paths containing spaces, so the
report-only new-copy lane preserves the full current-tree path instead of
splitting diff --git headers on whitespace.
Performance
- Completed the 0.18.0 pre-release performance pass without changing product output:
inline nose-ignore suppression now prescreens candidate marker starts with
memchr, the immediate all-120-repo query regression kept 120/120 hashes,
family counts, and byte counts identical while measuring 58,555.18ms -> 57,323.32ms (-2.10%), and the release-candidate v0.17.0 comparison
measured 60,162.97ms -> 56,068.77ms (-6.81%) with the crates
recall-loss gate at 0 false merges and 0 canon-preservation violations. See
the 0.18.0 release evidence.
- Recorded #688 divergent-gate product-output and runtime evidence: all 120
non-base= corpus queries kept identical hashes, byte counts, and family
counts across the #681 productization range, the focused nose slice stayed
stable, and bounded base= replay counts/timings stayed below the runtime
investigation threshold.
- Verified the #677 Rust
block_on residual closeout with no product-output
drift or reproduced runtime degradation: the focused Rust query-regression
slice kept identical hashes and family counts across hyperfine, nushell,
and tokio, while same-binary runtime triage measured 1542.89ms -> 1451.96ms aggregate median (-5.89%).
- Closed the divergent-edit v2 epic with final replay and product-output evidence:
the 560-record replay completed with 0 errors, v2 strict retained 45/45 confirmed
v1 missed-propagation positives while improving strict precision from 0.479 to
0.562, and a 10-repo non-base= query regression kept identical product hashes,
family counts, and byte counts with aggregate median 5957.65ms -> 5930.96ms
(-0.45%, below the same-binary control's +1.18%), so no performance
degradation was confirmed.
- Completed a 20-commit profile-guided runtime pass after the runtime-triage setup.
The final all-120-repo run compared ca48518d with a0bfc252 and measured
66,498.30ms -> 70,626.21ms (+6.21%) with 120/120 identical product hashes
and unchanged family counts. A same-binary all-corpus control measured +7.38%,
and a focused 7-iteration recheck of the largest apparent regressions measured
14,874.05ms -> 14,551.12ms (-2.17%) with identical hashes, so this pass records
targeted hot-path wins without a confirmed product-output drift or reproduced broad
runtime degradation. See the 20-optimization runtime pass.
Install nose-cli 0.18.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/corca-ai/nose/releases/download/v0.18.0/nose-cli-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install corca-ai/tap/nose
Download nose-cli 0.18.0