Summary
本次合并的若干安全加固与正确性修复,覆盖会话树完整性、审批记忆、skill 校验、凭证轮换鲁棒性、搜索面板等。
Use case / 背景
- 会话树:
/fork 引入父子链接后,delete_session 未维护该不变量,删父会话会让子会话从树视图消失。
- 审批记忆:会话级
[a] Remember this session 需按工具/主机维度记忆,避免跨工具审批泄漏或主机重复确认。
- skill 校验:
context: fork/subagent 未声明 agent 的 skill 在加载/安装/校验三处校验不一致,会落盘后才在热加载时被拒。
- 凭证轮换:网络错误与上下文超长错误的分类有误,导致无意义的模型降级与账号冷却。
Proposed solution(修复点)
- 会话树完整性:
delete_session 删除父会话前 UPDATE sessions SET parent_session_uuid = NULL WHERE parent = ?,子会话重新成为根。
/sessions 切换:切换前持久化当前会话快照(persist_current=true),避免丢失自上次 AI 回合以来的 cwd/上下文。
/export 鲁棒性:命令历史表格转义反引号;历史查询失败显式报错而非静默空表。
- skill 元数据统一校验:抽出
parse_skill_metadata 作为加载/安装/校验的唯一入口,拒绝 context=fork/subagent 未声明 agent 的 skill。
- 审批记忆加固:
Tool trait 增加 approval_key 默认方法;web_fetch 按主机记忆审批;approval memory 增加 tool_name 维度防跨工具泄漏。
- 搜索面板:
SearchSelect 结果按相关性排序(精确 > 前缀 > 子串),并支持单键 Action。
- 凭证轮换:
FailureKind 分类修正——上下文超长(context_length_exceeded 等)返回 None(不可恢复);网络错误直接上报、不再降级主模型。
Acceptance criteria
Additional information
涉及 aish-session、aish-shell、aish-skills、aish-llm(types/approval_memory/rotation)、aish-tools(web_fetch)、aish-ui(select)。归入 0.4.0 milestone。
Summary
本次合并的若干安全加固与正确性修复,覆盖会话树完整性、审批记忆、skill 校验、凭证轮换鲁棒性、搜索面板等。
Use case / 背景
/fork引入父子链接后,delete_session未维护该不变量,删父会话会让子会话从树视图消失。[a] Remember this session需按工具/主机维度记忆,避免跨工具审批泄漏或主机重复确认。context: fork/subagent未声明agent的 skill 在加载/安装/校验三处校验不一致,会落盘后才在热加载时被拒。Proposed solution(修复点)
delete_session删除父会话前UPDATE sessions SET parent_session_uuid = NULL WHERE parent = ?,子会话重新成为根。/sessions切换:切换前持久化当前会话快照(persist_current=true),避免丢失自上次 AI 回合以来的 cwd/上下文。/export鲁棒性:命令历史表格转义反引号;历史查询失败显式报错而非静默空表。parse_skill_metadata作为加载/安装/校验的唯一入口,拒绝context=fork/subagent未声明agent的 skill。Tooltrait 增加approval_key默认方法;web_fetch按主机记忆审批;approval memory 增加tool_name维度防跨工具泄漏。SearchSelect结果按相关性排序(精确 > 前缀 > 子串),并支持单键 Action。FailureKind分类修正——上下文超长(context_length_exceeded等)返回None(不可恢复);网络错误直接上报、不再降级主模型。Acceptance criteria
/sessions仍可见(reparent 为根)/sessions切换不丢失当前 cwd/export表格对含反引号/管道的命令渲染正确,历史查询失败有明确报错context=fork/subagent无agent的 skill 在安装/校验时即被拒Additional information
涉及
aish-session、aish-shell、aish-skills、aish-llm(types/approval_memory/rotation)、aish-tools(web_fetch)、aish-ui(select)。归入 0.4.0 milestone。