julie-extract v2.8.1
v2.8.1
This patch release prepares the GLM review remediation on top of v2.8.0.
It is a correctness, contract-honesty, and writer-hardening release; it does
not add a new public fact family.
Correctness Fixes
- Route and HTTP-boundary scanners now keep the static-literal silence rule for
dynamic ASP.NET, Spring, Java HTTP client, and Ruby HTTP client arguments
while preserving static siblings. - Django
re_pathnamed groups normalize tonormalized_route_template. - Vue SFC script scanning masks comments and string literals for route and HTTP
client facts. - React and Vue route-object extraction ignores
pathandindexvalues under
redirectandmeta, including nested descendants. - JavaScript string-literal parsing handles common escapes and rejects malformed
literals that would otherwise produce false routes. - Frontend route precision is tightened for Next/Nuxt file routes, JSX nested
route metadata, Nuxt relative links, and CSS attribute selector commas. - Backend framework edge cases are fixed for Express router mounts, Spring
annotation adjacency and class prefixes, Rails nested/member/collection
routing, Actix direct routes, Govar muxreceivers, and Razor@page
normalized route templates. - SQL, YAML, JSON, TOML, Markdown, CSS, and related data-domain structural facts
have focused fixes for the GLM-reviewed edge cases.
Artifact Writer And JSONL Hardening
- Lower-level structural-fact writes are hardened against duplicate IDs under
the selected dedupe policy. - Successful writes checkpoint and truncate WAL state without losing committed
rows. - JSONL export ordering is deterministic for source regions, structural facts,
and complexity metrics. - Raw structural-fact metadata JSON is validated and compacted before JSONL
emission, so valid stored objects containing whitespace still produce one
valid JSONL record per line while preserving key order. - Writer and schema contract tests cover the new indexes, tier routing, and
writer performance tripwires.
Capability Honesty
fixtures/extraction/capabilities.json now records explicit open_gaps for
known deferred semantics instead of claiming complete coverage or marking real
missing implementation as not_applicable. The documented gaps include SQL
advanced structures, Markdown extended constructs, YAML scalar/tag/multidoc
semantics, JSON schema/reference semantics, TOML multiline strings, Regex
advanced constructs, CSS additional at-rules, HTML semantic/link/media details,
Vue style/slot shorthand, Django non-template regex normalization, and
signal-free Next.js pages-router files.
Contract Changes
- Rust package versions change from
2.8.0to2.8.1. - SQLite schema version remains
3. New indexes are non-breaking query and
export-order helpers. - Artifact integer
extract_contract_versionremains3. - JSONL schema version remains
3. - JSON report schema version remains
3. EXTRACTION_CONTRACT_VERSIONremains at thebackend-http-boundary-v2
marker. This patch fixes and documents shipped semantics without adding a new
top-level extraction family.- Parser dependency versions are unchanged.
Verification
Release workflow:
- https://github.com/anortham/julie-extractors/actions/runs/28715921413
- Trigger: tag push (
v2.8.1) - Result: success
- Published:
2026-07-04T18:48:23Z
Local prep gates run before publish:
cargo fmt --all -- --checkcargo test -p xtaskcargo xtask test defaultcargo xtask test contractcargo test -p julie-extractors route_definitioncargo test -p julie-extract-artifact --test jsonl_contractcargo xtask release preflight --version 2.8.1
Published-asset verification after release:
- Remote tag
v2.8.1points at
bca2b811bcd00b3d3a136dbdbc0e0aae8b7cba8d. - The GitHub release is not a draft and not a prerelease.
- Downloaded asset SHA-256 digests match GitHub release metadata.
- Package checksum files verify the staged
dist/<target>/julie-extract
binaries. - The downloaded Apple Silicon binary reports
julie-extract 2.8.1. - Downloaded-binary dogfood completed with SQLite schema version
3,
extraction contract version3, JSONL schema version3,1424files,
121258symbols, and710965JSONL records.
Published Assets
| Target | Asset | Size | GitHub asset digest |
|---|---|---|---|
| Linux x86_64 | julie-extract-v2.8.1-x86_64-unknown-linux-gnu.tar.gz |
10,792,146 bytes | sha256:b8217e019b3cd4d1f3f930bab0507a2d3d3f313ed773a8110bdf45212bc32e9d |
| macOS Apple Silicon | julie-extract-v2.8.1-aarch64-apple-darwin.tar.gz |
10,555,746 bytes | sha256:d147b62367153b38c08399ddc8d11873b0f21268222a2dc9523428c5e5a78fcb |
| macOS Intel | julie-extract-v2.8.1-x86_64-apple-darwin.tar.gz |
10,504,870 bytes | sha256:431a6b9205dc5c259cea710d60d48e7440276a8fb2434e39dc31458093fd1e09 |
| Windows x86_64 | julie-extract-v2.8.1-x86_64-pc-windows-msvc.zip |
9,779,606 bytes | sha256:e3e1afb80fa168d6437a3fc886a969bf8dcb39c230b9fb5762d6bd22f45953dc |