Skip to content

Releases: vascoguita/yapyap

v0.2.0

Choose a tag to compare

@yapyap-bot yapyap-bot released this 29 Oct 21:17
84778b0

0.2.0 (2026-10-29)

⚠ BREAKING CHANGES

  • extensions: call plugins extensions everywhere, with no backward compatibility (#427)
  • extensions: call plugins extensions everywhere, with no backward compatibility

Features

  • accounts: show each account's WhatsApp profile photo in the sidebar (#368) (72ef2ee)
  • assistant: suggest and send replies from a bar beneath the open chat (#413) (4391e09), closes #407
  • autostart: start at login in the Flatpak through the Background portal (#453) (6d70878), closes #234
  • call-recorder: record calls from YapYap's own extension, after the user agrees (#444) (7a59d92), closes #393
  • call-recorder: suggest keys to record and to stop (#451) (f5b4763), closes #443
  • extensions: ask before an extension uses each server on this computer (f28a0e3)
  • extensions: let a command suggest keyboard keys, given when nothing else has them (#447) (07f5061), closes #443
  • i18n: move UI text to a JSON catalog with typed, checked translations (#375) (e5a76e9)
  • i18n: style YapYap's windows with logical properties, and check it in lint (#425) (f47ae91), closes #111
  • marketplace: browse and install verified plugins from a Marketplace tab (e6ae199), closes #388
  • marketplace: browse, install and update verified plugins in a Marketplace tab (#418) (c784556)
  • marketplace: build, check and sign the plugin index, and publish it with the package site (#415) (76392a1), closes #387
  • marketplace: carry each version's release notes to the website and the update (#448) (194683a), closes #434
  • marketplace: show screenshots of each extension on its page, served beside the index (#450) (776da47), closes #434
  • marketplace: stop installed copies of pulled versions and say why (0297d26), closes #388
  • plugins: give plugin panels YapYap's look by default (#397) (463616c)
  • plugins: install from Install in YapYap links, through the marketplace and consent (#421) (52e3a8b), closes #389
  • recording: choose where call recordings are saved, in Settings (#445) (00c0212), closes #442
  • recording: record a call, after the user's click and consent, to a local file (#429) (4843157), closes #392
  • recording: record calls as WAV when Settings says so (#454) (cd329c8), closes #442
  • shortcuts: change or remove the keys of an extension's commands (#452) (dd3253c), closes #443

Bug Fixes

  • accounts: look for the account photo again each minute until found (#382) (6532427)
  • adapter: tell the account's own messages by today's markers (#411) (c03e123)
  • composer: give WhatsApp's view the keyboard before typing a draft into it (#438) (636c29d), closes #376
  • extensions: ask before using each local server, and let approved ones like Ollama answer (#455) (c04576e)
  • extensions: check record keys, which TypeBox let through unchecked (e20b793), closes #426
  • extensions: keep typed settings when the window closes, and say whether they were saved (#433) (38ced35), closes #431
  • extensions: let local-network extensions reach Ollama and other origin-checking local servers (3bc52f7)
  • extensions: list a marketplace extension's permissions as a list, and style its search (4f4ce8a), closes #385
  • extensions: trust a new first-party signing key (182f27c), closes #426
  • i18n: keep dots out of catalog keys, nesting setting texts by section (#416) (87a8d91), closes #374
  • marketplace: handle arrow keys on the tabs, and check installs by the listing and record (ff76484)
  • notifications: withdraw an account's notifications once nothing is unread (#399) (21af142)
  • recording: size a WAV file through the handle it is written by (73e0fb8), closes #442
  • recovery: count GPU crashes once per run, and none while quitting (#380) (3053436)
  • recovery: stop the memory watchdog when its renderer is destroyed (#378) (ee4cdf4)
  • release: sign macOS builds when the Developer ID certificate is set (#405) (f912aea)

Performa...

Read more

v0.2.0-beta.2

v0.2.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:49
c04576e

What's Changed

  • fix(extensions): ask before using each local server, and let approved ones like Ollama answer by @vascoguita in #455

Full Changelog: v0.2.0-beta.1...v0.2.0-beta.2

v0.2.0-beta.1

v0.2.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Oct 13:02
6d70878

What's Changed

  • fix(adapter): tell the account's own messages by today's markers by @vascoguita in #411
  • docs(adr): decide the plugin marketplace: a signed index, reviewed plugins and install links by @vascoguita in #414
  • fix(i18n): keep dots out of catalog keys, nesting setting texts by section by @vascoguita in #416
  • docs(adr): decide how YapYap records calls: its own capture, the user's click and consent by @vascoguita in #417
  • feat(marketplace): build, check and sign the plugin index, and publish it with the package site by @vascoguita in #415
  • docs(marketplace): a submission form, a review checklist and a takedown process for plugins by @vascoguita in #420
  • feat(marketplace): browse, install and update verified plugins in a Marketplace tab by @vascoguita in #418
  • docs(site): list the marketplace's verified plugins, each with an Install in YapYap link by @vascoguita in #422
  • build(deps): bump the npm-minor-and-patch group with 3 updates by @dependabot[bot] in #412
  • test(e2e): say how far the app got when no WhatsApp page appears by @vascoguita in #424
  • feat(plugins): install from Install in YapYap links, through the marketplace and consent by @vascoguita in #421
  • feat(i18n): style YapYap's windows with logical properties, and check it in lint by @vascoguita in #425
  • docs(contributing): explain the Scorecard checks that stay below 10 by @vascoguita in #423
  • docs(site): a user-first home page: WhatsApp, supercharged by @vascoguita in #409
  • refactor(extensions)!: call plugins extensions everywhere, with no backward compatibility by @vascoguita in #427
  • feat(assistant): suggest and send replies from a bar beneath the open chat by @vascoguita in #413
  • fix(extensions): keep typed settings when the window closes, and say whether they were saved by @vascoguita in #433
  • docs(guide): get started in six steps, linked from the home page and the welcome window by @vascoguita in #437
  • feat(recording): record a call, after the user's click and consent, to a local file by @vascoguita in #429
  • fix(composer): give WhatsApp's view the keyboard before typing a draft into it by @vascoguita in #438
  • docs(readme): show the main window, and say what YapYap does today by @vascoguita in #446
  • docs(metainfo): show the website's screenshots in software centers by @vascoguita in #435
  • feat(call-recorder): record calls from YapYap's own extension, after the user agrees by @vascoguita in #444
  • feat(recording): choose where call recordings are saved, in Settings by @vascoguita in #445
  • test(bench): report idle memory by process, and recalibrate the budgets to today's runners by @vascoguita in #436
  • feat(marketplace): carry each version's release notes to the website and the update by @vascoguita in #448
  • feat(extensions): let a command suggest keyboard keys, given when nothing else has them by @vascoguita in #447
  • feat(call-recorder): suggest keys to record and to stop by @vascoguita in #451
  • test(e2e): wait for a new account's page as long as for the first, with diagnostics by @vascoguita in #449
  • feat(marketplace): show screenshots of each extension on its page, served beside the index by @vascoguita in #450
  • feat(shortcuts): change or remove the keys of an extension's commands by @vascoguita in #452
  • feat(recording): record calls as WAV when Settings says so by @vascoguita in #454
  • feat(autostart): start at login in the Flatpak through the Background portal by @vascoguita in #453

Full Changelog: v0.1.2-beta.3...v0.2.0-beta.1

v0.1.2-beta.3

v0.1.2-beta.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Oct 23:41
a39a958

What's Changed

  • build(deps): update fast-uri to 3.1.9 for four advisories by @vascoguita in #403
  • fix(release): sign macOS builds when the Developer ID certificate is set by @vascoguita in #405
  • ci(release): attach signed provenance to releases and pin the deploy tool by hash by @vascoguita in #406
  • docs(adr): put AI suggestions in a bar YapYap draws beneath the chat by @vascoguita in #408

Full Changelog: v0.1.2-beta.2...v0.1.2-beta.3

v0.1.2-beta.2

v0.1.2-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Oct 21:54
795b64e

What's Changed

  • fix(recovery): stop the memory watchdog when its renderer is destroyed by @vascoguita in #378
  • fix(recovery): count GPU crashes once per run, and none while quitting by @vascoguita in #380
  • fix(accounts): look for the account photo again each minute until found by @vascoguita in #382
  • test(e2e): keep local runs off the developer's Wayland desktop by @vascoguita in #395
  • feat(plugins): give plugin panels YapYap's look by default by @vascoguita in #397
  • fix(notifications): withdraw an account's notifications once nothing is unread by @vascoguita in #399
  • ci(release): notarize macOS builds with an App Store Connect API key by @vascoguita in #401

Full Changelog: v0.1.2-beta.1...v0.1.2-beta.2

v0.1.2-beta.1

v0.1.2-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Oct 12:20
e5a76e9

What's Changed

  • ci(release): find the release PR to clean up, and reach GitHub through GraphQL alone by @vascoguita in #367
  • feat(accounts): show each account's WhatsApp profile photo in the sidebar by @vascoguita in #368
  • ci(deps): bump the actions-minor-and-patch group with 3 updates by @dependabot[bot] in #370
  • build(deps): bump the npm-minor-and-patch group with 7 updates by @vascoguita in #371
  • test(e2e): attach a timeline of every page load to a failed test's report by @vascoguita in #373
  • feat(i18n): move UI text to a JSON catalog with typed, checked translations by @vascoguita in #375

New Contributors

Full Changelog: v0.1.1...v0.1.2-beta.1

v0.1.1

Choose a tag to compare

@yapyap-bot yapyap-bot released this 25 Oct 21:24
9c58663

0.1.1 (2026-10-25)

Features

  • docs: show how often YapYap was downloaded, on the site and in the README (#357) (9c96218)

Bug Fixes

  • autostart: take over the login entry only when its program is gone (#365) (e277b87)
  • packaging: check only YapYap's pacman package after deploying (#359) (ada1772)
  • permissions: let WhatsApp ask for the microphone and camera (#364) (e9beee8)

v0.1.1-beta.1

v0.1.1-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Oct 17:38
e277b87

What's Changed

  • feat(docs): show how often YapYap was downloaded, on the site and in the README by @vascoguita in #357
  • docs: describe YapYap as released, with its changelog and package repositories by @vascoguita in #355
  • fix(packaging): check only YapYap's pacman package after deploying by @vascoguita in #359
  • test(e2e): attach the app's log to failed tests, and name the pages when WhatsApp never opens by @vascoguita in #361
  • fix(permissions): let WhatsApp ask for the microphone and camera by @vascoguita in #364
  • fix(autostart): take over the login entry only when its program is gone by @vascoguita in #365

Full Changelog: v0.1.0...v0.1.1-beta.1

v0.1.0

Choose a tag to compare

@yapyap-bot yapyap-bot released this 25 Oct 15:29
0833204

0.1.0 (2026-10-25)

Features

  • accounts: add a quick access panel that stays on top (#287) (c19bb63), closes #86
  • accounts: rename, recolor, turn off and remove accounts (#244) (051bc43), closes #58
  • accounts: run each account's whatsapp in its own view (#242) (0ce73a1), closes #56
  • accounts: run several whatsapp accounts side by side (#243) (07c3b2a), closes #56
  • accounts: run whatsapp in the account's own session partition (#240) (260c8f0), closes #56
  • accounts: show and reset each account's site permissions (#266) (448314b), closes #77
  • accounts: switch accounts from a sidebar with unread badges (#252) (1d37b39), closes #57
  • adapter: read the whatsapp page state from versioned landmarks (#207) (5289070), closes #32
  • ai-assistant: ask a model on this computer, and only that in local-only mode (#324) (34be801), closes #103
  • ai-assistant: bundle the plugin and take the user's API key in its panel (#316) (ecabb69)
  • ai-assistant: rewrite the user's draft in the style they choose (#325) (7aa62e6), closes #105
  • ai-assistant: stream replies from Claude through a provider interface (#314) (6e65221)
  • ai-assistant: stream replies from OpenAI and compatible servers (#315) (9155f73)
  • ai-assistant: suggest replies in chats the user allows, after showing what is sent (#317) (69db0c6), closes #104, #107
  • ai-assistant: summarize the open chat in the panel, after showing what is sent (#326) (024e177)
  • appearance: light, dark and system themes applied live (#160) (92212f3), closes #47
  • appearance: set the interface scale in settings and turn off pinch zoom (#260) (6fd1497), closes #81
  • appearance: zoom WhatsApp in 5% steps and remember the level (#166) (8cfb0eb), closes #48
  • autostart: start yapyap at login on windows, macos and linux (#236) (af3e18c), closes #65
  • badge: show the unread chat count on the app icon (#238) (61f7846), closes #64
  • brand: add the YapYap app icon with raster exports (bf2d812)
  • brand: visual identity with app icon, palette and brand page (#131) (089f577)
  • calls: keep whatsapp call windows inside their account (#255) (b182dab), closes #67
  • calls: let calls use the microphone and camera on every platform (#285) (2695c8f), closes #78
  • capture: screen-sharing picker for Windows, X11 and older macOS (#162) (a8e8f9a), closes #146
  • capture: show a running screen share, with a way to stop it (#256) (1822584), closes #161
  • chat: open a chat with an international number from the account menu (#215) (7e43580), closes #80
  • chrome: serve app chrome from app:// with a typed bridge and an About window (#148) (83918f0), closes #30, #52
  • connectivity: mark the window offline and reconnect by itself (#153) (21249d3), closes #34
  • crash: name crashes by a stable fingerprint and keep crash files bounded (36119e1)
  • crash: offer opt-in local crash reports after an unclean exit (#209) (bfbf387), closes #39
  • crash: record a performance trace from the Help menu, on request (#309) (574c198), closes #113
  • customization: add custom CSS and JavaScript for advanced users (#286) (2cdd219), closes #72
  • desktop: minimal hardened app with Electron E2E harness (#123) (b040975)
  • desktop: open a hardened window on WhatsApp Web (980bd6f)
  • display: choose the wayland or x11 display backend on linux (#208) (f03e885), closes #41
  • downloads: a Downloads window with progress, pause and resume (#280) (61ffd2d), closes [#74](https:...
Read more

v0.1.0-beta.1

v0.1.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 21:35
0d2542e

What's Changed

  • docs: architecture decisions and community health files by @vascoguita in #120
  • build: monorepo scaffold with strict TypeScript, linting and coverage gate by @vascoguita in #121
  • ci: protect master and release tags with rulesets by @vascoguita in #122
  • feat(desktop): minimal hardened app with Electron E2E harness by @vascoguita in #123
  • ci: automated dependency and pinned-version updates by @vascoguita in #124
  • ci: release automation with release-please by @vascoguita in #125
  • fix(release): start versioning at 0.1.0 by @vascoguita in #127
  • ci: security scanning, dependency audit and license compliance by @vascoguita in #128
  • test: mutation testing gate with Stryker by @vascoguita in #129
  • docs: VitePress documentation site on GitHub Pages by @vascoguita in #130
  • feat(brand): visual identity with app icon, palette and brand page by @vascoguita in #131
  • build: package every format with hardened fuses and Linux desktop integration by @vascoguita in #132
  • test: smoke-test every installed package format by @vascoguita in #133
  • fix(deps): drop sprintf-js from the build toolchain by @vascoguita in #139
  • test: add property-based tests with fast-check by @vascoguita in #140
  • build(flatpak): build, lint and smoke-test a Flatpak bundle by @vascoguita in #141
  • ci: build, smoke-test and publish every package on release by @vascoguita in #142
  • ci: test the AUR package on pull requests and publish it on release by @vascoguita in #143
  • feat(security): create every window through one hardened factory by @vascoguita in #144
  • feat(security): route every link through one navigation policy by @vascoguita in #145
  • feat(security): deny-by-default permissions with per-zone allowlists by @vascoguita in #147
  • feat(chrome): serve app chrome from app:// with a typed bridge and an About window by @vascoguita in #148
  • test: make the version property test and RPM smoke installs reliable by @vascoguita in #151
  • feat(recovery): show a recovery screen instead of a blank window by @vascoguita in #149
  • feat(identity): present the bundled Chromium as desktop Chrome by @vascoguita in #152
  • feat(connectivity): mark the window offline and reconnect by itself by @vascoguita in #153
  • fix(ci): export signing variables only when a release has the secret by @vascoguita in #156
  • feat(recovery): reload crashed or hung renderers and fall back to safe graphics by @vascoguita in #154
  • feat(settings): versioned, self-repairing settings store by @vascoguita in #157
  • feat(settings): keyboard-accessible settings window with restart notice by @vascoguita in #158
  • feat(recovery): graphics safe mode and hardware video decoding setting by @vascoguita in #159
  • feat(appearance): light, dark and system themes applied live by @vascoguita in #160
  • feat(capture): screen-sharing picker for Windows, X11 and older macOS by @vascoguita in #162
  • feat(recovery): clear cache or reset the WhatsApp session from the Account menu by @vascoguita in #163
  • feat(instances): single-instance lock with validated chat-link forwarding by @vascoguita in #164
  • feat(window): restore window state, orderly shutdown and an auto-hiding menu bar by @vascoguita in #165
  • feat(appearance): zoom WhatsApp in 5% steps and remember the level by @vascoguita in #166
  • fix(security): refuse to start without Chromium's sandbox, and explain why by @vascoguita in #171
  • test(clipboard): prove image paste and clipboard privacy end to end by @vascoguita in #167
  • feat(downloads): save attachments safely into the downloads folder by @vascoguita in #168
  • test(clipboard): retry the paste until Windows hands WhatsApp focus by @vascoguita in #175
  • docs(site): serve the site at yapyap.guita.org and rename the app ID to match by @vascoguita in #174
  • docs(readme): show the OpenSSF Best Practices badge by @vascoguita in #176
  • fix(capture): list screens and windows separately in the picker by @vascoguita in #181
  • test(media): prove videos, GIFs and voice notes play with sound in every package by @vascoguita in #169
  • fix(privacy): stop Chromium fetching spelling dictionaries, and prove no telemetry by @vascoguita in #170
  • fix(links): route a popup navigation that Windows never reports as will-navigate by @vascoguita in #189
  • feat(logs): rotating, redacted local logs and copy diagnostics by @vascoguita in #177
  • fix(links): route a popup that navigated before its listeners existed by @vascoguita in #192
  • feat(settings): export settings to a file and import them back by @vascoguita in #187
  • ci(automation): mint short-lived tokens from a GitHub App instead of a long-lived PAT by @vascoguita in #190
  • build: update pinned versions by @yapyap-bot[bot] in #191
  • docs(site): mark planned features, add help links and a reference page by @vascoguita in #179
  • docs: credit Ensita for supporting YapYap's development by @vascoguita in #183
  • ci(sonar): analyze with SonarQube Cloud and pass the strict quality gate by @vascoguita in #186
  • ci(perf): cold-start and idle-memory budgets with a nightly benchmark by @vascoguita in #173
  • test(links): report what the popup did when its link never leaves the app by @vascoguita in #193
  • docs(install): explain the first launch of unsigned macOS and Windows builds by @vascoguita in #197
  • fix: clear the SonarQube Cloud backlog by @vascoguita in #195
  • ci(sonar): require the sonarqube cloud check and show its badges by @vascoguita in #199
  • ci(release): pause the release pr until releases are enabled by @vascoguita in #201
  • feat(sponsors): link GitHub Sponsors from the repo, site and About window by @vascoguita in #198
  • test(e2e): wait for the page's scripts before clicking popup buttons by @vascoguita in #204
  • docs(readme): list what sponsorships pay for by @vascoguita in #206
  • feat(adapter): read the whatsapp page state from versioned landmarks by @vascoguita in #207
  • docs(adr): use the sonar way for agentic ai quality gate by @vascoguita in #203
  • ci: check only what a pull request's changes can affect by @vascoguita in #212
  • feat(display): choose the wayland or x11 display backend on linux by @vascoguita in #208
  • feat(recovery): reload the whatsapp renderer when it outgrows its memory limit by @vascoguita in #213
  • feat(crash): offer opt-in local crash reports after an unclean exit by @vascoguita in #209
  • test(e2e): wait for the fake page's scripts before sharing or pasting by @vascoguita in #216
  • feat(updates): decide the update policy from the install channel and evidence by @vascoguita in #214
  • chore(git): merge docs/progress.md with the union driver by @vascoguita in #217
  • feat(chat): open a chat with an international number from the account menu by @vascoguita in #215
  • feat(plugin-sign): sign and verify plugin folders with ed25519 by @vascoguita in #219
  • feat(privacy): keep chats unread while yapyap is hidden by @vascoguita in #218
  • docs(progress): keep...
Read more