Releases: atomdrift-project/isomer
Releases · atomdrift-project/isomer
Release list
v0.5.0
- Normalize Git snapshots and Python sdist/wheel layouts before diffing.
- Extract changed source from archives and show its line-level delta.
- Preserve composite findings and rank evidence across the complete change.
- Recognize prerelease transitions and apply a tight behavioral budget.
- Detect public APIs backed by floating young dependencies.
- Detect auto-loaded source or scripts that download, write, and execute payloads.
- Improve npm entrypoint discovery and local LLM guidance.
- Detect 132/132 corpus attacks with no false positives across 98 clean transitions.
Full Changelog: v0.4.1...v0.5.0
v0.4.1
Version comparison
- Four-part versions are now parsed and compared in full.
- Bump::classify rewritten as a component-wise walk to the deeper of the two versions: the first differing component decides.
Build & CI
- cargo test --locked --lib → cargo test --locked across native, FreeBSD, and OpenBSD jobs; isomer is a binary crate.
- Release matrix split into fast (native, Windows, cross — ~30 min) and slow (emulated/VM platforms — up to 75 min) waves
- New .cargo/config.toml: -lstdc++ for illumos (unrar_sys via cleave compiles C++ and rustc links -nodefaultlibs), -lgcc for 32-bit ARM musl (jemalloc's __ffsdi2 / byte-width CAS intrinsics).
Dependencies
- cleave 2.7.1 → 2.7.2, atomdrift-scan 2.7.0 → 2.7.1, plus filefacts, fletch, stng 1.8.0 → 1.9.0, libredox 0.1.19 → 0.1.20.
v0.4.0
Three new detectors, none rule-dependent
- Same-version binary repacks where the metrics move but the version doesn't.
- Encoded single-line payloads newly wired into a package entrypoint.
- Readable implants grafted in, caught by timestamp outliers rather than obfuscation.
Sharper judgment
- Reads versions from artifact metadata; without one, every release-pressure check was silently off.
- --deps findings now change the verdict instead of just printing.
- Dependency ranges resolve to current, not their floor — pinning to the floor is how you miss event-stream.
Fixes
- isomer ci --deps silently skipped both dependency folding and LLM interpretation.
- --offline didn't actually suppress the LLM.
- An unreadable base file could fabricate the signal that lowers a verdict.
- CI hardening: a caller-supplied --base could forge GitHub workflow outputs.
- Rules now auto-update like scan does.
Output
- Versioned features block in JSON for ML consumers.
- Trait grid ranked by criticality × confidence, capped at 24.
- Terminal row caps no longer truncate the data the verdict is computed from.
v0.3.0
Detection
- Shape signals: a dense capability jump in few files, or a package that deletes its own tree, now escalates alone.
- A patch or same-version repack that gains behavior is raised to High. Disproportion is the signal.
- Source archives read whole — build macros, fixtures, payload carriers stay in the diff.
- Two new shapes named: a build macro growing a joined shell eval, and an unchanged loader over a changed compressed carrier. The xz shape.
- Archive roots normalized, so pkg-1.2.3/ and pkg-1.2.4/ pair as one member.
- Cleanups score as cleanups: disabled handlers, removed traits, falling risk read Notable, not hostile.
False positives, gone
- absent → present identity is not drift. Only stripped identity is.
- Filename-only identity never compared against manifest identity.
- Empty identity objects likewise.
- Absolute ML risk no longer condemns. Only a worsening band moves the verdict.
The model
- Its verdict now raises displayed severity, and the risk bar with it. It never lowers.
- The gate stays deterministic. A hallucination must not fail your build.
- Raised numbers are labeled azoth+llm.
- Prompt rewritten around an evidence order, and taught what remediation looks like.
- --format interpret prints the exact payload and never calls out.
Output
- --explain removed. One view. If isomer speaks, it shows everything.
- Gained capabilities render as a tree: + new class, ↑ grown.
- Removed high-risk behavior gets its own section.
- Hunks name the member, dim the path, wrap instead of truncate.
Distribution
- 20 targets: Linux gnu/musl (x86_64 → riscv64, s390x, ppc64le, loongarch64, arm), macOS, Windows, the BSDs, illumos, Solaris, Haiku, Hurd.
- macOS binaries signed and notarized; a preflight proves the credentials before any build.
- Sigstore provenance attestation, checksums, per-target retry, dry runs.
- Runtime smoke tests on OpenIndiana, Tribblix, GhostBSD, openEuler, BlissOS.
Build
- New release-lto profile — fat LTO, one codegen unit — for shipped binaries. Everyday cargo build --release gets thin LTO.
- cleave and atomdrift-scan rev pins dropped; Cargo.lock holds the commit.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Added
- Rename-aware artifact pairing
- git rename detection in ci
- Scope reporting (source only / source + build output) so a run whose base build failed can't read as a clean full comparison.
- make validate-samples
Removed
- .isomer.toml suppression policy; unnecessary for differential analysis
Changed
- Clean CI runs emit a one-line step summary instead of a full report.