Repository navigation
Releases: fatedawn/agent-session-center
Release list
Agent Session Center v1.0.17
新建的会话能进项目了。以前挂进去也对不上,侧栏里永远落在所有项目之外。
修复
- 会话钥匙补进投影。 项目归属靠 CLI 的会话钥匙比对,而这把钥匙只进了账本,投影里没有。观察器捕获到钥匙时同步写进投影,应用重启接管仍在跑的会话时从账本补回。
- Claude 和 Cursor 的两种 id 都认。 成员关系存的是 definition id(claude),会话投影带的是 adapter id(claude-code),其余 CLI 两个 id 相同。侧栏分组、搜索、菜单和交接统一走
projectOwnsSession,两种写法都算同一个 CLI。 - 交回能找到 Claude。 交回时用 adapter id 去找要启动的 CLI,清单按 definition id 索引,Claude 匹配失败后静默不做。现在两种 id 都能命中。
- 折叠项目不再把项目标题一起藏掉。 标题和会话画在同一个列表项里,折叠时整项隐藏,项目从侧栏消失,没有入口再展开。现在只藏会话。
- 取消新建不再把下一个会话挂进项目。 待挂的项目改成按终端记录,启动失败或关掉新建面板时按终端清掉。
Agent Session Center v1.0.16
[1.0.16] - 2026-10-17
账本加固,历史标题有了第二个来源,长时间不响应的会话会被标成崩溃,Grok 的子会话能认回它的父会话。文件写入前开始留底,但还不能回退。
变更
- 账本打开时设三条约束。 会话账本、任务账本和项目存储共用一个打开入口,开启 WAL、5 秒写入排队和外键约束。外键只对之后新建的表生效,旧表不动。
- 历史标题多一个来源。 Grok 的
summary.json里有模型生成的标题,以前读出来就丢了。现在它排在用户改名之后、首条消息截断之前。 - 长时间不响应的会话标成崩溃。 每条观察事件都算一次心跳。启动时,心跳早于 10 分钟的运行中行降成崩溃并进入重进名单。进程真死的仍由原来的降级覆盖。
- Grok 的子会话认回父会话。 归属来自父目录的
subagents/*/meta.json,summary.json的parent_session_id只作补充。历史页默认仍隐藏子会话,展开后父行标题下显示子会话的类型和状态。 - 文件写入前留底。 观察到写入类工具开始执行时,把目标文件的当前内容存成内容寻址的 blob,按工具调用归属。超过 5 MB 只记元信息,符号链接和目录不记。
尚未完成
- 还不能回退文件。 应用不持有模型上下文,只恢复文件、不截断各家 CLI 的会话历史,模型下一轮仍按「文件已改完」继续。回退要等截断历史那一版一起做。
English
The ledger is hardened, history titles have a second source, a session that stops responding is marked crashed, and a Grok subagent session is linked back to its parent. File writes are now snapshotted before they happen, but nothing can be rewound yet.
Changed
- The ledger sets three constraints on open. The session ledger, the task ledger and the project store share one opener, which enables WAL, a 5 second busy timeout and foreign keys. Foreign keys apply only to tables created afterwards; existing tables are untouched.
- History titles have a second source. Grok's
summary.jsoncarries a model-generated title that the reader used to drop. It now ranks after a user rename and before the truncated first message. - A session that stops responding is marked crashed. Every observed event counts as a heartbeat. On startup, a running row whose heartbeat is older than 10 minutes is demoted to crashed and added to the re-entry list. A process that is genuinely dead is still covered by the existing demotion.
- A Grok subagent session links back to its parent. Ownership comes from
subagents/*/meta.jsonunder the parent directory;parent_session_idinsummary.jsononly fills gaps. The history page still hides subagent sessions by default, and an expanded parent row shows each child's type and status. - File writes are snapshotted first. When a file-writing tool is observed starting, the target's current content is stored as a content-addressed blob, keyed by the tool call. Files over 5 MB record metadata only, and symbolic links and directories are skipped.
Not yet
- Files cannot be rewound yet. The app does not hold the model context, so restoring a file without truncating each CLI's own history would leave the model continuing as if the edit had landed. Rewind waits for the version that truncates that history.
Agent Session Center v1.0.14
Changelog
本文件记录 Agent Session Center 各公开版本的重要变化。版本号遵循 Semantic Versioning。
说明:0.4.7 及更早的条目记录的是本项目早期阶段(当时产品名与现在不同)。为避免旧名残留,文中产品名统一写作「本应用」。条目按历史事实原样保留,未做改写。
体例变更(自 1.0.4 起):条目改为中文优先的双语排布 —— 中文正文在前,其后是一条
---分隔线,英文正文在后;两侧共用同一个## [x.y.z] - date标题,英文侧以### English标记。此前的条目保留原有体例与历史原样,未做改写。
[Unreleased]
[1.0.14] - 2026-10-17
安装时可以选择目录,首次安装默认到 D 盘。
变更
- 安装向导可以选择任意盘。 目录页还在。D 盘存在、而且这台机器还没装过时,默认目录是
D:\Agent Session Center,不再落在当前用户的 AppData。 - 已经装过的机器保持原目录。 升级不会把文件悄悄搬到 D 盘。要换盘,请自己运行安装包,在目录页改路径。应用内的「重启并安装」会留在当前目录。
- 新建项目先起名字,再选主目录。 名字和文件夹是两件事,不必相同。会话仍按项目挂上去,不按文件夹名归类。确认后项目出现在侧栏,并打开目标页。
English
The installer lets you pick a folder. A first install defaults to drive D.
Changed
- The wizard can install on any drive. The directory page remains. When D: exists and nothing is installed yet, the default folder is
D:\Agent Session Centerinstead of the current user's AppData. - An existing install stays where it is. An upgrade does not move files to D:. To move, run the setup yourself and change the folder. In-app restart-and-install keeps the current folder.
- A new project starts with a name, then a home directory. The name and the folder are separate. Sessions still join by project, not by folder name. After confirm, the project appears in the sidebar and its goal page opens.
[1.0.13] - 2026-10-16
项目可以单独新建。打开项目后,可以在这个项目里再开一场会话。
新增
- 侧栏有「新建项目」。 先选目录,再填名字。项目会出现在侧栏,点开就能写目标和进展。
- 项目里可以新建会话。 打开项目后,点「在此项目新建会话」。选择器和顶栏「新建」是同一套,目录预填成这个项目。记下对话钥匙后,这场会话自动归进项目。
- 顶栏和侧栏原来的「新建」还在,不进项目也能自己开一场。
English
A project can be created on its own. After it is open, a new session can start inside it.
Added
- The sidebar has New project. Pick a directory, then a name. The project appears in the sidebar, and opening it edits the goal and progress.
- A project can start a session. Open the project and choose New session in this project. The picker is the same as New, with the directory filled from the project. Once the conversation key is saved, the session joins the project.
- The existing New entry still starts a session that does not belong to a project.
[1.0.12] - 2026-10-16
安装或退出打断后,有钥匙的会话会重新出现在「继续」里。项目在还没有会话挂上时也能在侧栏看见。
修复
- 重进名单补上被打断的会话。 安装更新会先停掉进程。账本可能还写着「在跑」,重进标记却是 0,窗口重开就只剩 Terminal 1、Terminal 2 这种匿名终端。现在没挂上宿主、但已有对话钥匙的行会补进重进名单,打开后按钥匙拉回。没有钥匙的行标成已停止,避免空拉起变成另一场。
- 项目不依赖会话先出现。 侧栏在会话列表为空时仍列出项目,点开就能改目标和进展。
English
After an install or quit interrupts a session, a keyed session shows up in Continue again. A project stays visible in the sidebar before any session is attached.
Fixed
- Interrupted sessions return to the relaunch list. An update stops the process first. The ledger can still say running while the relaunch flag stays off, so reopening shows only anonymous terminals. A running row with a conversation key and no host terminal is now marked for relaunch. A row without a key is marked stopped so it is not opened as a new conversation.
- A project does not wait for a session. The sidebar lists projects even when the session list is empty. Opening one still edits the goal and progress.
[1.0.11] - 2026-10-16
这一版让改过的会话名留下来,并在会话上面加一层项目。交接和交回都记在同一个项目里。
新增
- 重命名跟着对话钥匙走。 侧栏改名会写入账本。记下了 CLI 对话钥匙之后,再打开、按钥匙接回、在会话历史里查询,都用这个名字。没有钥匙的场次只改当前这一场,钥匙一到就补上。
- 项目是会话上面的一层。 一个项目对应一个目录和一份
PROJECT.md。目标由你写、你改。进展在交接和交回时补一句,你也能改。侧栏按项目折叠里面的会话。查找先对项目名和目标,再对会话名。 - 同一个项目里交接。 在已归入项目、并且记下钥匙的会话上,可以交给另一个已安装的助手。说明先给你看、改完再送出。对方在同一目录另开一场,开场读这份说明。交回时按原来的对话钥匙拉回,并把结果写进项目进展。
说明
- 项目只认 ASC 记下钥匙的会话。1.0.7 里关掉、当时没有钥匙的会话,仍然挂不进项目。
- 本版本不带代码签名。
English
This release keeps a renamed session name, and adds a project above sessions. A handoff and a hand-back stay in the same project.
Added
- A rename follows the conversation key. Renaming in the sidebar writes the ledger. After a CLI conversation key is saved, reopening, relaunching, and session-history search use that name. A session without a key changes only the current row until the key arrives.
- A project sits above sessions. One project is one directory and one
PROJECT.md. You write and edit the goal. A handoff or hand-back appends one progress line, which you can also edit. The sidebar folds the sessions inside a project. Search matches the project name and goal, then the session name. - Handoff stays inside one project. A session that belongs to a project and has a key can be handed to another installed assistant. You read and edit the brief before it is sent. The other assistant starts in the same directory and reads that brief. Handing back relaunches the original conversation key and writes the result into the project progress.
Notes
- A project only accepts sessions whose key ASC has saved. Sessions closed under 1.0.7, before a key was saved, still cannot join a project.
- This release is not code-signed.
[1.0.10] - 2026-10-16
这一版让程序自己检查并下载更新。下载完成后弹出确认,点一下就重启安装。
新增
- 打开后自己检查、自己下载。 打包版启动后会去 GitHub Release 看有没有新版本。有的话直接下载,不再多点一次「下载更新」。
- 下完就能装。 下载完成后弹出更新说明。主按钮是「重启并安装」,点下去会退出当前窗口并装上新版本。设置里的「检查更新」仍然可以手动再查一次;已经下完时,同一处按钮也是重启安装。
说明
- 1.0.9 及更早的已安装版本还不会自己下载。先从这一版开始,之后的更新才会走这条路。
- 安装包未签名。Windows 可能会提示未知发布者。
- 1.0.9 的会话接回仍然有效:打开应用会接回还在跑、并且记下了对话钥匙的会话。
English
This release checks for updates and downloads them on its own. When the download finishes, one confirmation restarts the app and installs it.
Added
- Startup checks and downloads. A packaged build looks at GitHub Releases after launch. A newer version downloads without a separate download click.
- Install when the file is ready. The update notes appear after the download. The primary button is “Restart and install”; it quits the current window and installs the new version. Settings still has a manual check. When the file is already downloaded, that same button installs it.
Notes
- Builds already installed at 1.0.9 or earlier do not download by themselves. This path starts with this release.
- The installer is not code-signed. Windows may warn about an unknown publisher.
- The 1.0.9 session restore still applies: opening the app brings back a session that is still running and has a saved conversation key.
[1.0.9] - 2026-10-16
这一版修正打开应用后不接回上次会话的问题。1.0.8 只重进已经退出的会话,窗口关掉但终端还在跑的那场不会出现。
修复
- 还在跑的会话也会在打开时接回。 只要账本里有对话钥匙,无论状态是还在跑还是已经退出,打开应用都会把它拉起来。宿主里的终端还活着时仍然直接接上,不另开一场。
说明
- 1.0.7 里关掉、当时没有记下钥匙的会话,仍然不会自动出现。
- 本版本不带代码签名。
English
This release fixes sessions that stayed running not coming back when the app opened. 1.0.8 only relaunched sessions that had already exited.
Fixed
- A still-running session is restored on open. Any ledger row with a conversation key is relaunched, whether it is still running or already exited. A terminal that is still alive in the host is attached instead of started again.
Notes
- Sessions closed under 1.0.7, before a key was saved, still do not come back automatically.
- This release is not code-signed.
[1.0.8] - 2026-10-16
这一版让关掉窗口之后的会话还能接上。终端留在单独的宿主里;宿主也没了,第二天打开会按记下的对话钥匙重新拉起。
新增
- 关掉窗口,终端还在。 终端改由一个单独的 Node 宿主握着。窗口关掉或崩了,再打开会接回原来那场,不新开进程。托盘里选退出,才会停掉这些终端。
- 第二天打开,按钥匙重新拉起。 宿主也没了的时候,已经记下 CLI 对话钥匙、对话文件还在的会话,打开应用后会自己重新拉起,最多 8 场。文件不在的会跳过。这是重新打开对话,不是把昨天的进程留了一夜。
- 没答完的问题还在。 打开后顶部列出还没答的问题。会话还活着可以直接答;已经退出的要先重进。同一题只认第一次答案。飞书
/问题、/答和asc tasks用同一个问题编号。
说明
- 钩子跟着窗口。窗口没起来的那段时间,新的审批不会记进账本。
- 开机不会自己打开应用。要接上次的会话,需要先打开它。
- WorkBuddy 和桌面 Grok Bot 仍是打开客户端里的那场,不走这条恢复。
- 本版本不带代码签名。安装包体积以本次打包产物为准。
English
This release keeps sessions available after the window closes. The terminal stays in a separate host; when that host is gone too, the next launch relaunches sessions from their saved conversation keys.
Added
- Closing the window leaves the terminal running. A separate Node host owns the terminals. Reopening the window attaches the same session instead of starting a new process. Choosing Quit from the tray stops those terminals.
- The next day relaunches from the saved key. When the host is gone, sessions that have a CLI conversation key and a conversation file still on disk relaunch themselves, up to 8. A missing file is skipped. This opens the conversation again; it does not keep yesterday's process alive overnight.
- Unanswered questions stay listed. Open questions appear at the top. A live session can be answered directly; an exited session needs a relaunch first. The first answer wins. Feishu
/问题,/答, andasc tasksshare the same question id.
Notes
- Hooks stay with the window. Approvals that happen while the window is closed are not written to the ledger.
- The app does not start itself at logon. Open it to pick up the previous sessions.
- WorkBuddy and the Grok Bot desktop app still open the client conversation; they do not use this resume path.
- This release is not code-signed. Installer size is the size of this build.
[1.0.7] - 2026-10-13
这一版给侧栏会话加了会话分叉(Fork),一条对话可以从任意节点复制出另一条继续聊。
新增
- Fork 会话(分支继续)。 侧栏会话右键新增「Fork 会话(分支继续)」,把整段对话上下文复制成一条全新会话接着聊,原会话原样保留。基于 CLI 原生
--fork-session能力,当前支持 Claude Code 与 Grok Build。 - Fork 会话(连代码分叉)。 分叉对话的同时自动创建 git worktree:仓库旁的兄弟目录
<仓库根>-fork-<时间戳>配新分支asc-fork-<时间戳>,分出来的会话在独立目录里改代码,两条线互不干扰。worktree 基于当前 HEAD 创建,未提交的改动不会带过去。
说明
- 未实测 fork 能力的 agent(Codex CLI、OpenCode、Kimi Code、Pi、Antigravity)不显示分叉入口。
- 本版本不带代码签名。安装包体积以 CI 产物为准,这里不写字节数。
English
This release adds session fork to the sidebar context menu, so a conversation can branch into a new one at any point.
Added
- Fork session (branch from here). Right-click any session in the sidebar to copy its full conversation context into a brand-new session; the original session stays untouched. Built on the native ...
Agent Session Center v1.0.13
项目可以单独新建。打开项目后,可以在这个项目里再开一场会话。
- 侧栏有「新建项目」。先选目录,再填名字。
- 打开项目后,点「在此项目新建会话」。目录预填成这个项目,记下对话钥匙后自动归入。
- 原来的「新建」还在,不进项目也能自己开一场。
安装包没有签名,Windows 可能会提示。
Agent Session Center v1.0.12
安装或退出打断后,有钥匙的会话会重新出现在「继续」里。项目在还没有会话挂上时也能在侧栏看见。
- 安装更新会先停掉进程。账本可能还写着「在跑」,重进标记却是 0,窗口重开就只剩匿名终端。现在没挂上宿主、但已有对话钥匙的行会补进重进名单。
- 没有钥匙的行标成已停止,避免空拉起变成另一场。
- 侧栏在会话列表为空时仍列出项目。
安装包没有签名,Windows 可能会提示。
Agent Session Center v1.0.11
1.0.11
改过的会话名会留下来。记下对话钥匙之后,再打开、接回、在会话历史里查询,都用这个名字。
会话上面加了项目。一个项目是一个目录和一份 PROJECT.md。目标由你写、你改。侧栏按项目折叠里面的会话,查找先对项目名和目标。
同一项目里可以交给另一个已安装的助手。说明先给你看,改完再送出。交回时按原来的对话钥匙拉回,结果写进项目进展。
安装包未签名,Windows 可能会提示未知发布者。
Agent Session Center v1.0.10
1.0.10
打开后自己检查 GitHub Release,有新版本就直接下载。下完弹出更新说明,点「重启并安装」就会装上。
设置里的「检查更新」仍然可以手动再查一次。已经下完时,同一处按钮也是重启安装。
1.0.9 及更早的已安装版本还不会自己下载。先装上这一版,之后才会走这条路。安装包未签名,Windows 可能会提示未知发布者。
1.0.9 的会话接回仍然有效:打开应用会接回还在跑、并且记下了对话钥匙的会话。
Agent Session Center v1.0.9
Agent Session Center v1.0.9
打开应用时,还在跑的会话也会接回来。
1.0.8 只重进已经退出的会话。窗口关掉、终端还在宿主里时,再打开看不到那场。这一版只要账本里有对话钥匙,就会把它拉起来。宿主里的终端还活着时直接接上,不另开一场。
1.0.7 里关掉、当时没有记下钥匙的会话,仍然不会自动出现。
本版本不带代码签名。Windows 安装时可能会出现安全提示。
Windows 安装包 SHA-256:f2973052432d8f33491d183142d467ea767f3b1525135fb807d2b2ccec44f5b4
Agent Session Center v1.0.8
Agent Session Center v1.0.8
关掉窗口之后,会话还能接上。
- 终端留在单独的宿主里。窗口关掉或崩了,再打开会接回原来那场。托盘里选退出,才会停掉这些终端。
- 宿主也没了的时候,已经记下对话钥匙、对话文件还在的会话,打开应用后会自己重新拉起,最多 8 场。这是重新打开对话,不是把昨天的进程留了一夜。
- 没答完的问题会出现在顶部。会话还活着可以直接答。同一题只认第一次答案。
1.0.7 里关掉的会话没有钥匙,第一次打开不会自动出现。从这一版起新开的会话,下一次才能按这个方式接上。
本版本不带代码签名。Windows 安装时可能会出现安全提示。
Windows 安装包 SHA-256:5cc9eee97029f35f9e35c72bbf37e3c838ecbd65c98c0d843c7e5634fa7b4d96
Agent Session Center v1.0.7
Agent Session Center v1.0.7
新功能:会话分叉(Fork)
Fork 会话(分支继续) —— 侧栏会话右键即可把整段对话上下文复制成一条全新会话接着聊,原会话原样保留。基于 CLI 原生 --fork-session 能力,当前支持 Claude Code 与 Grok Build。
Fork 会话(连代码分叉) —— 分叉对话的同时自动创建 git worktree(独立目录 + 新分支),两个会话并行修改代码互不干扰。worktree 基于当前 HEAD 创建,未提交的改动不会带过去。
未验证 fork 能力的 agent(Codex 等)不显示分叉入口。
Agent Session Center v1.0.7 (English)
New: session fork
Fork session (branch from here) — right-click any session in the sidebar to copy its full conversation context into a brand-new session. The original session stays untouched. Built on the native --fork-session flag, available for Claude Code and Grok Build.
Fork session (with git worktree) — fork the conversation and automatically create a git worktree (separate directory, new branch), so both sessions edit code side by side without interference. The worktree is created from the current HEAD; uncommitted changes are not carried over.
Agents whose fork support has not been verified (Codex, and others) do not show the fork entry.