Releases: lingion/AIaW
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
AIaW v2.0.8.1 verified
Summary
- publish AIaW 2.0.8.1.verified source changes
- sync app version metadata to 2.0.8.1.verified / 20010
- include latest DialogView and MessageItem fixes
Notes
- Source release only in this step.