v8.3.3

aldinokemal/go-whatsapp-web-multidevicev8.3.3Mar 15, 2026by aldinokemal

AI Summary

Adds archived chat filtering, fixes anti-bot blocking on link metadata fetching, resolves DB_URI parsing issues with quoted values, and prevents incorrect sender JIDs in group history sync.

Key Highlights

  • Archived boolean field added to chats table
  • New `archived` query parameter for `GET /chats`
  • Browser-like headers for link metadata fetching
  • Fix for DB_URI parsing when values are quoted
  • Skip senderless group messages during history sync

New Features

  • Archived chats filtering via query parameter
  • Browser-like headers to avoid 403/429 blocks
  • Handling of quoted values in DB_URI environment variables
  • Logic to skip group messages without participants during history sync

Full Release Notes

## What's New in v8.3.3

šŸ› ļø **Patch Release: Archived Chats Filter, Link Metadata Fix, DB_URI Quote Handling & History Sync Improvement**

This release adds archived chat filtering, fixes anti-bot blocking on link metadata fetching, resolves a DB_URI parsing issue with quoted values, prevents incorrect sender JIDs in group history sync, and updates dependencies and CI workflows.

---

## ✨ New Features

### Chat: Archived Chats Filtering (#600, fixes #598)
- **New**: Added `archived` boolean field to the `chats` table via backward-compatible schema migration
- **Filter**: `GET /chats` now supports `?archived=true/false` query parameter to isolate archived chats
- **Event Sync**: Added event listener for `events.Archive` which whatsmeow handles natively in AppStateSync and live updates
- **Domain**: Included `Archived` field in `domainChatStorage.Chat` and optional `IsArchived` pointer filter in `ChatFilter`
- **Backward Compatible**: Existing SQLite stores are upgraded automatically via `ALTER TABLE`

### Utils: Browser-Like Headers for Link Metadata (#602, closes #592)
- **Fix**: `GetMetaDataFromURL()` now sends browser-like User-Agent and Accept headers to avoid 403/429 blocks from anti-bot protections when scraping link preview metadata for `/send/link`
- **New Helper**: `newBrowserRequest()` with Chrome UA and standard browser headers
- **Applied To**: Both page fetch and image download requests
- **Tests**: Added `TestGetMetaDataFromURLSendsBrowserHeaders` test

---

## šŸ› Bug Fixes

### Database: Handle Quoted DB_URI Values (#613)
- **Fix**: Strip surrounding quotes from `DB_URI` before detecting database type, fixing the "unknown database type" error when `.env` values are quoted (e.g., `DB_URI="file:data.db?_pragma=foreign_keys(1)"`)
- **Docs**: Updated `.env.example` to remove unnecessary quotes from `DB_URI` / `DB_KEYS_URI`

### History Sync: Skip Senderless Group Messages (#609)
- **Fix**: Group messages without participant info during history sync are now skipped, preventing the group JID from being incorrectly stored as `sender_jid`

---

## šŸ”§ Technical Improvements

### Dependency Updates
- **go.mau.fi/whatsmeow**: Updated to latest version
- All Go dependencies kept up-to-date

### Build & CI
- **ARM Runner**: Switched ARM build runner from self-hosted `[ARM64]` to `ubuntu-24.04-arm`
- **Workflow Cleanup**: Normalized YAML quotes, trimmed trailing whitespace in goreleaser configs

---

## What's Changed
* feat: Add archived chats filtering (#598) by @aldinokemal in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/600
* feat(utils): add browser-like headers to metadata fetch by @aldinokemal in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/602
* fix: handle quoted DB_URI and skip senderless group history messages by @aldinokemal
* chore: update whatsmeow to latest by @aldinokemal
* ci: update workflows with ARM runner and formatting fixes by @aldinokemal

**Full Changelog**: https://github.com/aldinokemal/go-whatsapp-web-multidevice/compare/v8.3.2...v8.3.3