What's Changed
- chore(version): bump version to 1.1.9b1 by @zhijianma in #4589
- feat(console): reload the page when a plugin is successfully installed/uninstalled by @zhaozhuang521 in #4588
- test(integration): refactor and expand integration test suite by @yutai78786 in #4561
- fix(auth): resolve real client IP from proxy headers in auth bypass check by @xieyxclack in #4562
- fix(console): add dark mode support for pet import drop zone by @ltzu929 in #4599
- fix(skill): complete skill validatoin by @Leirunlin in #4591
- Revert "Introduce QWENPAW_AUTO_INITIALIZATION in deploy/entrypoint.sh to allow disabling auto-init " by @Osier-Yi in #4608
- fix(WeChat): fix message dedup bypass and infinite retry on expired context_token by @hongxicheng in #4576
- feat(context): add file block processing in message handler by @jinliyl in #4567
- feat(sec): add user deny info in tool response by @gnipping in #4569
- chore(test): bugfix for test_mcp.py by @lalaliat in #4609
- feta(console): persist chat input draft across page navigation by @zhaozhuang521 in #4598
- feat(cron): isolated cron job within a unified session by @lalaliat in #4602
- feat(skill): Add skill-market, refactor skill hub to httpx by @Leirunlin in #4518
- feat(tool): Add headless browser warning message by @x1n95c in #4603
- fix(WeChat): report send failure for API-initiated messages by @hongxicheng in #4597
- fix(gemini): map max_tokens to max_output_tokens and unmask validation errors by @qbc2016 in #4621
- fix(WeChat): skip subsequent sends when context_token becomes invalid by @hongxicheng in #4618
- style(console): update the skill market page by @zhaozhuang521 in #4623
- fix(qwenpaw-pet): fix pet stuck in Done state on consecutive conversations by @Osier-Yi in #4626
- fix(WeChat): replace instance-level token invalid flag with per-request meta flag by @hongxicheng in #4627
- fix(DingTalk): decode percent-encoded Chinese filenames in file sending by @hongxicheng in #4600
- style(console): header style by @zhaozhuang521 in #4654
- style(console): Environments && Security by @zhaozhuang521 in #4657
- feat(runner): enable prepend_summary in memory retrieval by @zhijianma in #4658
- feat(console): support macos download chat file and
in markdown preview by @zhijianma in #4566 - fix(console): respect configured Whisper transcription in chat by @Zachary-wW in #4601
- refactor(channel): unified access control system with per-workspace store and matrix channel refactor by @hongxicheng in #4565
- feat(QQ): add tool_guard interactive approval card with keyboard buttons by @hongxicheng in #4667
- fix(DingTalk): use sender_id prefix in DM webhook store key to avoid conversation_id suffix collision by @hongxicheng in #4665
- feat: add tauri 2.x desktop app support by @youngchan1988 in #3813
- refactor(plugins): validate
plugin.jsonvia pydantic and document type field by @rayrayraykk in #4668 - feat: coding mode by @rayrayraykk in #4578
- perf (coding): dark mode support for coding mode & fix minor bugs by @rayrayraykk in #4671
New Contributors
- @Zachary-wW made their first contribution in #4601
- @youngchan1988 made their first contribution in #3813
Full Changelog: v1.1.8.post1...v1.1.9-beta.1