Releases: Jura-Labs/jura-trace
Release list
Jura Trace v1.0.0
Jura Trace v1.0.0
📥 The canonical download surface is juralabs.org/download — same installers, plus the getting-started guide, FAQ and a practice pack of sample images. This Releases page is a stable mirror for direct binary access.
First-time pilot tester? Read the Getting Started guide — install + your first Content Credentials verification in 10 minutes.
Jura Trace examines images, videos and documents and tells you what it finds — honestly, and without certainty where none exists. Twelve forensic detectors plus full C2PA Content Credentials verification, running entirely on your device. No cloud, no accounts, no telemetry.
Download
| If you have… | Download | Signed by |
|---|---|---|
| Mac (Apple Silicon — M1/M2/M3/M4) | JuraTrace-1.0.0-macOS-AppleSilicon.dmg | Apple Developer ID (notarised) |
| Windows (64-bit) — recommended | JuraTrace-1.0.0-Windows-x64.msi | Azure Trusted Signing |
| Windows (64-bit) — NSIS installer | JuraTrace-1.0.0-Windows-x64-setup.exe | Azure Trusted Signing |
| Linux (x86_64) — AppImage | JuraTrace-1.0.0-Linux-x86_64.AppImage | Self-signed (AGPL source build) |
| Linux (x86_64) — DEB package | JuraTrace-1.0.0-Linux-x86_64.deb | Self-signed (AGPL source build) — install with sudo apt install ./<file> |
Verify your download: grab SHA256SUMS.txt and run shasum -a 256 -c SHA256SUMS.txt (macOS / Linux) or certutil -hashfile <filename> SHA256 (Windows).
Full install + first-test walkthrough: GETTING_STARTED.md.
Technical changelog
8 June 2026 — rc.30 cut: pre-launch documentation hardening, copyright sweep, build-script verification gate, Tauri updater URL fix
Six commits across three calendar days (6–8 June) preparing rc.30 for the v1.0 launch on Monday 22 June 2026. Closes the post-rc.29 punch list: build-script architecture bug that caused rc.29's first notarisation to be rejected, Tauri updater URL typo that broke the auto-updater fallback, copyright-sensitive training-data attribution in user-facing documentation, the v10 retrain decision, and 31 of 46 findings from the 8 June documentation deep review.
Build script Phase 0.5 + Phase 6.5 — eliminates the rc.29 notarisation failure (7 June, commit 8aac1d8)
Diagnosed root cause of rc.29's first notarisation rejection (Apple notarytool reported 600+ nested .so/.dylib files plus the PyInstaller bootloader jura-sidecar as "binary is not signed with a valid Developer ID certificate"). The build script's Phase 5a per-file-signed every Mach-O inside .app/Contents/Resources/sidecar-bundle/ correctly. But Phase 6 (cargo tauri bundle --bundles dmg,updater) re-copied from src-tauri/sidecar-bundle/ into the .app, overwriting Phase 5a's signed files with the unsigned source. The .app's top-level re-seal then baked hashes of unsigned nested files into the new signature. The DMG passed codesign --verify but failed Apple notarisation. rc.29 was rescued by a 30-minute manual recovery: extract .app from rejected DMG, per-file sign 611 binaries, rebuild DMG with hdiutil, re-notarise.
Two new phases in scripts/build-local-mac.sh:
- Phase 0.5 — sign the source at
src-tauri/sidecar-bundle/BEFORE anycargo tauri bundleinvocation. Both Phase 1 and Phase 6 then copy already-signed files, preserving signatures in the final DMG. Content-based Mach-O detection (file -b | grep Mach-O), not extension-based, so the PyInstaller bootloader is caught naturally without a hard-coded one-off sign line. Deepest-first ordering for correct sealing semantics. Surfaces codesign failures visibly (no stderr redirect, unlike the CI workflow bug we are fixing in parallel). - Phase 6.5 — post-bundle verification gate. Walks every Mach-O in the final
.app'sResources/sidecar-bundle/and asserts every signature bearsTeamIdentifier=Y82C4P9L7F. Build fails fast at this step if any nested binary is unsigned or mis-signed, instead of silently producing a DMG that wastes 25 minutes at notarisation.
Phase 5a kept as belt-and-braces (now functionally redundant since the source is signed pre-bundle, but cheap defensive insurance against future Tauri bundler behaviour changes). rc.30 and v1.0 should notarise on first attempt without the 30-minute manual recovery required for rc.29.
Tauri updater fallback URL + release-notes licence typo (6 June, commits db84af3, 9d2ad8d)
Two real shipping bugs caught during the post-rc.29 audit:
src-tauri/tauri.conf.json:40— the updater endpoint fallback URL washttps://github.com/juralabs/jura-trace/releases/latest/download/latest.json(lowercase org). The real GitHub org isJura-Labs/jura-trace(capital J, hyphen). The lowercase URL 404s. Auto-updater fallback was non-functional in every build through rc.29. Fixed tohttps://github.com/Jura-Labs/jura-trace/releases/latest/download/latest.json..github/workflows/release.yml:123— the release-notes template footer still quotedPolyForm Noncommercial 1.0.0as the licence. The project switched to AGPL-3.0-or-later on 2026-05-06. Every auto-generated release-notes default body (rc.27, rc.28, rc.29) carried the wrong licence. Replaced withAGPL-3.0-or-laterplus a link toCOMMERCIAL.mdfor the dual-licence path. Same typo fixed in the truncation-footer CHANGELOG link (line 132) and two cosmetic comments (lines 23, 141).
Copyright-sensitive training-data attribution removed from public documentation (7-8 June, commits 195064a, df74850, b68b1e3)
Public-facing documentation named specific external corpora and AI-generator brands as authentic and synthetic training sources. Public attribution of these references carries copyright-exposure risk independent of how the underlying training data is actually licensed or sourced.
This sweep removes the public attribution. The training data on disk is NOT touched. Reproducibility anchors remain at the model-card metadata JSON shipped alongside each release.
Three classes of treatment:
- In-app help model card rewritten (compiled into the desktop bundle):
ui/src/routes/help/model-cards/+page.svelte— both training-data sections rewritten across both model cards on the page. Authentic sources reduced to "real camera DCIM photos, Wikimedia Commons photographs (curated, non-art)". AI-generated sources reduced to "diverse imagery across the diffusion and GAN landscape spanning commercial and open-weights model families; specific generator names withheld from public documentation; per-generator recall is reported in the model-card metadata JSON shipped alongside each release". - Four high-risk docs moved out to internal:
docs/decisions/option-c-corpus-strategy.md,docs/fairness/corpus-demographic-profile.md,docs/TEST_CORPUS_BRIEFING.md,docs/testing/real-world-test-plan.mdmoved to../jura-labs-docs/jura-trace-internal/per the existingproject_repo_doc_hygienediscipline..gitignoreextended with explicit entries for the four moved paths so they do not creep back into the working tree of any clone. Emptydocs/testing/directory removed. - Ten medium-risk docs lightly redacted with named generator labels replaced by categorical descriptors. The model-card metadata JSON (with the actual per-generator recall numbers) stays as the reproducibility-anchor reference. Affected:
docs/calibration/univfd-v10-multi-format-augmentation-plan.md,docs/calibration/univfd-v10-screenshot-retrain-plan.md,docs/calibration/univfd-v10onnx-divergence-fix.md(the public model card cited fromdocs/methodology.mdon the release repo; per-generator-recall table retained with generic "Generator family A/B/C/D" labels),docs/calibration/univfd-v9-onnx-validation.md,docs/calibration/univfd-v9-platform-augmentation.md,docs/calibration/s28-jpeg-ghost-weight.md,docs/decisions/splice-benchmark-longterm.md,docs/av-corpus-methodology.md,docs/design/exif-injection-detection.md,docs/development-workflow.md.
Net 2,179 lines deleted / 54 added across 14 files in the source repo. Out of scope for this sweep (separate follow-up): the agent scripts at scripts/agents/crawl_authentic_images.py still contain code-level references to specific corpora (function names, HuggingFace dataset URLs). The script's behaviour is functional code, not documentation, and redacting it would break the corpus-rebuild path; to be addressed by relocating those scripts to internal if needed. Also out of scope: docs/backlog.md progress notes, which name specific generators in historical context — sweep planned for the next cleanup pass.
Pre-launch documentation deep review — 31 of 46 findings closed (8 June, commit b68b1e3)
Documentation deep-review agent identified 46 findings across four categories: inconsistencies between documents (12), backlog promises and future-version claims (14), internal tracker references in public copy (13), and detector language too specialist for non-technical readers (7). Overall RAG: Am...
CLIP ONNX model assets v1
CLIP ViT-B/32 ONNX models (vision + text encoders) for CI sidecar builds. Internal build asset, NOT a user installer release. Verified against scripts/onnx-model-sha256.manifest in the source repo.
