diff --git a/releases-manifest.json b/releases-manifest.json
index b9cac6a..63b8716 100644
--- a/releases-manifest.json
+++ b/releases-manifest.json
@@ -1,226 +1,646 @@
-{
- "schema": "silentmode-releases/2",
- "updated": "2026-10-25T11:00:10.791Z",
- "mirrors": [
- "https://dl.silentmode.st/"
- ],
- "releases": [
- {
- "id": "theseus-navigator",
- "product": "Theseus Navigator",
- "version": "0.3.114",
- "date": "2026-10-25",
- "platform": "win-x64",
- "signed": false,
- "signingAuthority": null,
- "changes": "Add-on update poller now fires 30 s after chrome is ready instead of 30 s after whenReady, so its network fetches don't compete with tab restore in the first few seconds. Nothing user-visible — a startup-polish nudge for slower connections. The 4 h repeat interval is unchanged.",
- "files": {
- "TheseusNavigator-0.3.114-portable.exe": "ad863e1d966a964da9b264fd442ebd77b5fc5bdc9ff664cb0740522c176791d2",
- "TheseusNavigator-Setup-0.3.114.exe": "0821d701d161609269453553f9b38e801cc071d646f1946c26945ad8b6376e90"
- }
- },
- {
- "id": "theseus-navigator",
- "product": "Theseus Navigator",
- "version": "0.3.113",
- "date": "2026-10-25",
- "platform": "win-x64",
- "signed": false,
- "signingAuthority": null,
- "changes": "AI picker now shows the real brand favicons. ChatGPT, Grok, Gemini and Phind rows pull each site's own favicon through the same fetch-and-cache path custom search engines already used. The placeholder color-letter tiles from 0.3.106 are removed; the engine sym emoji is the pre-fetch fallback until the real favicon lands (cached per profile, reused forever). Perplexity keeps its existing bundled icon.",
- "files": {
- "TheseusNavigator-0.3.113-portable.exe": "53447c9c11633813ca13741744a07f518555518be66456525f25dd8af8d97bd3",
- "TheseusNavigator-Setup-0.3.113.exe": "72424dd7c08659f7e94afa8c84b1b395031e2a45ae48a3d812982d302ccbe4c7"
- }
- },
- {
- "id": "theseus-navigator",
- "product": "Theseus Navigator",
- "version": "0.3.112",
- "date": "2026-10-24",
- "platform": "win-x64",
- "signed": false,
- "signingAuthority": null,
- "changes": "AI picker chevron now opens the picker reliably (the small chevron badge on the sidebar AI button was a nested button inside the main AI button; Chromium flattened the invalid HTML so the chevron click never fired). Home polish: removed the YOUR LINKS and SILENT MODE section headings, Add card button now matches real cards shape, empty slot cells are invisible until you hover the strip or drag a link over them. Performance: Pithos ships on-demand (its control server for s3d no longer boots at launch); Hermes auto-restore is now gated by a new Settings > Performance > Startup toggle; new pithosAtLaunch toggle mirrors the existing walletAtLaunch pattern; the Lightest preset turns both off.",
- "files": {
- "TheseusNavigator-0.3.112-portable.exe": "c13c29d8b02003efce0753f9d20666dc6c169fd0f9ddee91768c9dd579c1348a",
- "TheseusNavigator-Setup-0.3.112.exe": "db63166053ddb25c2e38433b1a2f73c36df910990558efed0f5a8bedc9d92f0e"
- }
- },
- {
- "id": "ariadne-resolver",
- "product": "Ariadne Resolver (Windows)",
- "version": "0.1.13",
- "date": "2026-10-01",
- "platform": "win-x64",
- "signed": false,
- "signingAuthority": null,
- "changes": "Every subsystem is now individually switchable and reports its own state. New endpoint http://127.0.0.1/api/status returns a full state report (daemon version + startup + policy + permitted TLDs + ports + upstream + gateway; index size + warm-start source; per-source enabled/lastAttempt/lastSuccess/lastError/counters for snapshotHttps + electrumWss + perQueryLookup + diskCache + localApi). C:\\ProgramData\\Ariadne\\policy.json extended with a `sources..enabled` block (hot-reloaded every 5 s alongside the collision policy) -- flip any source off to isolate a path or measure without it. Turning localApi off returns 503 with a hint pointing at the config file. Turning diskCache off skips writing bns-name-snapshot.json AND skips reading it at warm-start. Turning snapshotHttps off skips the HTTPS refresh; electrumWss off skips the WSS refresh; perQueryLookup off skips the per-query /api/name/ fallback. Includes 0.1.12 (orphan-safe upgrade + /api/tlds + /api/name/:n + /api/registry). Upgrades in place.",
- "files": {
- "AriadneResolver-Setup-0.1.13.exe": "a16d10759efede4412f4fdb52d59424bf56bbb258bb002ab930f4a5a5aef8a41"
- }
- },
- {
- "id": "ariadne-android",
- "product": "Ariadne for Android",
- "version": "0.58",
- "date": "2026-10-25",
- "platform": "android",
- "minSdk": 21,
- "signed": true,
- "signingAuthority": null,
- "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
- "changes": "Custom Settings icons — eleven gold-stroke SVG line icons (Resolution, Ariadne's Thread, Search engine, AI engine, Names & Certificates, Appearance, Updates, Privacy, Downloads, Maintenance, About) replace the platform emoji glyphs. Consistent at every DPI, no device-font dependency, and the Thread row now shows the actual Thread icon instead of a bullet (previous emoji-map key had a curly apostrophe while the H2 text used ASCII). Same signing key; installs over 0.57.",
- "files": {
- "ariadne-v0.58.apk": "629ffec0bca76dbf1e6858196ecf202367d6ea121ba7515c830bd9b2397d6e07"
- }
- },
- {
- "id": "ariadne-android",
- "product": "Ariadne for Android",
- "version": "0.57",
- "date": "2026-10-24",
- "platform": "android",
- "minSdk": 21,
- "signed": true,
- "signingAuthority": null,
- "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
- "changes": "Short-tap a LIVE row card and the start page opens the asset's page on CoinSpectrum — the live feed Ariadne already pulls prices from. Long-press still fires the Edit / Move up / Move down / Delete sheet; the tap and hold wire takes precedence over the tag's default navigation whenever the finger moved or the hold timer fired. Same signing key; installs over 0.56.",
- "files": {
- "ariadne-v0.57.apk": "a978cfe989112bef1fd69c44d1884a7e9341b1991be75f7bb7217282c5b95dc5"
- }
- },
- {
- "id": "ariadne-android",
- "product": "Ariadne for Android",
- "version": "0.56",
- "date": "2026-10-24",
- "platform": "android",
- "minSdk": 21,
- "signed": true,
- "signingAuthority": null,
- "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
- "changes": "Top row polish: the resolver chip (Ariadne's Thread) and the tabs count are now both 36×36 dp squares, matched sizes. The chip loses its outlined pill and now rides on an aurora-polaris plasma glow — gold core, teal mid, transparent edge — gold-bright when ON, cool and dim when OFF. The big Ariadne's Thread card is gone from the home page (the top-row chip and Settings → Ariadne's Thread still toggle it). Favorites defaults replaced with the on-chain ecosystem: Row 1 hello.bch, Sia.Coin, Pithos.Sia, bitcoincash.org · Row 2 Ariadne.X, Sirius.X, Prometheus.X, Hermes.X. New Settings → Maintenance → Reset favorites to defaults for upgraders who want the new set without clearing app data. Same signing key; installs over 0.55.",
- "files": {
- "ariadne-v0.56.apk": "a851b80e292677b289b54ba1ae7e662b8768d53feb46c1f96a35da331ec980a6"
- }
- },
- {
- "id": "hermes-desktop",
- "product": "Hermes for Windows",
- "version": "0.1.0",
- "date": "2026-10-23",
- "platform": "win-x64",
- "signed": false,
- "signingAuthority": null,
- "changes": "First desktop build: the Hermes messenger as a stand-alone Windows app (Tauri), byte-equal with the Theseus panel and the hermes.x web messenger. Sign in with a recovery phrase or create a new identity; same inbox on every surface.",
- "files": {
- "Hermes-0.1.0-setup.exe": "0adc742d54daaee2b62e7fdcbff2f0203bd50f995444487ff93233ccc6328552",
- "Hermes-0.1.0.msi": "fa81948bba8c3d6e9306a5aa218424fd2a4bc692891f3d2543c2782207f86b3f"
- }
- },
- {
- "id": "hermes-android",
- "product": "Hermes for Android",
- "version": "0.3.1",
- "date": "2026-10-24",
- "platform": "android",
- "minSdk": 26,
- "signed": true,
- "signingAuthority": null,
- "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
- "changes": "Fix: phone verify over Telegram no longer gets stuck. Two live bugs. First, Android 11+ package visibility was blocking the tg:// deep link — the OS silently fell through to a browser (or threw) even with Telegram installed, so our startActivity could never actually dispatch /start to the bot; fixed by declaring the tg:// and https://t.me intents in the manifest block. Second, the https://t.me/?start= URL only auto-sends /start on a brand-new chat with the bot — once you had opened the bot even once (common after a first verify attempt), the chat reopened with no Share-Phone button and no retry path; Hermes now prefers tg://resolve, which fires /start regardless of chat state. Polling also starts the moment a nonce is minted (not only on return from Telegram), honours the server's 10-minute nonce TTL instead of giving up at three, and the pane now carries Check-status-now / Reopen-Telegram-chat / Cancel-and-start-over controls so a stale verify can be unstuck without leaving the screen.",
- "files": {
- "hermes-v0.3.1.apk": "f3ebaea886cc363e131027514dd038343e522d31296b8dfdd46af1889c095637"
- }
- },
- {
- "id": "hermes-android",
- "product": "Hermes for Android",
- "version": "0.3.0",
- "date": "2026-10-24",
- "platform": "android",
- "minSdk": 26,
- "signed": true,
- "signingAuthority": null,
- "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
- "changes": "In-app auto-update. Hermes now polls dl.silentmode.st/releases-manifest.json on launch and on resume, and shows an update banner at the top of the chat list when a newer version is live. Tap Update → downloads the APK via the pinned client, SHA-256-verifies against the manifest field, then launches Android's package installer. Android refuses to install an APK signed by a different key than the running app, so a tampered manifest can at worst waste bandwidth. Same signing key as 0.2.2; installs over it. Requires the one-time Install-unknown-apps grant on first update, which Android shims via Settings.",
- "files": {
- "hermes-v0.3.0.apk": "77d16184ba2c26fb81b79d9e4c5f98f8bfb434690c1e6acd9b7fd5f16651a6cb"
- }
- },
- {
- "id": "hermes-android",
- "product": "Hermes for Android",
- "version": "0.2.2",
- "date": "2026-10-24",
- "platform": "android",
- "minSdk": 26,
- "signed": true,
- "signingAuthority": null,
- "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
- "changes": "Find People now accepts a phone number alongside BNS names, labels, npubs and hex pubkeys. Type +15551234567 (or 0015551234567) and Hermes hashes it locally and asks the relays for the matching kind:30078 phone-claim event — the raw number never leaves the device. Shows the Hermes identity with a verified ✓ when the owner's phone-claim carries a valid Telegram attestation, same shape as the Address Book contact matches. The input also switches to a numeric phone keyboard the moment it looks like a phone number. Same signing key as 0.2.1; installs over it.",
- "files": {
- "hermes-v0.2.2.apk": "b46da998caa57a6923bb4ab305c5ab1cff88fbf38f4028eb2cecceb77140f1a6"
- }
- },
- {
- "id": "pithos-desktop",
- "product": "Pithos",
- "version": "0.3.26",
- "date": "2026-10-08",
- "signed": false,
- "signingAuthority": null,
- "changes": "In Theseus, Send on Telegram and Send on WhatsApp open Theseus's own Telegram and WhatsApp apps at their share screens; the share menu shows the real Telegram, WhatsApp and X icons. The sidebar's Full page button is gone (the panel's Maximize does the same).",
- "platform": "win-x64",
- "files": {
- "Pithos-0.3.26-portable.exe": "951d4e814f8f8a3e729b8dc63ae69b848dff106a1517c0ca12347985567e32b0",
- "Pithos-Setup-0.3.26.exe": "e3daef6fedb72c63e893b7851108ed87a08c74ccdf6e1207bb218bda88f57e0a"
- }
- },
- {
- "id": "pithos-desktop",
- "product": "Pithos",
- "version": "0.3.26",
- "date": "2026-10-08",
- "signed": false,
- "signingAuthority": null,
- "changes": "In Theseus, Send on Telegram and Send on WhatsApp open Theseus's own Telegram and WhatsApp apps at their share screens; the share menu shows the real Telegram, WhatsApp and X icons. The sidebar's Full page button is gone (the panel's Maximize does the same).",
- "platform": "linux-x64",
- "files": {
- "Pithos-0.3.26-x86_64.AppImage": "0562f5b82f8788ef44451babfb9d8799eb635ae56aece0072db18f851f40917f",
- "Pithos-0.3.26-amd64.deb": "0aecfdccbdc30194b3d0918a7f157d82bffd37a56d88a2de9a0015df666e0334",
- "Pithos-0.3.26-linux-x64.tar.gz": "2329527f53fa3726a9ec44a1859f235c7bb59953f9c15b71d1c5081fb5414954"
- }
- },
- {
- "id": "pithos-desktop",
- "product": "Pithos",
- "version": "0.3.25",
- "date": "2026-10-07",
- "signed": false,
- "signingAuthority": null,
- "changes": "Share opens a menu: copy the public link, open it, or send it on X, Telegram or WhatsApp. Shared links open on a page with a preview and a Download button. Pithos fills wide windows, a renamed user updates in every open view, and pithos.sia in Theseus asks for the vault PIN after a lock and reopens once it is unlocked.",
- "platform": "win-x64",
- "files": {
- "Pithos-0.3.25-portable.exe": "81a498b0586263c7795643dc8cce96c96d8d9233714913d13b81ab14706f21eb",
- "Pithos-Setup-0.3.25.exe": "958e962dc068a5032d1d9f18aa818b67160a93bb5e45b551fc5cf700357d4def"
- }
- },
- {
- "id": "pithos-desktop",
- "product": "Pithos",
- "version": "0.3.25",
- "date": "2026-10-08",
- "signed": false,
- "signingAuthority": null,
- "changes": "Share opens a menu: copy the public link, open it, or send it on X, Telegram or WhatsApp. Shared links open on a page with a preview and a Download button. Pithos fills wide windows and a renamed user updates in every open view.",
- "platform": "linux-x64",
- "files": {
- "Pithos-0.3.25-x86_64.AppImage": "1b0eabd1bb0a28435b05658cf3f5a2dcefd029b65c79dbec80e9e9e1ae135df7",
- "Pithos-0.3.25-amd64.deb": "04e36e9451ab1addcc6a179dbf527fb2689e019beb7d7edb02fd0d85501c626b",
- "Pithos-0.3.25-linux-x64.tar.gz": "1aea475630e8722c563e132ffa922190da08aec1ab09bedece0fbfbdfecfc307"
- }
- }
- ]
-}
+{
+ "schema": "silentmode-releases/2",
+ "updated": "2026-10-25",
+ "mirrors": [
+ "https://hermes.x/",
+ "https://dl.silentmode.st/"
+ ],
+ "releases": [
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.39",
+ "date": "2026-10-25",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "QR device linking. Profile -> Link another device shows a QR + 6-digit code (sk AES-GCM encrypted with HKDF of the code). Welcome -> Scan to link opens the camera, scans, asks for the code, seals the primary's sk on this device. Both devices run the same identity. Camera permission + ZXing.",
+ "files": {
+ "hermes-v0.3.39.apk": "b040e73a14cd7e177b167514da223379a5988a845787424072b072798ec0ce95"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.21",
+ "date": "2026-10-25",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Profile card redesign to match the drawing. Info card holds Name / Mobile / About as three inline-editable rows (verified check + phone number on the Mobile row, pencil on each). Separate Identity card for npub + Copy with Accounts-on-this-device section underneath (current account shows as Active; the switcher UI lands when multi-account ships). Edit Info pill removed — rows are directly editable; Settings pill stays as the nav shortcut. Single-field edit dialogs auto-publish to relays when Privacy → Profile visibility allows. Same signing key as 0.3.20.",
+ "files": {
+ "hermes-v0.3.21.apk": "74f9e196e2809a26045adb975d32c1938ed38789d5e9cc6a6f8f55fe1b69d4dd"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.20",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Delivered + read ticks. Outbound bubbles progress clock → sent → DOUBLE tick (delivered, after the recipient's client unwrapped it) → BLUE double tick (read, after they opened the chat). Bidirectional receipt convention — recipient's client sends a NIP-17-wrapped empty-content kind:14 chat with `['r', , 'received'|'read']` back to the sender; sender matches by (peer, mid) and forward-only transitions local status. Privacy → Send delivery & read receipts toggle (default ON, matches Signal/Telegram). Off = your contacts stay at single tick on their side and nobody can tell when you came online. Group receipts deferred (ack-to-whom needs its own design). Schema v6 → v7 destructive: messages gain receiptSentReceived + receiptSentRead flags. Same signing key as 0.3.19.",
+ "files": {
+ "hermes-v0.3.20.apk": "9ffd93dff3a1f7d4516178e61cb357112bfc19d371254680e523dd24687ce31e"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.19",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Delivery reliability + chat polish. Fixes the 'other device never sees new messages' / 'have to send to pull' bugs: mobile sockets go half-open after Doze or a network transition and the relay never notices we're gone. Hermes now force-reconnects every relay on app resume (new RelayPool.reconnectAll + RelayConnection.forceReconnect); the standing inbox subscription replays on the fresh socket so queued messages catch up immediately on open. Message input is now flush against the keyboard (removed 8dp vertical gap). Edited marker is a tiny amber pencil icon next to the time instead of ' · edited' text, so short edited messages stay inline. Deferred: Delivered/Read ticks (needs bidirectional receipt protocol + Privacy opt-out) and Dark/Light theme toggle (needs color-palette split + MaterialTheme.colorScheme rewire across every screen) — both own-release-sized. Same signing key as 0.3.18.",
+ "files": {
+ "hermes-v0.3.19.apk": "a115f9ae2bf2a2695c339cf7c6ae01a966d78a647b2c4bc532bb0a8a871fb829"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.18",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Instant Contacts tab + inline profile photo. Contacts renders the cached address-book list immediately on open; background refresh only when the cache is empty or older than six hours. Tap the Profile avatar to pick a photo from your gallery — Hermes crops/scales to 256×256, JPEG-compresses at quality 50 (~25–40 KB), base64-encodes and embeds as a data: URL in your kind:0 event. No hosting, no cloud. Caveat: avatar render is Profile-tab only this release; chat list + chat screen still show initials/npub for others until the shared bitmap cache lands. Same signing key as 0.3.17.",
+ "files": {
+ "hermes-v0.3.18.apk": "6f9e0c69bd81c997b32d436b63a1528c25bdda5e6ab6dbe9819679a3c226dc4e"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.17",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Telegram-style Profile tab. Big circular avatar + name hero, two pill actions (Edit Info / Settings), info card (Mobile with verified check, Bio, Username, npub with Copy), editor hides behind Edit Info. Session card at the bottom with Add account (stub for the account switcher landing next release) + Sign out. Same signing key as 0.3.16.",
+ "files": {
+ "hermes-v0.3.17.apk": "0c306b721b6a5419dbd9be60c3b3cf02ba21de29ba89e1ca79e17efa4c313fb3"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.16",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Multi-device message sync, friendlier sign-in, more Privacy options. When you send a message, Hermes mirrors it to your own npub so your second device sees it in the right thread (fixes 'I don't see messages sent from my other device'). Welcome screen is Sign in + Sign up — both go to the same screen, which auto-detects whether the handle is new or taken; Recover-with-phrase moves INSIDE Sign in as a link. Sign in remembers your last handle and pre-fills on next launch. Sign out moved to Profile tab (Settings row stays for backward compat). Privacy → Who can see my profile gains a 'My Contacts' option (behaves like Everyone today; encrypted-direct distribution is a follow-up). Same signing key as 0.3.15.",
+ "files": {
+ "hermes-v0.3.16.apk": "2d35623ae3838941342e1e3bc4a7b2d2312d40a722aa83b333d3a5046e4bc460"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.15",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Privacy settings. Three new rows in Settings → Privacy. 'Who can find me by phone number' (Everyone / Nobody) — Nobody suppresses the kind:30078 phone-claim publish; verifications still save locally. 'Who can message me' (Everyone / My contacts only) — Contacts-only still receives messages but doesn't notify for senders not in your address book; they land in the inbox silently. 'Who can see my profile' (Everyone / Nobody) — Nobody keeps your display name/about/picture local; Save does not publish kind:0. More Telegram-style controls (last-seen, who can add me to groups, etc.) land as we build those features. Same signing key as 0.3.14.",
+ "files": {
+ "hermes-v0.3.15.apk": "9f805fd6091518367789c33afdd895d60cd1f4f235a631e0a759118ffffbbb68"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.14",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Unread badges that actually work. Each thread row in the chat list shows a sky badge with the count of incoming messages you haven't opened; the row text goes bold while unread. Opening a chat marks the thread read; the badge drops immediately. New messages arriving while you're already looking at a chat don't tick the badge up. Note: cross-device read sync is still coming — if you read on Android, the web messenger still shows those as unread until the shared read-receipt convention lands. Schema v5 → v6, destructive: threads gain lastReadAt (Unix secs). Same signing key as 0.3.13.",
+ "files": {
+ "hermes-v0.3.14.apk": "6b2ba4d1019242ae16a0cc1746afdc0268b51a1a2516103e870968d7a3da78a7"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.13",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Edit messages. Long-press any outbound bubble → Edit → change text → Save. The other side's client replaces it in place. Convention: every outgoing chat rumor carries a stable 16-byte `mid` tag; to edit, send a new rumor with the same mid + an `edit` tag + new content. Receivers look up a prior message from the SAME sender with that mid; if found, replace the text and show '· edited'. The mid+sender pairing is the authority — nobody can edit anyone else's message. Works for 1:1 and group chats. Schema v4 → v5 (destructive, pre-1.0): messages gain localMessageId, senderPubkeyHex, editedAt. Same signing key as 0.3.12.",
+ "files": {
+ "hermes-v0.3.13.apk": "545f30a58bcc51b1f04d8b989df83203bc0b30aa08e1549f445fbdf04a03b3e3"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.12",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Robust auto-update for OEMs that don't like our pinned origin. Download tries pinned hermes.x first, falls back transparently to the public-CA dl.silentmode.st mirror if TLS or the socket chokes on this device (seen on Honor Magic with EMUI's TLS interceptor). SHA-256 verify still runs on whatever bytes land. Install-intent failures no longer disappear silently — if Android's package installer refuses to launch, the error surfaces on the chat list banner with an Open-in-browser escape hatch. Settings → About → Download APK in browser is always available, opens https://hermes.x/hermes-latest.apk for manual side-load. Same signing key as 0.3.11.",
+ "files": {
+ "hermes-v0.3.12.apk": "cd090dcf8084a3811c8920051f074a9c4e38e8e62e0120236cad1c50825dacf9"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.11",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "About pane leads with Project home: hermes.x — matches the single-source-of-truth story. Source code (code.silentmode.st/silentmode/hermes) stays, demoted to a smaller sub-line for developers who want it. Same signing key as 0.3.10.",
+ "files": {
+ "hermes-v0.3.11.apk": "3d2831062e98ac1d51ad21c93b0d20b48299ebb9f748d460a12dc51f73d439cd"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.10",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Compact chat bubbles with inline time. Short messages (under 28 chars, single line) now render as one tidy row — text + HH:mm + status glyph on the same line, the way WhatsApp and Telegram do it — instead of stacking the status underneath. Long or multi-line messages keep the time + status on their own line at the bottom-right of the bubble. Timestamps are shown on every bubble (previously only outbound bubbles carried any indicator, and only via the status glyph). Same signing key as 0.3.9.",
+ "files": {
+ "hermes-v0.3.10.apk": "11a8d1fbe89c679153cf13e97a6435285f950ddba37625ce4bceed8e84c53998"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.9",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Message status + launcher badge fix + stale update-check fix. Outbound bubbles show a tiny status glyph in the bottom-right: clock (sending), single tick (sent), red ! (failed). Delivered + read ticks are reserved pending a wire-protocol decision for sealed-DM receipts. Launcher icon badge no longer sticks at an old number: Huawei/Honor EMUI uses its own content-provider API, Samsung uses a broadcast, stock Android uses setNumber — the app now updates all three on every notification post + cancel, so opening a chat clears both the shade entry AND the red number on the launcher. Stale update check fixed: devices that saw UpToDate once and never checked again (Honor Magic in the live report) now re-check on every resume after 10 min, so new releases are picked up without having to open Settings → About → Check for updates. Schema v3 → v4 (destructive, acceptable pre-1.0): messages table gains a status column. Same signing key as 0.3.8.",
+ "files": {
+ "hermes-v0.3.9.apk": "090508a3fc194f4983d30d799b0d48bddbb7928a1f5111bb2e0c42c62702374b"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.8",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Delete chats and messages. Chat list ⋯ sheet now has a Delete chat action at the bottom — confirms, then removes the thread + every message from THIS device (honest about not being able to un-send what the relay and the other person already have). Long-press a message bubble in a chat to open an actions sheet: Copy text, Edit (coming soon), Delete message. Delete is also local-only and the sheet says so. Edit is intentionally present-but-disabled; it needs a wire-protocol decision first (Nostr has no standard edit for sealed DMs — the options are a convention event referencing the original by id, or a replaceable kind the wrapper layer reconstructs — I'd rather pick on purpose than hack). Same signing key as 0.3.7.",
+ "files": {
+ "hermes-v0.3.8.apk": "0cbe10f2a47fe1e666dba691e35ceb62c7bd0f559b3e8d67608b877fdc0cef1e"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.7",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Bottom navigation + Profile tab + fixed notifications. Four tabs now at the bottom of every main destination: Chats, Contacts, Settings, Profile — the old top-bar Contacts/Settings icons collapse into labelled tabs. Verify stays on the chat-list top bar since it's an identity action, not a destination. Profile tab lets you set your display name, about, and picture URL — Save publishes a kind:0 event to all relays. Notifications fix: opening a chat now dismisses that peer's notification from the shade (Signal-style), and new messages from the same sender replace the existing notification instead of stacking. Sender label on notifications now follows the same priority as the rest of the app: kind:0 display name → address-book name → saved phone → shortened npub — so you see a human name, not hex. Same signing key as 0.3.6.",
+ "files": {
+ "hermes-v0.3.7.apk": "5c34d995dec4dc0c89cfbbd4ac903bf55ecf8d6ff6a5707728d14e34b744d59c"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.6",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "New onboarding: phone number or username + password. Welcome screen pulls the Sign in and Recover with phrase buttons up near the middle (no more bottom-anchored action pair). Sign in opens one unified field — type a phone number (+country) or any alphanumeric handle, and Hermes checks against hermes.x/id to decide between \"enter the password you set\" (sign in) and \"pick a password you'll remember\" (register — one tap and your Hermes identity is created). Zero-knowledge contract: client runs scrypt(password, salt) locally, splits the 64-byte output into an AES key (stays on device) and a verifier (sent to server). Server stores salt + sha256(verifier) + the AES-GCM-wrapped sk blob; it never sees the password or the sk. Rate-limited: 5 wrong tries = 15 min lockout, 20 = 24 h. Recover with phrase is still the ultimate root — if you forget the password AND the device dies, the recovery phrase (Settings → Backup & recovery) gets you back in. Same signing key as 0.3.5.",
+ "files": {
+ "hermes-v0.3.6.apk": "d38c757d7df18c4b4eeb563779c725ccb8569821e3ab38efd65663c812700753"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.5",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Folders + group chats. The chat list now carries a horizontal tab row — Main (every chat with no folder assigned) plus every folder you've created. Tap the + chip to create a folder. Tap the ⋯ on a chat row to move it. A chat lives in exactly one place at a time — Main or ONE folder, never both — so moving from Main to Work removes it from Main; no duplicates across tabs. Group chats land via a new-group entry in Find People: pick two or more people from your address book and start a group. The group id is derived deterministically from the sorted participant pubkey set (SHA-256), so every member computes the same id without a shared on-chain registry; sending fans out a NIP-17 wrap per recipient — the relay still never sees the group membership, each wrap looks like a 1:1 DM to its one addressee. Incoming group messages are detected from the rumor's p + h tags and merged into the derived group thread. Room schema bumped v2→v3 (destructive migration, acceptable pre-1.0): threads gain folderId / isGroup / participants / groupName; new folders table. Same signing key as 0.3.4.",
+ "files": {
+ "hermes-v0.3.5.apk": "37610e79a81d1e0b8ac0a9904322358c5883ca31cff8a1ac00d252fa07074d49"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.4",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Chat UX fixes. Message input used to float a keyboard-height above the keyboard with a huge empty gap — MainActivity now sets windowSoftInputMode=adjustResize so Compose's imePadding is the only IME adjustment in play (adjustPan + imePadding was adding the IME height twice). The input sits flush above the keyboard now. Display priority: chat list and chat title pick name → phone → npub, in that order — a peer's kind:0 display_name wins, else the local address-book display name, else the saved phone number for that contact (never recovered from the relay; shown only if the local user themselves added them via address book or phone search), else the shortened npub1… fallback. Find People copy: placeholder is now \"Name, telephone, npub1…\" and the help line reads \"Type a name, phone number, pubkey, or an npub1… string\", matching the hermes.x web messenger wording. Same signing key as 0.3.3.",
+ "files": {
+ "hermes-v0.3.4.apk": "5fd4d33061b297c4caeda2efdaf4e2b660f521e4cb936d91b155c4fee76efe38"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.3",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Settings panes now actually work. About shows the running version and has a Check-for-updates button that re-runs the manifest poll. Backup & recovery reveals the Nostr secret key (nsec1…) behind a confirmation — Hermes doesn't store the recovery phrase, only the derived key, so this is the exportable backup if the phrase was lost; the clipboard copy is flagged sensitive on Android 13+ so it won't preview on the paste bar. Notifications has a Show-message-preview toggle (off = notifications say \"New Hermes message\" only) and a shortcut to the Android per-app notification settings. Devices & relays shows live connection state per relay with a Reconnect button, plus FCM registration status. Privacy has a Clear-local-chat-history button that wipes threads/messages/contacts for this identity on this device. Language shows the current system locale and opens Android's language settings. Folders is an honest \"not available yet\" placeholder. Same signing key as 0.3.2.",
+ "files": {
+ "hermes-v0.3.3.apk": "1dcba64fcb544a0e2da6d06bd538e97bb9411783559c9f466551622ffd0c8c96"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.2",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Updates now stream from hermes.x itself through the TLS-pinned origin — same cert the app pins for the Nostr relay and the phone-verify endpoint, same on-chain tls record. Previously the manifest + APK came from dl.silentmode.st over the public CA chain; a bad CA mint could have swapped the manifest. The whole update path (manifest, APK, Telegram-verify handoff, Nostr relay) now runs through one pinned anchor. Hermes ships the on-chain `ip` record for hermes.x alongside the `tls` record it already shipped; OkHttp only applies this override for the exact hostname hermes.x, so the pin cannot widen trust elsewhere. Server-side, hermes.x also serves /releases-manifest.json and /hermes-v*.apk from the release directory, so one scp still fans out to both URLs.",
+ "files": {
+ "hermes-v0.3.2.apk": "f6ca8ec240bb67144c91d918ebf6cc8e947c85e73813e1dece0f51cf0fe8d34a"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.1",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Fix: phone verify over Telegram no longer gets stuck. Two live bugs. First, Android 11+ package visibility was blocking the tg:// deep link — the OS silently fell through to a browser (or threw) even with Telegram installed, so our startActivity could never actually dispatch /start to the bot; fixed by declaring the tg:// and https://t.me intents in the manifest block. Second, the https://t.me/?start= URL only auto-sends /start on a brand-new chat with the bot — once you had opened the bot even once (common after a first verify attempt), the chat reopened with no Share-Phone button and no retry path; Hermes now prefers tg://resolve, which fires /start regardless of chat state. Polling also starts the moment a nonce is minted (not only on return from Telegram), honours the server's 10-minute nonce TTL instead of giving up at three, and the pane now carries Check-status-now / Reopen-Telegram-chat / Cancel-and-start-over controls so a stale verify can be unstuck without leaving the screen.",
+ "files": {
+ "hermes-v0.3.1.apk": "f3ebaea886cc363e131027514dd038343e522d31296b8dfdd46af1889c095637"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.3.0",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "In-app auto-update. Hermes now polls dl.silentmode.st/releases-manifest.json on launch and on resume, and shows an update banner at the top of the chat list when a newer version is live. Tap Update → downloads the APK via the pinned client, SHA-256-verifies against the manifest field, then launches Android's package installer. Android refuses to install an APK signed by a different key than the running app, so a tampered manifest can at worst waste bandwidth. Same signing key as 0.2.2; installs over it. Requires the one-time Install-unknown-apps grant on first update, which Android shims via Settings.",
+ "files": {
+ "hermes-v0.3.0.apk": "77d16184ba2c26fb81b79d9e4c5f98f8bfb434690c1e6acd9b7fd5f16651a6cb"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.2.2",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Find People now accepts a phone number alongside BNS names, labels, npubs and hex pubkeys. Type +15551234567 (or 0015551234567) and Hermes hashes it locally and asks the relays for the matching kind:30078 phone-claim event — the raw number never leaves the device. Shows the Hermes identity with a verified ✓ when the owner's phone-claim carries a valid Telegram attestation, same shape as the Address Book contact matches. The input also switches to a numeric phone keyboard the moment it looks like a phone number. Same signing key as 0.2.1; installs over it.",
+ "files": {
+ "hermes-v0.2.2.apk": "b46da998caa57a6923bb4ab305c5ab1cff88fbf38f4028eb2cecceb77140f1a6"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.2.1",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Fix: real-time inbox delivery. 0.2.0 held a persistent inbox REQ at sign-in, but mobile WebSockets drop constantly (wifi/cellular transitions, OS backgrounding, keep-alive timeouts) and the REQ wasn't replayed on reconnect — the relay forgot our filter and inbound kind:1059 wraps stopped arriving until the next 15-min WorkManager poll or next outgoing send kicked a catch-up. RelayConnection now remembers active subscriptions and replays them on every onOpen, so a recipient sees messages the moment they land on the relay. Also pins the initial `since` to max(lastSeenAt, now - 7d), bounding the reconnect replay. Updates DeliveryPrefs.lastSeenAt on each decrypted wrap so background delivery stays in step.",
+ "files": {
+ "hermes-v0.2.1.apk": "014438c3c1a92dd0108d994ae411ed27bf2de58c735614498e86d11462066d61"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.2.0",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "User profiles via Nostr kind:0 metadata. Hermes now subscribes to kind:0 events for every peer you have a thread with (plus everyone you search for or discover via phone / BNS lookup) and shows their chosen display_name throughout — chat list, chat screen top bar, BNS search results, address-book matches — instead of the truncated npub placeholder. Falls back to the npub when a peer has not published a profile. Same signing key as 0.1.0; installs over it. Room schema bumped from v1 to v2; existing local chat history is wiped on first launch (destructive migration — acceptable for pre-1.0).",
+ "files": {
+ "hermes-v0.2.0.apk": "647b9569cc287a8b5cec6135d4697ab0f7d3ce6cb431ee8f0d4a5f4b5a10dcd7"
+ }
+ },
+ {
+ "id": "hermes-android",
+ "product": "Hermes for Android",
+ "version": "0.1.0",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 26,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7",
+ "changes": "Initial Android release. Native Kotlin + Jetpack Compose client for the Hermes messenger (end-to-end encrypted DMs over Nostr NIP-17, identity derived from a BIP-39 mnemonic sealed in the Android Keystore). Byte-equal interop with Theseus desktop and the hermes.x web messenger. Features: sign in with recovery phrase or create new, find people by BNS name or label with live search against the public dl.silentmode.st index, address-book lookup (phone hashes only; raw numbers never leave the device), Telegram phone-verify handoff via hermes.x/verify, WorkManager background delivery with 15-minute poll fallback (de-Googled, no Firebase required), optional FCM data push via the hermes-push gateway. hermes.x TLS pinned client-side against the on-chain tls record. Not shipped through Google Play — sideload or install via F-Droid.",
+ "files": {
+ "hermes-v0.1.0.apk": "509073191575b1dfec1b6e44ee63245585def9702d5ca5eca1ab92e0c65e34d4"
+ }
+ },
+ {
+ "id": "theseus-navigator",
+ "product": "Theseus Navigator",
+ "version": "0.3.106",
+ "date": "2026-10-22",
+ "platform": "win-x64",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Sidebar strip's AI engine picker is now a styled overlay instead of a plain native menu. Each enabled engine is listed with its own icon (bundled color-coded tiles for ChatGPT, Grok, Gemini and Phind join the existing favicons); the current engine is highlighted with the acid accent bar and a check; a bottom row jumps to Search settings. Clicking an engine selects it as the default and opens it in the left panel in one click.",
+ "files": {
+ "TheseusNavigator-0.3.106-portable.exe": "2c299e31c812d8903f601d9c4b54385fc7335ebfc69690765f48dbcf7039b79e",
+ "TheseusNavigator-Setup-0.3.106.exe": "26a5752e5e7107d2718087c8831eeee3c9c25e6af61f5a3d94b537a16e5a18e4"
+ }
+ },
+ {
+ "id": "theseus-navigator",
+ "product": "Theseus Navigator",
+ "version": "0.3.105",
+ "date": "2026-10-22",
+ "platform": "win-x64",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Left-column slot grid: 3-column fixed cells with visible empty drop targets, so every link gets a slot and you can pin any link to the exact position you want. Dragging onto a filled cell swaps positions; dropping on an empty cell pins the link there. Unpinned links continue to flow top-to-bottom through free cells. The Ariadne.X home card switches from the terracotta pottery sketch (designed for cream backgrounds) to the brand kit's ivory-on-transparent bust, which reads cleanly on the dark card.",
+ "files": {
+ "TheseusNavigator-0.3.105-portable.exe": "4f33911b89ce66dd9def001aa9f0780d6504dc72f01569eeb8f716ea10a56200",
+ "TheseusNavigator-Setup-0.3.105.exe": "689ac51fb8bab4464e698eed02349880afc4623c7d8937c0d105a497d89252ec"
+ }
+ },
+ {
+ "id": "theseus-navigator",
+ "product": "Theseus Navigator",
+ "version": "0.3.104",
+ "date": "2026-10-22",
+ "platform": "win-x64",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "WizardConnect \"Open in wallet\" links work again on dapps that open them in a new window with rel=\"noreferrer\" (Potidaea and many others): the click now opens Aegis's pairing approval instead of doing nothing. The same link inside an embedded frame is still refused, so a frame cannot pair in the page's name.",
+ "files": {
+ "TheseusNavigator-0.3.104-portable.exe": "529c9af549b268560c23ad3b751c4c4975188653d176ed6c3a93142958e3b757",
+ "TheseusNavigator-Setup-0.3.104.exe": "e9ca514df34cc057f0bda68fd3f4a212b93a50fab3798d95ed4530d091ca5cea"
+ }
+ },
+ {
+ "id": "theseus-navigator",
+ "product": "Theseus Navigator",
+ "version": "0.3.103",
+ "date": "2026-10-22",
+ "platform": "win-x64",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Right-click on a sidebar panel (WhatsApp, Telegram, LLMs, add-on panels like Hermes) now opens a native menu with Copy image / Save image as / Open link in new tab / Copy / Back / Forward / Reload. Previously the sidebar views had no context-menu listener attached, so sites like WhatsApp Web that intercept right-click left you with no way to copy an image. Hermes mark in the sidebar strip tightens its viewBox so the V-fold and wings fill the icon instead of sitting in whitespace (envelope body partially visible).",
+ "files": {
+ "TheseusNavigator-0.3.103-portable.exe": "845f96702657044fde12e4fd98ef1e1a4475040422f269603691f191857690ff",
+ "TheseusNavigator-Setup-0.3.103.exe": "782e55f798fdc160b4965db8ceabc4b93e9fbd5627834f52ab2ff1b29f13afc5"
+ }
+ },
+ {
+ "id": "theseus-navigator",
+ "product": "Theseus Navigator",
+ "version": "0.3.102",
+ "date": "2026-10-22",
+ "platform": "win-x64",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Home-page polish. The Hermes.X Silent Mode card now renders Hermes's new blue envelope mark (the brand kit updates that landed on master between 0.3.101 and now). The left-column slot grid switches from stretched 3-equal-column cells to fixed 100px cells anchored to the column's left edge, so icons sit in a tight desktop-style grid instead of drifting inside wide cells. Sidebar strip tweak also carried: Hermes icon size up from 20 to 26px to balance the new mark's negative space.",
+ "files": {
+ "TheseusNavigator-0.3.102-portable.exe": "c3047cb514b982085063f0d147567bbf8e0de8f80a951e6ee86410338a9ab0fb",
+ "TheseusNavigator-Setup-0.3.102.exe": "8c2a24b5c76054ba89046b67b194e6b039bd2d00c93c814ce9888997c5053cc9"
+ }
+ },
+ {
+ "id": "ariadne-resolver",
+ "product": "Ariadne Resolver (Windows)",
+ "version": "0.1.13",
+ "date": "2026-10-01",
+ "platform": "win-x64",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Every subsystem is now individually switchable and reports its own state. New endpoint http://127.0.0.1/api/status returns a full state report (daemon version + startup + policy + permitted TLDs + ports + upstream + gateway; index size + warm-start source; per-source enabled/lastAttempt/lastSuccess/lastError/counters for snapshotHttps + electrumWss + perQueryLookup + diskCache + localApi). C:\\ProgramData\\Ariadne\\policy.json extended with a `sources..enabled` block (hot-reloaded every 5 s alongside the collision policy) -- flip any source off to isolate a path or measure without it. Turning localApi off returns 503 with a hint pointing at the config file. Turning diskCache off skips writing bns-name-snapshot.json AND skips reading it at warm-start. Turning snapshotHttps off skips the HTTPS refresh; electrumWss off skips the WSS refresh; perQueryLookup off skips the per-query /api/name/ fallback. Includes 0.1.12 (orphan-safe upgrade + /api/tlds + /api/name/:n + /api/registry). Upgrades in place.",
+ "files": {
+ "AriadneResolver-Setup-0.1.13.exe": "a16d10759efede4412f4fdb52d59424bf56bbb258bb002ab930f4a5a5aef8a41"
+ }
+ },
+ {
+ "id": "ariadne-android",
+ "product": "Ariadne for Android",
+ "version": "0.59",
+ "date": "2026-10-25",
+ "platform": "android",
+ "minSdk": 21,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
+ "changes": "Settings restructure. Search engine and LLM engine (renamed from AI engine) moved to the top and rendered as a vertical list of per-provider rows with real favicons. Resolution, Ariadne's Thread and Names & Certificates folded into one Thread section with sub-blocks (On-device / System-wide / Other networks). Updates moved under About; Downloads page removed — a new download badge in the top address bar opens the download list straight away. Tabs button moved from the top row to the bottom nav (order now AI, Saved, +, Tabs, Settings). Appearance uses compact colour swatches instead of wide labelled pills. Back button pinned to the top-right edge of Settings. Toggles no longer serve a cached page on reload (added no-store headers), and clicked rows flip visually before the reload fires. Same signing key; installs over 0.58.",
+ "files": {
+ "ariadne-v0.59.apk": "d4c6d0106cf8f5b3f01c0c78986e202abb7fb23743d63eddca667acb6c7a1014"
+ }
+ },
+ {
+ "id": "ariadne-android",
+ "product": "Ariadne for Android",
+ "version": "0.58",
+ "date": "2026-10-25",
+ "platform": "android",
+ "minSdk": 21,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
+ "changes": "Custom Settings icons — eleven gold-stroke SVG line icons (Resolution, Ariadne's Thread, Search engine, AI engine, Names & Certificates, Appearance, Updates, Privacy, Downloads, Maintenance, About) replace the platform emoji glyphs. Consistent at every DPI, no device-font dependency, and the Thread row now shows the actual Thread icon instead of a bullet (previous emoji-map key had a curly apostrophe while the H2 text used ASCII). Same signing key; installs over 0.57.",
+ "files": {
+ "ariadne-v0.58.apk": "629ffec0bca76dbf1e6858196ecf202367d6ea121ba7515c830bd9b2397d6e07"
+ }
+ },
+ {
+ "id": "ariadne-android",
+ "product": "Ariadne for Android",
+ "version": "0.57",
+ "date": "2026-10-24",
+ "platform": "android",
+ "minSdk": 21,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
+ "changes": "Short-tap a LIVE row card and the start page opens the asset's page on CoinSpectrum — the live feed Ariadne already pulls prices from. Long-press still fires the Edit / Move up / Move down / Delete sheet; the tap and hold wire takes precedence over the tag's default navigation whenever the finger moved or the hold timer fired. Same signing key; installs over 0.56.",
+ "files": {
+ "ariadne-v0.57.apk": "a978cfe989112bef1fd69c44d1884a7e9341b1991be75f7bb7217282c5b95dc5"
+ }
+ },
+ {
+ "id": "ariadne-android",
+ "product": "Ariadne for Android",
+ "version": "0.56",
+ "date": "2026-10-23",
+ "platform": "android",
+ "minSdk": 21,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
+ "changes": "Aurora-polaris Thread chip in the address bar — the resolver chip loses its outline and rides a gold/teal plasma glow. Matched 36×36 dp top-row buttons. Favorites defaults rewritten to on-chain BNS names (hello.bch, Sia.Coin, Pithos.Sia, bitcoincash.org) plus the Silent Mode .x apps (Ariadne.X, Sirius.X, Prometheus.X, Hermes.X), with a new Settings → Maintenance → Reset favorites to defaults. Same signing key; installs over 0.55.",
+ "files": {
+ "ariadne-v0.56.apk": "a851b80e292677b289b54ba1ae7e662b8768d53feb46c1f96a35da331ec980a6"
+ }
+ },
+ {
+ "id": "ariadne-android",
+ "product": "Ariadne for Android",
+ "version": "0.47",
+ "date": "2026-10-22",
+ "platform": "android",
+ "minSdk": 21,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
+ "changes": "In the Grid tab-switcher, the + New tab card is now the same size as a real tab card instead of collapsing to roughly half the height. The two sit on the same baseline so the grid reads as one surface. Same signing key; installs over 0.46.",
+ "files": {
+ "ariadne-v0.47.apk": "ee2726c722e6221227cd1451c2d3a9c89385899c25022c0de0922705e2401a89"
+ }
+ },
+ {
+ "id": "ariadne-android",
+ "product": "Ariadne for Android",
+ "version": "0.46",
+ "date": "2026-10-22",
+ "platform": "android",
+ "minSdk": 21,
+ "signed": true,
+ "signingAuthority": null,
+ "signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
+ "changes": "Hold any card on the LIVE row for a moment, then drag it between other cards to reorder — same gesture FAVORITES already use. The new order persists across restarts. Short tap-and-hold still opens the edit menu. Internally, a store-side unit test harness (63 assertions covering drag bounds, corrupt-prefs fallback, round-trip persistence) now guards this and the FAVORITES reorder from regressing. Same signing key; installs over 0.45.",
+ "files": {
+ "ariadne-v0.46.apk": "bdb3c26848cdba343ee5918bd657b3e00ece96925ac9873fce3c76c20c5a5bb2"
+ }
+ },
+ {
+ "id": "pithos-desktop",
+ "product": "Pithos",
+ "version": "0.3.26",
+ "date": "2026-10-08",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "In Theseus, Send on Telegram and Send on WhatsApp open Theseus's own Telegram and WhatsApp apps at their share screens; the share menu shows the real Telegram, WhatsApp and X icons. The sidebar's Full page button is gone (the panel's Maximize does the same).",
+ "platform": "win-x64",
+ "files": {
+ "Pithos-0.3.26-portable.exe": "951d4e814f8f8a3e729b8dc63ae69b848dff106a1517c0ca12347985567e32b0",
+ "Pithos-Setup-0.3.26.exe": "e3daef6fedb72c63e893b7851108ed87a08c74ccdf6e1207bb218bda88f57e0a"
+ }
+ },
+ {
+ "id": "pithos-desktop",
+ "product": "Pithos",
+ "version": "0.3.26",
+ "date": "2026-10-08",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "In Theseus, Send on Telegram and Send on WhatsApp open Theseus's own Telegram and WhatsApp apps at their share screens; the share menu shows the real Telegram, WhatsApp and X icons. The sidebar's Full page button is gone (the panel's Maximize does the same).",
+ "platform": "linux-x64",
+ "files": {
+ "Pithos-0.3.26-x86_64.AppImage": "0562f5b82f8788ef44451babfb9d8799eb635ae56aece0072db18f851f40917f",
+ "Pithos-0.3.26-amd64.deb": "0aecfdccbdc30194b3d0918a7f157d82bffd37a56d88a2de9a0015df666e0334",
+ "Pithos-0.3.26-linux-x64.tar.gz": "2329527f53fa3726a9ec44a1859f235c7bb59953f9c15b71d1c5081fb5414954"
+ }
+ },
+ {
+ "id": "pithos-desktop",
+ "product": "Pithos",
+ "version": "0.3.25",
+ "date": "2026-10-07",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Share opens a menu: copy the public link, open it, or send it on X, Telegram or WhatsApp. Shared links open on a page with a preview and a Download button. Pithos fills wide windows, a renamed user updates in every open view, and pithos.sia in Theseus asks for the vault PIN after a lock and reopens once it is unlocked.",
+ "platform": "win-x64",
+ "files": {
+ "Pithos-0.3.25-portable.exe": "81a498b0586263c7795643dc8cce96c96d8d9233714913d13b81ab14706f21eb",
+ "Pithos-Setup-0.3.25.exe": "958e962dc068a5032d1d9f18aa818b67160a93bb5e45b551fc5cf700357d4def"
+ }
+ },
+ {
+ "id": "pithos-desktop",
+ "product": "Pithos",
+ "version": "0.3.25",
+ "date": "2026-10-08",
+ "signed": false,
+ "signingAuthority": null,
+ "changes": "Share opens a menu: copy the public link, open it, or send it on X, Telegram or WhatsApp. Shared links open on a page with a preview and a Download button. Pithos fills wide windows and a renamed user updates in every open view.",
+ "platform": "linux-x64",
+ "files": {
+ "Pithos-0.3.25-x86_64.AppImage": "1b0eabd1bb0a28435b05658cf3f5a2dcefd029b65c79dbec80e9e9e1ae135df7",
+ "Pithos-0.3.25-amd64.deb": "04e36e9451ab1addcc6a179dbf527fb2689e019beb7d7edb02fd0d85501c626b",
+ "Pithos-0.3.25-linux-x64.tar.gz": "1aea475630e8722c563e132ffa922190da08aec1ab09bedece0fbfbdfecfc307"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/releases/dl-index.html b/releases/dl-index.html
index da35a4d..fa583aa 100644
--- a/releases/dl-index.html
+++ b/releases/dl-index.html
@@ -60,44 +60,44 @@
mirror cannot change what you check against here.
-
Theseus Navigator 0.3.110
-
Windows 64-bit · unsigned · 2026-10-23 · Silent Mode home cards switch from a stacked icon-above-title-above-sub layout to a horizontal one: a left stack holds the icon and the title, the description sits on the right with left-aligned text and up to three lines. Card backgrounds drop to a 55% rgba with a 10 px backdrop blur so the wallpaper reads through. Home tagline updated: Names that live on the Bitcoin Cash chain becomes Names that live on decentralized blockchain. The address-bar tip now points at hello.bch by name.
+
Theseus Navigator 0.3.114
+
Windows 64-bit · unsigned · 2026-10-25 · Add-on update poller now fires 30 s after chrome is ready instead of 30 s after whenReady, so its network fetches don't compete with tab restore in the first few seconds. Nothing user-visible — a startup-polish nudge for slower connections. The 4 h repeat interval is unchanged.
-
-
1e26fdeaa64b46d58dcb5912760a75c59fccaa527cf464928a21291a77604490
+
+
ad863e1d966a964da9b264fd442ebd77b5fc5bdc9ff664cb0740522c176791d2
-
-
8d31c55ac41e69779d49cba2b06beb692816ed3f9ef2468a4b458196f088dff9
+
+
0821d701d161609269453553f9b38e801cc071d646f1946c26945ad8b6376e90
-
Theseus Navigator 0.3.109
-
Windows 64-bit · unsigned · 2026-10-23 · Right-click on a tab now shows a Save page as submenu with PDF and Image (PNG) items. PDF uses the browser printing pipeline (A4, prints backgrounds, respects CSS @page); PNG saves the visible viewport. Both open a save dialog with a filename derived from the tab title or hostname and register the file in the downloads popup. The Claude connector design doc is now hosted at theseus.x/dev/claude-connector/DESIGN-claude-connector.md so readers do not have to leave for the forge.
+
Theseus Navigator 0.3.113
+
Windows 64-bit · unsigned · 2026-10-25 · AI picker now shows the real brand favicons. ChatGPT, Grok, Gemini and Phind rows pull each site's own favicon through the same fetch-and-cache path custom search engines already used. The placeholder color-letter tiles from 0.3.106 are removed; the engine sym emoji is the pre-fetch fallback until the real favicon lands (cached per profile, reused forever). Perplexity keeps its existing bundled icon.
-
-
b0d1c4acb4c010aec6ffcb9371fd29818000e967f39f07d621cc52c8d44ed3a6
+
+
53447c9c11633813ca13741744a07f518555518be66456525f25dd8af8d97bd3
-
-
540abd41ccc253974c97aad9c7309ad870cf1e315c090dcad142f71435fef914
+
+
72424dd7c08659f7e94afa8c84b1b395031e2a45ae48a3d812982d302ccbe4c7
-
Theseus Navigator 0.3.108
-
Windows 64-bit · unsigned · 2026-10-23 · Home page: hero mark sits in front of the Theseus Navigator wordmark inside a translucent rounded panel, so the identity stays readable on any wallpaper (the tag line and the hint got matching pill backings). Left-column slots widened from a fixed 3-col grid in a 280 px panel to an auto-fill grid in a 360-440 px panel, so about five columns of 72 px tiles fit instead of three.
+
Theseus Navigator 0.3.112
+
Windows 64-bit · unsigned · 2026-10-24 · AI picker chevron now opens the picker reliably (the small chevron badge on the sidebar AI button was a nested button inside the main AI button; Chromium flattened the invalid HTML so the chevron click never fired). Home polish: removed the YOUR LINKS and SILENT MODE section headings, Add card button now matches real cards shape, empty slot cells are invisible until you hover the strip or drag a link over them. Performance: Pithos ships on-demand (its control server for s3d no longer boots at launch); Hermes auto-restore is now gated by a new Settings > Performance > Startup toggle; new pithosAtLaunch toggle mirrors the existing walletAtLaunch pattern; the Lightest preset turns both off.
-
-
a6cd0f04a141aa26ef7dd38e71170e841800ae993e926910e76099cf430b2e0f
+
+
c13c29d8b02003efce0753f9d20666dc6c169fd0f9ddee91768c9dd579c1348a
-
-
d84baf7a909a856dc664848573c26bcc049f067e9878513670718530b1874bc8
+
+
db63166053ddb25c2e38433b1a2f73c36df910990558efed0f5a8bedc9d92f0e
@@ -112,12 +112,12 @@
-
Ariadne for Android 0.53
-
Android 5.0+ (API 21) · self-signed release key · 2026-10-24 · Settings page is now a short menu of 11 labeled sections — one row-card per topic, with its icon and chevron. Tap a row to see that section on its own with a ‹ Settings back link; the URL hash remembers where you are, so toggles inside a section no longer bounce you back to the top. Same signing key; installs over 0.52.
+
Ariadne for Android 0.59
+
Android 5.0+ (API 21) · self-signed release key · 2026-10-25 · Settings restructured. Search engine and LLM engine (renamed from AI engine) moved to the top as a vertical list of per-provider rows with real favicons. Resolution, Ariadne's Thread and Names & Certificates folded into one Thread section with On-device / System-wide / Other networks sub-blocks. Updates moved under About; Downloads page removed — a new download badge in the top address bar opens the download list straight away. Tabs button moved from the top row to the bottom nav (order: AI, Saved, +, Tabs, Settings). Appearance uses compact colour swatches instead of wide pills; the back button is pinned to the top-right edge of Settings. Toggles no longer serve a cached page on reload, and clicked rows flip visually before the reload fires. Same signing key; installs over 0.58.
-
-
6adedfd3f0e4c5742b79ac25f4575e03d2b0f8819785667e22f3a7d8eaad1c48
+
+
d4c6d0106cf8f5b3f01c0c78986e202abb7fb23743d63eddca667acb6c7a1014
Signing certificate — SHA-256 (the same key signs every future release)
@@ -126,12 +126,22 @@
-
Ariadne for Android 0.52
-
Android 5.0+ (API 21) · self-signed release key · 2026-10-24 · The updater now polls ariadne.x — manifest + APKs live in the s3://bns/ariadne/ bucket the on-chain record points to, routed through the public BNS gateway so a raw HTTPS client reaches them without the Ariadne resolver being up. Download page link also moved from silentmode.st to ariadne.x. Older clients keep polling the silentmode.st mirror; the manifest at both URLs stays in sync until the fleet has rolled over. Same signing key; installs over 0.51.
+
Ariadne for Android 0.58
+
Android 5.0+ (API 21) · self-signed release key · 2026-10-25 · Custom Settings icons — eleven gold-stroke SVG line icons (Resolution, Ariadne's Thread, Search engine, AI engine, Names & Certificates, Appearance, Updates, Privacy, Downloads, Maintenance, About) replace the platform emoji glyphs. Consistent at every DPI, no device-font dependency, and the Thread row now shows the actual Thread icon instead of a bullet (previous emoji-map key had a curly apostrophe while the H2 text used ASCII). Same signing key; installs over 0.57.
-
-
da3655262114cd0505b69c9833ea129c2808dc3fbb8c0137abd60bad15959615
+
+
629ffec0bca76dbf1e6858196ecf202367d6ea121ba7515c830bd9b2397d6e07
+
+
+
+
+
Ariadne for Android 0.57
+
Android 5.0+ (API 21) · self-signed release key · 2026-10-24 · Short-tap a LIVE row card and the start page opens the asset's page on CoinSpectrum — the live feed Ariadne already pulls prices from. Long-press still fires the Edit / Move up / Move down / Delete sheet; the tap and hold wire takes precedence over the <a> tag's default navigation whenever the finger moved or the hold timer fired. Same signing key; installs over 0.56.
+
+
+
+
a978cfe989112bef1fd69c44d1884a7e9341b1991be75f7bb7217282c5b95dc5
Signing certificate — SHA-256 (the same key signs every future release)
@@ -140,12 +150,12 @@
-
Ariadne for Android 0.51
-
Android 5.0+ (API 21) · self-signed release key · 2026-10-24 · Launcher switches to the pottery variant — same bust silhouette in warm terracotta on navy. New Settings → Downloads row opens the system Downloads app so saved files are easy to find. AI engine picker is now a styled list with each provider's real favicon + host, and the bottom-nav AI button carries the current engine's favicon too. Closing a tab from inside the switcher no longer flashes the homepage even for a frame (persistent navy host swaps the inner view atomically). Settings page sections are more clearly separated. Toggling the Tab switcher layout now shows a toast on save. Same signing key; installs over 0.50.
+
Ariadne for Android 0.56
+
Android 5.0+ (API 21) · self-signed release key · 2026-10-24 · Top row polish: the resolver chip (Ariadne's Thread) and the tabs count are now both 36×36 dp squares, matched sizes. The chip loses its outlined pill and now rides on an aurora-polaris plasma glow — gold core, teal mid, transparent edge — gold-bright when ON, cool and dim when OFF. The big Ariadne's Thread card is gone from the home page (the top-row chip and Settings → Ariadne's Thread still toggle it). Favorites defaults replaced with the on-chain ecosystem: Row 1 hello.bch, Sia.Coin, Pithos.Sia, bitcoincash.org · Row 2 Ariadne.X, Sirius.X, Prometheus.X, Hermes.X. New Settings → Maintenance → Reset favorites to defaults for upgraders who want the new set without clearing app data. Same signing key; installs over 0.55.
-
-
8e5b091bf48ffe17047f91e517e9ca66e8ff4c4cdcb1a074f7b928654eae2b45
+
+
a851b80e292677b289b54ba1ae7e662b8768d53feb46c1f96a35da331ec980a6
Signing certificate — SHA-256 (the same key signs every future release)
diff --git a/releases/index.html b/releases/index.html
index 8fff63f..70408a3 100644
--- a/releases/index.html
+++ b/releases/index.html
@@ -110,6 +110,20 @@
+
+
Ariadne for Android 0.59
+
Android 5.0+ (API 21) · self-signed release key · 2026-10-25 · Settings restructured. Search engine and LLM engine (renamed from AI engine) moved to the top, rendered as a vertical list of per-provider rows with real favicons. Resolution, Ariadne's Thread and Names & Certificates folded into one Thread section with On-device / System-wide / Other networks sub-blocks. Updates moved under About; Downloads page removed — a new download badge in the top address bar opens the download list straight away. Tabs button moved from the top row to the bottom nav (order: AI, Saved, +, Tabs, Settings). Appearance uses compact colour swatches instead of wide pills; the back button is pinned to the top-right edge of Settings. Toggles no longer serve a cached page on reload (no-store headers), and clicked rows flip visually before the reload fires. Same signing key; installs over 0.58.
+
+
+
+
d4c6d0106cf8f5b3f01c0c78986e202abb7fb23743d63eddca667acb6c7a1014
+
+
+
Signing certificate — SHA-256 (the same key signs every future release)
+
46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c
+
+
+
Ariadne for Android 0.58
Android 5.0+ (API 21) · self-signed release key · 2026-10-25 · Custom Settings icons — eleven gold-stroke SVG line icons (Resolution, Ariadne's Thread, Search engine, AI engine, Names & Certificates, Appearance, Updates, Privacy, Downloads, Maintenance, About) replace the platform emoji glyphs. Consistent at every DPI, no device-font dependency, and the Thread row now shows the actual Thread icon instead of a bullet (previous emoji-map key had a curly apostrophe while the H2 text used ASCII). Same signing key; installs over 0.57.
@@ -118,10 +132,6 @@
629ffec0bca76dbf1e6858196ecf202367d6ea121ba7515c830bd9b2397d6e07
-
-
Signing certificate — SHA-256 (the same key signs every future release)
-
46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c
-