v0.5.0-beta: merge-with-key import, prior_author provenance, beta versioning

Merge-with-key: decrypt exported posts using original identity seed, re-create
under current identity with prior_author in BlobHeader for provenance tracking.
Download page restructured with stable (v0.4.4) + beta (v0.5.0-beta) sections.
Version bumped across all crates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Scott Reimers 2026-04-05 14:47:24 -04:00
parent 8ef32e6df6
commit 97dc83f9f1
13 changed files with 311 additions and 10 deletions

View file

@ -39,7 +39,7 @@
<div class="container wide">
<section>
<span class="version-badge">v0.4.4 &mdash; 2026-03-31</span>
<span class="version-badge">v0.5.0-beta &mdash; 2026-04-05</span>
<h1 style="font-size: 2rem; font-weight: 800; letter-spacing: -0.03em; margin-bottom: 0.5rem;">Design Document</h1>
<p>This is the canonical technical reference for ItsGoin. It describes the vision, the architecture, and the current state of every subsystem &mdash; with full implementation detail. This document is versioned; each update records what changed.</p>
<div class="card" style="margin-top: 1rem;">

View file

@ -25,16 +25,33 @@
<section>
<h1 style="font-size: 2rem; font-weight: 800; letter-spacing: -0.03em; margin-bottom: 0.25rem;">Download ItsGoin</h1>
<p>Available for Android and Linux. Free and open source.</p>
<h2 style="margin-top: 2rem;">Stable Release</h2>
<p style="color: var(--text-muted); font-size: 0.85rem;">Version 0.4.4 &mdash; March 23, 2026</p>
<div class="downloads">
<a href="itsgoin-0.4.4.apk" class="download-btn btn-android">
Android APK
<span class="sub">v0.4.4</span>
<span class="sub">v0.4.4 stable</span>
</a>
<a href="itsgoin_0.4.4_amd64.AppImage" class="download-btn btn-linux">
Linux AppImage
<span class="sub">v0.4.4</span>
<span class="sub">v0.4.4 stable</span>
</a>
</div>
<h2 style="margin-top: 2rem;">Beta Release</h2>
<p style="color: var(--text-muted); font-size: 0.85rem;">Version 0.5.0-beta &mdash; April 5, 2026</p>
<p style="color: var(--text-muted); font-size: 0.85rem;">Multi-identity, export/import, post merge with decryption key. May contain bugs &mdash; stable release recommended for daily use.</p>
<div class="downloads">
<a href="itsgoin-0.5.0-beta.apk" class="download-btn btn-android" style="border-color: var(--accent);">
Android APK
<span class="sub">v0.5.0-beta</span>
</a>
<a href="itsgoin_0.5.0-beta_amd64.AppImage" class="download-btn btn-linux" style="border-color: var(--accent);">
Linux AppImage
<span class="sub">v0.5.0-beta</span>
</a>
</div>
</section>
@ -46,7 +63,7 @@
<h3 style="color: var(--accent);">Android</h3>
<ol class="steps">
<li><strong>Download the APK</strong> &mdash; Tap the button above. Your browser may warn that this type of file can be harmful &mdash; tap <strong>Download anyway</strong>.</li>
<li><strong>Open the file</strong> &mdash; When the download finishes, tap the notification or find <code>itsgoin-0.4.4.apk</code> in your Downloads folder and tap it.</li>
<li><strong>Open the file</strong> &mdash; When the download finishes, tap the notification or find the APK in your Downloads folder and tap it.</li>
<li><strong>Allow installation</strong> &mdash; Android will ask you to allow installs from this source. Tap <strong>Settings</strong>, toggle <strong>"Allow from this source"</strong>, then go back and tap <strong>Install</strong>.</li>
<li><strong>Launch the app</strong> &mdash; Once installed, tap <strong>Open</strong> or find ItsGoin in your app drawer.</li>
</ol>
@ -59,8 +76,8 @@
<h3 style="color: var(--green);">Linux (AppImage)</h3>
<ol class="steps">
<li><strong>Download the AppImage</strong> &mdash; Click the button above to download.</li>
<li><strong>Make it executable</strong> &mdash; Open a terminal and run:<br><code>chmod +x itsgoin_0.4.4_amd64.AppImage</code></li>
<li><strong>Run it</strong> &mdash; Double-click the file, or from the terminal:<br><code>./itsgoin_0.4.4_amd64.AppImage</code></li>
<li><strong>Make it executable</strong> &mdash; Open a terminal and run:<br><code>chmod +x itsgoin_*.AppImage</code></li>
<li><strong>Run it</strong> &mdash; Double-click the file, or from the terminal:<br><code>./itsgoin_*.AppImage</code></li>
</ol>
<div class="note">
<strong>Note:</strong> If it doesn't launch, you may need to install FUSE:<br><code>sudo apt install libfuse2</code> (Debian/Ubuntu) or <code>sudo dnf install fuse</code> (Fedora).
@ -71,6 +88,17 @@
<section>
<h2>Changelog</h2>
<div class="changelog">
<div class="changelog-date">v0.5.0-beta &mdash; April 5, 2026</div>
<ul>
<li><strong>Multi-identity</strong> &mdash; Create, switch, and delete multiple identities on one device. Per-identity data directories with hot-swap switching (~3s). Legacy flat layout auto-migrates on first launch.</li>
<li><strong>ZIP export</strong> &mdash; Export your data as a ZIP with scope selection: identity only (key backup), posts only (safe to share), posts + identity (full migration), or everything (complete backup including follows and settings). Auto-chunks at 4GB.</li>
<li><strong>Public post import</strong> &mdash; Import public posts from another identity's export ZIP into your current identity. Creates new PostIds under your author, preserving original timestamps.</li>
<li><strong>Merge with decryption key</strong> &mdash; Import encrypted posts from another identity by providing the original identity key. Decrypts posts and blobs, re-creates them under your current identity. BlobHeader tracks prior_author for provenance.</li>
<li><strong>Import as new identity</strong> &mdash; Import a ZIP containing an identity key as a new identity. Creates the identity subdir; switch to it to access the data.</li>
<li><strong>Hole punch address filtering</strong> &mdash; Relay introductions now filter by address family (IPv4/IPv6) and exclude LAN-only addresses for remote peers.</li>
<li><strong>Sync pipeline fixes</strong> &mdash; Per-peer sync resets last_sync_ms before pulling (fixes stale sync). ManifestPush now fetches blobs after discovering new posts.</li>
</ul>
<div class="changelog-date">v0.4.4 &mdash; March 23, 2026</div>
<ul>
<li><strong>UI overhaul</strong> &mdash; Sticky header with tabs as one floating block on desktop. Fixed header + bottom nav on mobile. Full-width dark header with 15px fade gradient into content.</li>