SuperAPI AI 工具集

session-cleanup

办公与效率

查看项目

更新于 10-21 20:24

技能介绍

Session Cleanup 是一个会话收尾清理技能,用于在宣布对话结束前,盘点并处理本次会话产生的临时资源。

用途

当本次会话创建了临时文件、启动了后台服务或打开了浏览器页面,且用户要求清理这些内容时,可在结束对话前运行本技能。报告需在结束消息之前完成。

集成分支解析

先解析一次 <integration> 并复用。取远程默认分支(git symbolic-ref --short refs/remotes/origin/HEAD,去掉远程前缀)。若该引用缺失,则使用当前检出所跟踪的分支。后续比较均使用该名称。

盘点

列出本次会话实际做过的事,分为五组:

  1. 本次会话创建的路径。
  2. 本次会话启动的后台进程和服务,含进程 ID 及该进程绑定的端口。
  3. 本次会话打开的浏览器页面。
  4. 工作区中未提交和未跟踪的路径。
  5. 来源不明的路径、进程和页面。

将每项分类为:唯一未提交内容、会话启动的后台服务、会话打开的浏览器页面、可丢弃的临时文件,或用户既有状态。来源不明者视为唯一未提交内容。

在停止任何内容、关闭页面或删除任何内容之前,先展示分类后的清单。

保留

对每个未提交路径,与集成分支比较:

git diff <integration> -- <path>

git show <integration>:<path>

工作区文件以及对话中已加载的副本都不是该比较。某段内容同时出现在对话和工作区中、但在集成引用中缺失,即为唯一未提交内容。

空差异意味着恢复该路径不会丢失内容,恢复它无需丢弃确认。非空差异则保留,直到用户明确确认丢弃。任何丢弃之前,先将唯一内容复制到删除集之外的目录,并在报告中列出该目录。后续删除环节不会进入该目录。

用户要求保留的文件是交付物,留在工作区。

停止

在保留之后,对本次会话为已完成任务启动的每个后台进程或服务执行停止。停止所记录的进程 ID。该进程绑定的端口仅用于校验同一进程;若端口现由其他进程绑定,则该进程继续运行。确认所记录的进程 ID 已消失。持有页面的浏览器继续运行,其未使用的页面在下一步关闭。

用户要求保留的服务继续运行,报告需列出该服务及停止方法。

本次会话之前已在运行的进程继续运行。

若搜索文本同时出现在检查命令行上,则标识的是检查器本身,该命中不是目标。

页面

在停止环节之后,当已完成任务不再需要时,关闭本次会话打开的浏览器页面。确认每个已关闭页面消失。关闭这些页面不影响浏览器继续运行。

用户要求保留的页面保持打开,报告需列出该页面及关闭方法。

本次会话之前已打开、由用户打开或来源不明的页面保持打开。

当为一个任务打开了多个页面时,列出要保留的会话页面,并将其余会话打开的页面一并关闭。仅为到达结果而途经访问的页面不保留。上一段所述的页面保持打开。

删除

页面关闭后,删除本次会话创建、且非交付物的临时文件和目录。作为工作输入的一次性下载在任务不再需要后删除。用户既有文件保留。唯一未提交内容保留。

保留副本位于删除集之外。

报告

报告字段见 reference.md。

仅当没有会话启动的服务、没有已完成任务不再需要的会话打开页面、也没有可丢弃的临时文件残留时,才可声称资源已干净收尾。保留的服务或页面属于“Left in place”行,而非干净收尾。

当相关工作仍未结束时,指明归属并交由对应技能处理:

请求的合并交由 merge-discipline。

仍未合并的分支、分支菜单或工作树移除交由 feature-branch-closeout。

回顾交由 learn-and-improve。