Releases: sememtac/mememage-provenance
Release list
v0.1.10 — desktop reads dark bars correctly
Full Changelog: v0.1.9...v0.1.10
v0.1.9 — swipe the feed, and the demo app says so
Full Changelog: v0.1.8...v0.1.9
v0.1.8 — core audit fixes + squared lightbox
Full Changelog: v0.1.7...v0.1.8
Mememage Provenance v0.1.7
Verified install: this release publishes SHA256SUMS.txt, and the one-line installers (install.sh / install.ps1) now verify the download by SHA-256 before running.
Binaries attach automatically once the build workflow finishes. App is functionally unchanged from v0.1.6.
Install: https://mememage.art/install
Mememage Provenance v0.1.6
Desktop rebuild. macOS, Windows, and Linux binaries attach automatically once the build workflow finishes.
What is new since v0.1.5:
- Dashboard, README, and glossary copy rewritten in Simplified Technical English (clearer instructions, tooltips, and error messages).
- Faster bar decoding (the core 0.1.7 performance work, now in a desktop build for the first time).
Install: https://mememage.art/install
Mememage Provenance v0.1.5
Robust HTTPS out of the box + UNSUPPORTED verify state.
- certifi HTTPS everywhere — minting, blasting to distribution surfaces, and record fetches now validate against Mozilla's current root bundle instead of the OS trust store. On a fresh or un-updated machine (Windows especially) a stale store made valid Let's Encrypt certs fail as "certificate has expired," blocking mint/fetch with no user-fixable path short of terminal surgery. Now it just works. Verification is never disabled — self-signed peers still opt in explicitly.
- UNSUPPORTED verdict — verifying a record whose
hash_versionis an application-defined model the core doesn't implement now reports UNSUPPORTED (not ALTERED). It fails closed but is not tamper evidence — verify it in the app that defines the version.
Unsigned per-platform desktop builds attach below. Install via https://mememage.art/install.
Mememage Provenance v0.1.4
Rebuilds the desktop apps against current code. The previous release (v0.1.3, July 6) predates everything below, so every download until now shipped July-6 code.
Decoder
- Half-size copies now decode. The bar's M/Y/C anchor bands shrink with the image; at 0.5× they hit 4px and JPEG chroma subsampling smears them past the strict colour cutoffs, so the decoder gave up before reading a single bit. A soft channel-ordering fallback recovers them. Strict predicates still run first, so pristine images are unaffected, and false anchors are rejected by the frame's magic bytes + CRC-16 + Reed-Solomon. Ported to both the Python decoder and the browser decoder (
codec.js). - Honest downscale envelope, measured on real images rather than synthetic ones: images ≥ ~1000px wide survive a resize to 0.8× plus one recompression (59/60 round-trips across three resamplers and JPEG q70–q80). Beyond that, nothing is promised — survival depends on the image, the resampler, and whether it was recompressed, and it is not monotone in scale.
Chain integrity
chunk_stateis a cache; the records are the truth. Newsite_pack reconcilerebuilds the star counter, decoder chunk index, and heart star by walking the chain from genesis and counting only records whose content hash verifies.site_pack statusnow reports drift out loud instead of printing a number it knows is false.- Root cause of the drift it repairs: the test suite wrote into the operator's real chain (
chains.CHAINS_ROOTis bound at import, so patchingMEMEMAGE_ROOTalone still resolved to the live chain). Twelve hardcoded~/.mememage/receivedpaths now resolve throughchains.received_dir(), andtests/conftest.pyredirects both roots and fails the run if the real chain state changes.
Documentation
- Two claims retracted because the code doesn't support them: "below 0.5× nothing decodes at any size" (a lossless 0.35× copy decodes) and "a bare bar cannot be transplanted onto another image" (true only on textured content — flat, dark, bright, or noisy content decodes from the 2 data rows alone, with no reference row).
- AI-generated framing removed from published text. Zenodo depositions no longer describe the image as AI-generated, and the celestial certificate's docstring no longer implies it. Mememage is provenance for any image.
Downloads
Unsigned builds for macOS, Windows, and Linux attach below. Install via mememage.art/install, which sidesteps Gatekeeper/SmartScreen — a direct download needs a manual unblock.
Mememage Provenance v0.1.3
Light-chain images on the Internet Archive
Conceptions on light-energy chains now publish the full minted image to the Internet Archive alongside the soul record — so an image is publicly viewable and decodable straight from the Archive at archive.org/download/<id>/<id>.png.
- Gated on chain visibility: dark-matter chains never publish their image (IA items are permanent, so a sealed image would leak irreversibly). Light chains only.
- Non-fatal and additive: the soul record stays the primary artifact; an image-upload hiccup just logs and moves on. Nothing about verification changes.
Desktop binaries below carry the Polaroid icon and this change. Unsigned — see the install page for the one-liners that sidestep Gatekeeper/SmartScreen: https://mememage.art/install
Mememage Provenance v0.1.2
Maintenance release — refreshes the desktop app with the new Polaroid icon and the latest brand/UI changes.
What's new since v0.1.1
- New app icon (the Polaroid mark: a white card framing the image with the M/Y/C bar) across the desktop app + web favicon
- Latest decoder / validator / feed (Open Graph social cards, polish)
- Install page refinements
Same install as before: https://mememage.art/install
- macOS —
Mememage-Provenance-macOS.zip - Windows —
Mememage-Provenance-Windows.exe - Linux —
Mememage-Provenance-Linux
macOS/Windows binaries are unsigned; the one-line installers at mememage.art/install open them cleanly.
Mememage Provenance v0.1.1
Maintenance release.
Fix: on the phone conception page, the per-surface Download soul buttons (archive.org, your mint host) failed with "Load failed." They fetched each surface's own URL cross-origin — archive.org sends no CORS headers, and a loopback/http push URL is mixed-content and unreachable from a phone. The soul is content-addressed (byte-identical wherever it landed), so downloads now pull the same-origin local copy (/api/mint/<token>/soul); the label still shows where it landed.
Desktop binaries below bundle the fix. Install: https://mememage.art/install