nianyucatfish
6aecec1431
feat(continue): default in-place restore + per-session lock (copy-on-conflict) (#617)
/continue N 默认改为「原地续」:接管原会话日志、后续轮次写回同一文件,取代旧的
镜像复制(supersedes b4356c7 的 mirror 方案),不再每次续接都 fork 新会话、日志增殖。
- 空闲会话 → 直接原地接管;被活进程占用 → 弹窗确认后才复制一份续。
- 每会话出生持锁(temp/model_responses/.locks/<logid>.lock),整进程共用一个心跳
线程每 5s touch mtime、30s 无心跳判死可接管;atexit 干净释放,崩溃/强杀靠超时兜底。
- 切走/新对话不再「快照+清空」(原 _snapshot_current_log 因 logid≠pid 实为死代码,
从未生成过快照),旧日志原样留作空闲会话,新对话铸新 logid。
- list_sessions 新增 exclude_log,修正 exclude_pid=getpid 失效导致当前会话出现在
自己列表里的问题。
- continue_cmd 仅新增函数,reset_conversation/restore/handle 未改动 → 其他前端
(IM/qt/streamlit 等)行为完全不变。
- 改动仅限 continue_cmd.py + tui_v3.py + tuiapp_v2.py;rewind/worldline 逻辑不在本 PR。
2026-06-15 21:20:20 +08:00
..
2026-06-05 16:18:52 +08:00
2026-06-14 09:43:07 +08:00
2026-04-18 11:00:56 +08:00
2026-06-14 09:10:04 +08:00
2026-05-09 15:26:05 +08:00
2026-04-18 11:13:38 +08:00
2026-05-17 21:08:25 +08:00
2026-06-15 10:15:17 +08:00
2026-06-15 10:15:17 +08:00
2026-06-15 21:20:20 +08:00
2026-05-24 16:09:40 +08:00
2026-05-08 11:56:55 +08:00
2026-05-25 13:29:12 +08:00
2026-05-02 12:32:16 +08:00
2026-04-28 20:25:00 +08:00
2026-05-09 23:08:20 +08:00
2026-05-21 17:26:59 +08:00
2026-05-06 03:54:09 +08:00
2026-05-28 10:13:21 +08:00
2026-06-11 09:19:09 +08:00
2026-06-11 21:11:25 +08:00
2026-05-24 21:16:05 +08:00
2026-05-03 15:35:53 +08:00
2026-05-17 21:08:25 +08:00
2026-05-16 19:24:35 +08:00
2026-05-28 19:09:21 +08:00
2026-06-14 09:24:33 +08:00
2026-05-26 12:09:04 +08:00
2026-06-15 21:20:20 +08:00
2026-06-15 21:20:20 +08:00
2026-05-18 08:20:52 +08:00
2026-06-11 09:15:55 +08:00
2026-04-27 14:13:28 +08:00
2026-06-14 09:10:04 +08:00