@clawos-dev/clawd 0.2.163 → 0.2.164
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +20 -0
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -4704,6 +4704,9 @@ var init_schemas = __esm({
|
|
|
4704
4704
|
// 不受 parent clear / re-spawn 影响);sidebar 据此挂 fork 图标。非 fork session 该字段缺省。
|
|
4705
4705
|
// 旧字段 forkedFromToolSessionId 已弃用,daemon 启动时一次性迁移老数据
|
|
4706
4706
|
forkedFromSessionId: external_exports.string().min(1).optional(),
|
|
4707
|
+
// 快速问答临时会话标记(spec 2026-06-23-fork-quick-ask):true = 关闭抽屉即删、
|
|
4708
|
+
// 不进 sidebar 树、daemon 启动清扫孤儿。普通会话缺省。
|
|
4709
|
+
ephemeral: external_exports.boolean().optional(),
|
|
4707
4710
|
// owner-mode persona session 身份标识;UI 用它在 SessionList 过滤 + jump,
|
|
4708
4711
|
// daemon 用它做 idempotent dedupe + spawn 时派生 ctx.personaMode='owner'
|
|
4709
4712
|
ownerPersonaId: external_exports.string().min(1).optional(),
|
|
@@ -4992,6 +4995,8 @@ var init_schemas = __esm({
|
|
|
4992
4995
|
iconKey: external_exports.string().optional(),
|
|
4993
4996
|
// session:fork 派生 session 时由 UI 传入源 sessionId,daemon 写到 SessionFile.forkedFromSessionId
|
|
4994
4997
|
forkedFromSessionId: external_exports.string().min(1).optional(),
|
|
4998
|
+
// 快速问答:创建时打 ephemeral 标记,daemon 写到 SessionFile.ephemeral
|
|
4999
|
+
ephemeral: external_exports.boolean().optional(),
|
|
4995
5000
|
// owner-mode persona session:传此字段时 daemon 自行派生 cwd 和启动参数,
|
|
4996
5001
|
// 且按 ownerPersonaId 做 idempotent dedupe(每 persona 永远只有一个 owner session)
|
|
4997
5002
|
ownerPersonaId: external_exports.string().min(1).optional()
|
|
@@ -33951,6 +33956,7 @@ var SessionManager = class {
|
|
|
33951
33956
|
forkedFromSessionId: args.forkedFromSessionId,
|
|
33952
33957
|
ownerPersonaId: args.ownerPersonaId,
|
|
33953
33958
|
appBuilderProject: args.appBuilderProject,
|
|
33959
|
+
ephemeral: args.ephemeral,
|
|
33954
33960
|
creatorPrincipalId,
|
|
33955
33961
|
creatorDisplayName,
|
|
33956
33962
|
createdAt: iso,
|
|
@@ -34119,6 +34125,19 @@ var SessionManager = class {
|
|
|
34119
34125
|
this.writeOwned(updated);
|
|
34120
34126
|
return { response: updated, broadcast: [] };
|
|
34121
34127
|
}
|
|
34128
|
+
/**
|
|
34129
|
+
* 启动清扫:删除所有磁盘残留的 ephemeral(快速问答临时)session。
|
|
34130
|
+
* 客户端崩溃 / 没关抽屉会留下永久不可见的孤儿(ephemeral 被 sidebar 过滤,用户自己也删不掉)。
|
|
34131
|
+
* 启动时调用——此刻无客户端连接,纯文件删除,不广播。
|
|
34132
|
+
*/
|
|
34133
|
+
sweepEphemeralOnStartup() {
|
|
34134
|
+
for (const file of this.listAllOwned()) {
|
|
34135
|
+
if (file.ephemeral) {
|
|
34136
|
+
this.deleteOwned(file.sessionId);
|
|
34137
|
+
this.deps.logger?.info?.(`swept ephemeral session ${file.sessionId}`);
|
|
34138
|
+
}
|
|
34139
|
+
}
|
|
34140
|
+
}
|
|
34122
34141
|
delete(args) {
|
|
34123
34142
|
const existing = this.findOwnedSession(args.sessionId);
|
|
34124
34143
|
if (!existing) throw new ClawdError(ERROR_CODES.SESSION_NOT_FOUND, args.sessionId);
|
|
@@ -47405,6 +47424,7 @@ async function startDaemon(config) {
|
|
|
47405
47424
|
}
|
|
47406
47425
|
}
|
|
47407
47426
|
});
|
|
47427
|
+
manager.sweepEphemeralOnStartup();
|
|
47408
47428
|
await wss.start();
|
|
47409
47429
|
const url = `ws://${config.host}:${config.port}`;
|
|
47410
47430
|
let stateSnapshot = {
|