Repository navigation
Releases: Avithegod2010/WA-archiver
Releases · Avithegod2010/WA-archiver
Release list
WA Archiver v1.9.1
Added
- Selective restore — "Choose chats…" next to Pull & restore (and in
the snapshot history): the backup is pulled + decrypted first, then a
picker lists its chats (search, select all/none, live summary) and only
the chosen ones are restored — existing chats merge as before. Full
restore remains the default path. - PDF transcript export — "PDF document" in the chat export menu
renders a clean A4 transcript (date separators, sender colors, reply
quotes, reactions, starred/edited/pinned flags, media placeholders) and
prints it through the system pipeline — Android print framework ("Save
as PDF") in the APK, print dialog on desktop. Zero dependencies. - One-tap APK download — the update-available toast gains a "Download
APK" action that fetches the latest universal APK straight from GitHub
Releases (silent failure handling, "View release" kept). - Voice-note transcription sync — on-demand whisper transcripts now
travel inside the encrypted backup: the server producer attaches
transcriptfields (from its AppSetting cache), the device producer
from its localStorage cache; both importers restore them
cross-transport (server ⇄ device). Absent field = no-op for old
envelopes. Import results reporttranscriptsRestored. - Monthly digest — new Insights section: pick any month and get a
recap card (total messages, active days, busiest day, sent-by-you %,
top emoji, top 3 chatters, fun fact) with its own 1080×1440 shareable
PNG. Server mode falls back to a lite digest from existing stats. - Snapshot file import (offline restore path) — "From file…" next to
Pull & restore imports any previously saved encrypted.wasyncsnapshot
straight from disk with just the sync passphrase — no cloud config needed.
Completes the loop: cloud snapshot → Save file → share by any channel →
import here. Incremental delta files are rejected with guidance (their
chain lives in the cloud). - Snapshot comparison viewer — "Compare" in the snapshot history shows
what differs between a stored snapshot and the live cloud copy: chat and
message totals on both sides, chats only in the snapshot, chats added
since, and the biggest per-chat message deltas — read-only, nothing is
restored.
Fixed
- Update-check toast teaser now skips markdown headers/link definitions and
shows real release-note content.
Internationalization
- Insights dashboard and Media Hub fully localized: 141 new keys across
en / hi / ur / mr / ta (KPIs, sections, tabs, toasts, empty states). - Snapshot file import / compare viewer / selective restore / PDF export /
update download / monthly digest strings localized — 59 new keys across
en / hi / ur / mr / ta.
Full changelog: v1.9.0...v1.9.1
WA Archiver v1.9.0
Added
- Scheduled-message delivery on device (APK) — pending scheduled
messages are mirrored to native Android notifications (AlarmManager via
Capacitor Local Notifications): the reminder fires at deliverAt even when
the app is closed, tapping it dispatches immediately and opens the chat.
POST_NOTIFICATIONS / SCHEDULE_EXACT_ALARM / RECEIVE_BOOT_COMPLETED wired
in the manifest; the in-app 20 s poller stays the web delivery path. - One-bundle multi-device transfer (QR / zip pairing) — "Move to
another device" in the Cloud sync card packs the provider config + sync
passphrase into one portable pairing code, shown as a QR (in-app camera
scanner on Android/Chromium via BarcodeDetector) plus a copy-paste code.
The receiving device adopts the config and pulls the SAME encrypted
.wasync bundle — the last roadmap checkbox. - Google Drive refresh-token flow — a real OAuth authorization-code
exchange replaces paste-a-token on the web build: enter your own Google
Cloud client id/secret once, hit "Connect Google Drive", consent, and the
app lands back with a long-lived refresh token. Access tokens rotate
themselves before every provider call (ensureFreshGdriveToken, with the
same-origin/api/gdrive-oauthexchange proxy and a direct-endpoint
fallback for the APK). - S3 multipart uploads — encrypted envelopes larger than 8 MB stream to
S3-compatible buckets in 8 MiB parts (CreateMultipartUpload → UploadPart →
CompleteMultipartUpload, with orphan-part abort on failure), server proxy
and device direct paths alike; >100 MB backups no longer ride a single PUT. - Incremental .wasync pushes — optional hash-chained snapshot deltas:
timestamped snapshots upload only chats whose content hash changed since
the previous snapshot (full snapshot every 5th push; chain files survive
pruning; restoring any delta walks its parent chain and merges up to a
self-contained backup automatically). - Selective per-chat cloud sync — "Sync only selected chats" filter so
envelopes carry just the chats you pick (empty selection = everything). - Snapshot picker: save to file — any cloud snapshot can now be
downloaded as an encrypted .wasync file (off-site copies, air-gapped
transfers) in one click, no decryption needed. - Round-trip for reactions + reply threads — the .txt export now
re-encodes reactions as real-WhatsApp-stylereacted 👍 to "…"rows and
replies as[Replied to Sender: quote]prefixes; the parser folds them
back onto the right messages on import (device + server paths, with a
bounded SQL fallback for quotes of pre-existing rows). The Verify
round-trip report gained reaction / reply fidelity counters. - Insights share card — one tap renders the dashboard headline numbers
(messages, chats, media, words, top chatters, busiest days, emoji
leaderboard, fun facts) as a 1080×1440 PNG; downloads locally or opens
the native share sheet when available. - Folder auto-rules — define title-regex rules in the folder manager;
every new import is filed into the matching folder automatically (first
match wins, case-insensitive, retro-fits existing chats when a rule is
added). - i18n pass — 28 new string keys for the v1.8/1.9 surfaces (cloud sync,
transfer, folder rules, snapshots) translated into हिन्दी, اردو, मराठी and
தமிழ் alongside English. - Play badge prep — README carries a ready-to-uncomment Google Play
badge and the app gains aPLAY_LISTING_URLconstant; flip it when the
Play listing is live.
Full changelog: v1.8.1...v1.9.0
WA Archiver v1.8.1
Added
- Cloud sync providers: Google Drive & S3 — the storage-adapter layer
now has three interchangeable providers behind the same test / push /
pull UI: WebDAV (as before), Google Drive v3 (paste an OAuth access
token, optional destination folder) and any S3-compatible bucket
(AWS SigV4 signing — works with AWS, Cloudflare R2, Backblaze B2, Minio).
The provider only ever stores AES-GCM ciphertext. - Auto-push on import/export — optional "sync automatically after
every import/export" toggle in the Cloud sync card, so the cloud copy is
never stale. The sync passphrase is kept device-local only when enabled;
every background push toasts once when it lands. - Multi-file snapshot history — every push can also store a
timestampedwa-archiver-YYYYMMDD-HHMMSS.wasyncsnapshot; the oldest
beyond the keep-count are pruned automatically, and any snapshot can be
restored from a picker in the Cloud sync card (WebDAV, Drive and S3 all
support list + delete through the adapter). - Message changes panel — per-chat "Message changes" tool listing
every local edit and unsend with before / after content and a timestamp
(the audit trail behind the tombstones). Stored on-device, clearable. - Export round-trip self-test — "Verify round-trip" in the export
menu rebuilds the chat's .txt and re-parses it through the standard
WhatsApp parser, then reports type-fidelity (e.g. location → location,
contact → contact, deleted → deleted) with a per-type breakdown and an
honest list of known losses. - New launcher shortcuts — long-press the app icon to jump straight
to the Media hub or Saved Messages (alongside Search, Import and
Insights). - CI release notes — versioned releases now append a "Full changelog"
compare link (vPrev…vNew) under the CHANGELOG section, and the README
carries a build-status badge.
Changed
- Device-mode .txt export reaches full parity — a new
DataClient.getChatTranscript()merges pending scheduled sends into the
transcript (their delivery time becomes the message time, flagged
"[Scheduled for …]"), so the APK's per-chat and multi-chat .txt exports
are byte-compatible with the server route's output (scheduled rows were
previously web-only).
Full changelog: v1.8.0...v1.8.1
WA Archiver v1.8.0
Added
- Encrypted backups — optional passphrase on JSON backups. Downloads are
sealed with AES-GCM-256 (PBKDF2-SHA256, 310k iterations, random salt+IV)
entirely in the browser via WebCrypto; the passphrase never leaves the
device. Restoring an encrypted file asks for the passphrase and rejects
wrong ones without touching the database. - Smart collections — three auto-computed, read-only chat folders:
🖼️ Media (chats with media), ⏱️ Active this week, 📊 Biggest (top 5 by
volume). No setup; they update live with the chat list. - Per-chat themes — pick any of the 17 themes for a single chat from the
Customize (wallpaper) popover. While that chat is open the whole look
recolors; switching away snaps back to the app theme. Reset any time.
Changed
mediaCountnow counts every media-typed message, even when the file
wasn't included in the export ("not in export" tiles) — the Media smart
collection and chat badges reflect what the chat actually contains.- Chat tools → "Media gallery" opens the global Media Hub (shared albums +
date-range filter) pre-filtered to the current chat.
Fixed
/api/media-indexskipped media-typed messages without a stored file, so
demo/synthetic media never appeared in the global Media Hub.
WA Archiver v1.7.0
Added
- Play Store App Bundle (.aab) — tag releases now also build a signed
bundleReleaseartifact (WA-Archiver-<tag>-release.aab), ready to
upload to Google Play. Play does the per-device splitting (ABI, density,
language) itself, so Play installs download only what they need. - Auto-update checker — the app reads the GitHub Releases API (at most
once a day, localStorage-throttled) and shows a one-time
"new version available" toast with a link to the release page whenever a
strictly newer version is published. Silent on every failure path —
offline APKs never nag. - Device-mode CSV & JSON chat export — the per-chat
.csv/
.jsonexports now also work fully offline in the APK: in device
transport the file is built client-side from the on-device database with
the exact same spreadsheet schema as the server route
(idx, timestamp_iso, timestamp_local, sender, type, body, media_name, starred, edited, forwarded, pinned, reactions_summary). - Starred-messages CSV export — third button in the starred dialog,
same columns as the chat CSV so starred rows and full-chat exports can
live in one spreadsheet.
Changed
- On-demand voice transcription (~19 MB off the APK) — the two ONNX
Runtime WASM binaries are no longer bundled;public/whisper/now ships
only the transformers.js bootstrap (~0.9 MB) plus a manifest, and the
runtime fetches the matching binaries from jsDelivr on first use
(cached by the browser Cache API, so transcription still works offline
after the first run). SetWHISPER_LOCAL_WASM=1to restore the
fully-bundled offline-out-of-the-box build. The ASR model (~45 MB)
was already on-demand and is unchanged. - Media Hub: date-range filter — from/to date pickers in the toolbar
narrow the index to a period; a one-tap clear button resets it.
Added (Media Hub)
- Shared albums view — new view toggle (layers icon) re-groups the
filtered media into "albums": bursts of media shared in one conversation
split on 45-minute gaps, with cover thumbnail, chat name, date range and
item count; opening an album shows the same tile grid with multi-select,
ZIP export and the lightbox.
WA Archiver v1.6.0
Added
- Year-in-review share cards — the per-chat rewind dialog now exports a
story-sized 1080×1350 PNG card: message count hero, busiest day, top
month, longest streak, loudest voice, signature emoji and words typed —
rendered fully on-device with the same teal-gradient look as the dialog. - Starred-messages export — the starred dialog gains one-tap
.txtand.jsonexports (timestamped, sender-attributed,
filename slugged to the chat). - Three new languages — उर्दू (Urdu), मराठी (Marathi), தமிழ் (Tamil) —
the i18n layer now covers 5 languages × 277 strings with compile-time
key parity. Urdu flips the whole interface RTL automatically. - Per-ABI APK builds — releases now ship slim
arm64-v8a,
armeabi-v7aandx86_64APKs alongside the universal one;
pick the arm64 APK on any modern phone.
Changed
- APK size audit — removed the two never-used threaded ONNX Runtime
WASM variants (the app is not cross-origin isolated and pins
numThreads=1): whisper assets shrink 38 MB → 20 MB before
compression, cutting the universal APK download.
WHISPER_ALL_VARIANTS=1restores them for special builds. - Version drift fix: the in-app version now tracks package.json/gradle
(1.6.0) — the About dialog no longer lags a release behind.
WA Archiver v1.5.1
Fixed
- Server & device JSON backups keep reply relationships — backup export
now includesreplyToIdand restore writes it back (both the server
SQLite transport and the on-device OPFS transport; backup format version
bumped to 2, v1 files still restore). Reported with a full reproduction
in issue #4 — thank you, @aichance! - PDF / HTML exports render Devanagari everywhere — chats containing
Hindi/Marathi/Nepali text embed a 45 KB subset of Noto Sans Devanagari
(OFL 1.1) directly in the exported file, so print-to-PDF no longer shows
tofu boxes on machines without Hindi fonts. Latin-only exports are
unchanged and stay lightweight.
Added
- Word cloud PNG export — one tap in the word-cloud dialog re-renders
the ranked cloud to a 2160px canvas (title, word-count subtitle, footer)
and downloads it — fully on-device. - Android launcher shortcuts — long-press the app icon for Import
chats, Search messages and Insights (localized labels in English and
हिन्दी; Android 7.1+, older versions simply don't show them). - EXIF capture dates in the photo viewer — when a photo's embedded
DateTimeOriginal differs from the send time, the Lightbox shows a
"Captured" pill (e.g. an old photo re-shared years later). Reads only
the first 128 KB of the file; never network-heavy, never blocking. - हिन्दी copy pass — smoother, more natural phrasing across chat rows,
import progress and display settings; the word-cloud dialog is now fully
translated (it previously had hardcoded English). - versionCode 7.
WA Archiver v1.5.0
Added — The power pack (18 upgrades)
- Bulk chat actions — multi-select chats from the sidebar (menu, hover action or long-press): delete, favorite, pin, move to folder and combined .txt export with per-chat headers.
- Import merge & dedup — re-importing an updated export offers "Merge into existing chat": title/source-file matching, per-message fingerprint dedup, and an honest "N new, M duplicates skipped" report (device and server transports).
- Web Worker parser — export parsing + zip text extraction moved off the main thread; large imports no longer freeze the UI. Automatic main-thread fallback.
- Real voice waveforms — voice notes decode actual audio peaks (48 buckets, LRU-cached) with the classic pseudo bars as fallback; seek/keyboard behavior unchanged.
- PWA offline fallback — branded offline page + service-worker navigation fallback (network-first; cache bumped to v3).
- Android open/share intents — the APK registers for .txt/.zip VIEW, SEND and SEND_MULTIPLE; files route into the import flow via a new JS bridge.
- Theme studio — visual preview cards for all 17 themes, "save current look" custom presets (theme + accent + bubble + density + wallpaper) with apply/delete, synced through personal-data transfer.
- i18n groundwork — locale framework with English + हिन्दी (61 keys), language picker in Settings, lang attribute sync; more surfaces migrate incrementally.
- Fastest repliers — new Insights panel: median reply time per person (6h window, ≥3 samples) plus your own median.
- Landing page — "Export from WhatsApp in 60 seconds" guide + 7-question FAQ.
- Full reactions grid — the long-press popup offers all 12 reactions in a 4×3 grid with a proper focus trap.
- Videos tab in the per-chat media gallery, with duration badges.
- New shortcuts —
mopens the media hub,Ctrl/⌘+Shift+Fsearches across all chats; shortcut dialog updated. - Release automation — tag builds extract the matching CHANGELOG section into the GitHub release body.
- Accessibility — long-press sheet focus trap, real version labels, checkbox roles in select mode, spoken-form aria labels on new panels.
- versionCode 6.
WA Archiver v1.4.0
Full Changelog: v1.3.0...v1.4.0
WA Archiver v1.3.0
WA Archiver v1.5.0 "the power pack" — 18 features, fully local. APK signed, reproducible via CI. See CHANGELOG.md for the full list.