Releases: lingion/AIaW
Release list
v2.0.8.12
v2.0.8.12 全量变更日志
本 Release 覆盖 v2.0.8.11..8ddcbb2 的全部提交,包含长对话渲染、Android 键盘布局、数据库兼容、启动崩溃与运行时防护修复。
全部提交
dd97a8e(2026-06-14) fix(tool): improve tool output scroll and layout38783b8(2026-06-26) Merge PR #2: fix(mobile): replace q-dialog/q-menu context menu with manual overlaybe2a231(2026-06-26) fix: 15 bugs — safe-area, stream abort, dialog cleanup, offline banner, touch targets, menu positioning, color overrides, composer keyboard, empty state, platform fetch, drawer persistencee7e2978(2026-06-27) fix(critical): white screen on launche1d4508(2026-06-27) fix(db): migrate stale v70+ IDB from old dexie-cloud-addon side effect29396dd(2026-06-27) fix(workspacePage): drop q-page-container wrapper around router-view — Quasar accepts router-view as direct q-layout child; wrapper prevented child rendering96d4533(2026-06-27) fix(workspacePage): restore missing useUiStateStore import — was deleted in refactor causing ReferenceError at setup, which silently broke entire workspace view rendering8477eef(2026-06-27) fix(plugins/keyboard): three crash fixes — plugins.ts:574/615 read [0] without undefined guard (mcp with empty title → Cannot read properties of undefined); App.vue offline banner misfires on Android WebView 101 (navigator.onLine always false); Capacitor Keyboard.resizeOnFullScreen + EdgeToEdge = gray rectangle between input and soft keyboard on focus4918fb5(2026-06-27) fix(send): use-dialog-input contents[0] crash + BUGHUNT logs in send/streamb135ae1(2026-06-28) docs: add social preview banner08bd9b8(2026-06-29) docs: add links to online operation guide and technical write-up2312a9e(2026-06-29) docs: add SEO badges at top of README864974d(2026-07-18) perf(dialog): add render window to prevent long-conversation DOM freeze9137e49(2026-07-18) fix(dialog): bump version to 2.0.8.12, guard template access, keyboard gate00b3524(2026-07-18) fix(dialog): prevent q-page scroll on keyboard to stop dock flying42e90de(2026-07-18) fix(css): smooth keyboard transition on composer dock35f70f8(2026-07-18) fix(css): fixed positioning for composer to prevent keyboard fly-up950972d(2026-07-18) fix(css): remove --sab padding from fixed composer9e177d0(2026-07-18) fix(css): prevent page scroll on keyboard focusd573ae7(2026-07-18) fix(dialog): use 100dvh instead of pageFhStyle for page height33575b8(2026-07-18) fix(android): anchor composer above keyboard in CSS pixels395e6a7(2026-07-18) fix(android): update dock after keyboard is fully shown8d14d54(2026-07-18) fix(search): guard incomplete messages in conversation search7156efe(2026-07-18) fix(runtime): harden malformed persisted data pathsd0d4cf5(2026-07-18) fix(dialog): guard malformed branch tree during navigationc27eede(2026-07-18) fix(search): initialize result state before async load8ddcbb2(2026-07-18) fix(android): repair legacy database records before render
产物
- Android debug APK:
app-debug-v2.0.8.12.apk - 本次 APK 由提交
8ddcbb2构建 - 保留旧数据库,启动时自动修复旧版 IndexedDB 中缺失或损坏的
msgTree、msgRoute、contents和 assistant 设置字段
v2.0.8.11 — fix: useUiStateStore missing import in WorkspacePage
Root cause of v2.0.8.11 "broken": Kerry's be2a231 introduced workspaceDrawerOpen (P0 NitroRCr#10) backed by useUiStateStore(), but the corresponding import line was never added. On any navigation into a workspace, WorkspacePage's setup threw ReferenceError: useUiStateStore is not defined and silently failed to mount — leaving the host <router-view> empty, so DialogView (and every other workspace child route) rendered as a blank white screen.
This release: cherry-picks be2a231's 15 bug fixes intact and restores the one missing import line. Diff vs v2.0.8.10: +1 line.
diff --git a/src/pages/WorkspacePage.vue b/src/pages/WorkspacePage.vue
+ import { useUiStateStore } from 'src/stores/ui-state'
Verified on emulator (Chrome 101 WebView, AVD Pixel_4_API_30, fresh install + adb force-stop + reload):
- 6s cold start → WorkspacePage renders
- Dexie populate creates default workspace + assistant on first launch
- 0 console errors, 0 runtime exceptions
- Welcome modal triggers correctly
- Left main drawer + right workspace drawer both mount
Source: tag v2.0.8.11 → commit 27e654b → 814797c (v2.0.8.10)
Build: debug keystore, JDK 21, gradle assembleDebug.
AIaW v2.0.8.10
AIaW v2.0.8.10
Fixes
Mobile context menu (Android):
- Replace
q-dialog/q-menulong-press menu with manual fixed-position overlay (Teleport to body). Fixes multiple Capacitor Android WebView bugs where the menu backdrop wouldn't close properly or clicks silently failed. - Remove
:tocondition binding onq-item. The previouslongPressFired-driven:toreactivity was unreliable in WebView, sometimes leaving all dialog items rendered as plain<div>with no router-link — clicking did nothing. Now navigation is manual via$router.push(). - Use
@click.self/@touchstart.selfon the backdrop so only direct backdrop taps close the menu. Previously@touchstart.preventon the backdrop was callingpreventDefault()on bubbled child events, blocking click synthesis on the menu buttons. - Remove
v-close-popupfromMenuItem. The directive only works withq-dialog/q-menuand was silently swallowing clicks on our manual overlay menu.
Status bar / notch overlap (Android):
- Add
padding-top: env(safe-area-inset-top)to the app header. - Add
visualViewport.offsetTopJavaScript fallback that sets a--satCSS variable for devices whose WebView doesn't exposeenv(safe-area-inset-top)reliably.
Verified
- Long-press dialog → menu opens ✓
- Tap Rename → rename dialog appears with current title ✓
- Tap backdrop → menu closes ✓
- No more silent click failures after menu interactions ✓
AIaW v2.0.8.9 verified
Changes
- Image Cache: Images in conversations are now cached to IndexedDB. After image URLs expire, images remain visible and downloadable.
- Fix: Branch Context Leak: When editing a message and resending to a new branch, pending/streaming assistant messages from the previous branch are no longer leaked into the next model request.
- Tool Output Scroll + Layout:
Call Parameters/Call Resultwere rebuilt into fixed-height vertical scroll boxes with smoother inner-to-outer scroll handoff on mobile, plus cleaner spacing inside the tool card.
AIaW v2.0.8.8 verified
v2.0.8.7 → v2.0.8.8 变更汇总
🆕 新功能
- Provider 自动匹配:切换模型时自动识别所属 provider,不再需要手动选择
- 统一 GlobalToast:全部 47 处旧 notify 迁移到新 toast 系统
🐛 修复
- 移动端长按菜单卡死:q-dialog 替代 q-menu context-menu
- 对话/助手/工作区排序:按最近活跃时间排序
- console.log 清理
♻️ 重构
- DialogView 拆分为 5 个 composable(2364→1250 行,-47%)
- 补回 route watcher(#genTitle / #copyContent / ?goto= 深链)
- 补回键盘快捷键(滚动/切换分支/重新生成/编辑/聚焦)
- 补回 regenerate() 函数(拆分时丢失)
- 深链失败时自动清除 hash/query
📝 其他
- README 重写(EN + ZH 双语)
- 清理仓库:删除二进制包、过时文档、废弃测试、Docker 文件
AIaW v2.0.8.7 verified
统一 GlobalToast:全部 47 处旧 notify 替换为新 toast 系统,支持交互按钮
AIaW v2.0.8.6 verified
v2.0.8.6.verified
图片沙箱
- 全屏SVG沙箱 + Pivot-Point双指缩放 + tap退出
- 保存至 Documents/AiaW/
- 自定义手势Toast:绿勾/红叉 + 上划秒删
导出对话
- HTML/Markdown双通道选择
- HTML: md-preview DOM + KaTeX CSS内联 + throwOnError:false
- 文件名: AIaW_消息前8字_时间戳
全局Toast系统
- useToast composable + GlobalToast组件
视觉修复
- QRadio/QBtn强制primary
- warning/amber CSS封杀
AIaW v2.0.8.5 verified
v2.0.8.5 — 图片交互全面重写
新功能
- 点击图片 → 全屏沙箱预览(
handleImageClickCapture拦截 IMG 点击) - JS 双指 Pivot-Point 缩放(以手指中点为圆心,0.5x-5x,不跳动)
- 单指拖拽平移(缩放 >1x 时生效)
- 点击空白区域退出(位移 <5px tap 检测)
- 保存图片到本地(
AIaW_Img_20260602_115230.png时间戳命名) - 单轮对话 TXT 导出
修复
- 彻底根除 Android WebView 长按图片震动死锁(
-webkit-touch-callout:none) - 禁用 medium-zoom(
noImgZoomIn:true,移动端与自定义手势冲突) - 纯 SVG 内联图标,不依赖 Material Icons 字体库
技术细节
ViewImageDialog.vue: useDialogPluginComponent + 纯 JS TouchEvent 矩阵变换MessageItem.vue:@click.capture拦截 md-preview 内 IMG 元素app.scss:pointer-events:auto + touch-callout:noneon img- JDK 17 兼容(AGP VERSION_21→VERSION_17)
AIaW v2.0.8.3 verified
Summary
- preserve the active dialog chain during normal sends so stale history does not replace live context
- regenerate cross-platform app icons from one canonical source and fix Android adaptive icon composition
- bump the app version to 2.0.8.3.verified
Test plan
- pnpm --dir "/Users/lingion/AIaW" test
- pnpm --dir "/Users/lingion/AIaW" run sync:android-shell
- pnpm --dir "/Users/lingion/AIaW" run check:packaging-shell
AIaW v2.0.8.2 verified
Summary
- fix stale historyChain overriding the live chain during normal sends
- add regression coverage for continuing a conversation after branching history exists
- ship verified 2.0.8.2 build and source update
Test plan
- pnpm --dir "/Users/lingion/AIaW" test
- pnpm --dir "/Users/lingion/AIaW" run check:packaging-shell
- GRADLE_USER_HOME="$HOME/.gradle" pnpm --dir "/Users/lingion/AIaW" run build:android:canonical
- verified repaired APK behavior in app conversation flow