修复: 主菜单点不开 + 对话列表样式/菜单 + 标题卡死/弹回/updated_at(God 拆分遗漏 + 多 bug 合并)
主菜单点不开(7f1242c):c38cefe ErrorBoundary 嵌 transition 内部,slot 透传非元素根 → mode="out-in" 过渡卡死 → 点主菜单 URL 变页面不切换。修:ErrorBoundary 移 transition 外 + 根固定 div.error-boundary-root + display:contents 对话列表样式/菜单(God 拆分遗漏4f8f1cf+ 脉冲点5c395f4+ 审查 agent 菜单): - God 拆分样式没移子组件,AiChat scoped 不匹配子元素 → 列表/输入框样式丢。修:样式移 ConversationSidebar/ChatInput scoped + 复用抽 components.css - 脉冲点 vertical-align/margin-left 冲突。修:移除用 flex gap 统一 - 4 操作按钮窄宽撑高 → 收进"..."下拉菜单(置顶/归档/删除)+ 移除导出(后端 IPC 保留) 标题 3 重根因(8192cd2 合并): - 卡死:ensure :40 title.is_some() return,"新对话"占位永远跳过;switch need_title_regen 仅 None 不触发。修:排除"新对话"占位 + need_title_regen 含"新对话" - 弹回::121 无条件落 LLM 结果,clean_title 空兜底"新对话"覆盖 extract。修:非空非"新对话"才落 - updated_at 跳变:update_field 强制 SET updated_at=now,标题生成致时间分组跳。修:set_title 不动 updated_at CR-20/21 审查登记(待审查.md) cargo check + vue-tsc + vite build EXIT 0
This commit is contained in:
15
src/App.vue
15
src/App.vue
@@ -1,19 +1,24 @@
|
||||
<template>
|
||||
<AppLayout :is-detached="isDetached">
|
||||
<!-- 主窗口:页面内容(router-view + 页面切换过渡) -->
|
||||
<!-- ErrorBoundary 包在 transition 外层兜底:transition 的直接子节点须是真实元素根,
|
||||
若包 ErrorBoundary(slot 透传非元素根)会触发「non-element root」警告且 mode="out-in"
|
||||
过渡卡死 → 路由切换时旧页不卸载/新页不挂载 → 主菜单点了能选中但打不开内容。 -->
|
||||
<router-view v-slot="{ Component }">
|
||||
<transition name="page" mode="out-in">
|
||||
<ErrorBoundary :key="route.path">
|
||||
<ErrorBoundary :key="route.path">
|
||||
<transition name="page" mode="out-in">
|
||||
<component :is="Component" />
|
||||
</ErrorBoundary>
|
||||
</transition>
|
||||
</transition>
|
||||
</ErrorBoundary>
|
||||
</router-view>
|
||||
|
||||
<!-- 分离窗口:纯内容 -->
|
||||
<template #detached>
|
||||
<router-view v-slot="{ Component }">
|
||||
<ErrorBoundary :key="route.path">
|
||||
<component :is="Component" />
|
||||
<transition name="page" mode="out-in">
|
||||
<component :is="Component" />
|
||||
</transition>
|
||||
</ErrorBoundary>
|
||||
</router-view>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user