@clawos-dev/clawd 0.2.165-beta.341.c72ef11 → 0.2.165

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.
Files changed (2) hide show
  1. package/dist/cli.cjs +20 -0
  2. package/package.json +1 -1
package/dist/cli.cjs CHANGED
@@ -4710,6 +4710,9 @@ var init_schemas = __esm({
4710
4710
  // 不受 parent clear / re-spawn 影响);sidebar 据此挂 fork 图标。非 fork session 该字段缺省。
4711
4711
  // 旧字段 forkedFromToolSessionId 已弃用,daemon 启动时一次性迁移老数据
4712
4712
  forkedFromSessionId: external_exports.string().min(1).optional(),
4713
+ // 快速问答临时会话标记(spec 2026-06-23-fork-quick-ask):true = 关闭抽屉即删、
4714
+ // 不进 sidebar 树、daemon 启动清扫孤儿。普通会话缺省。
4715
+ ephemeral: external_exports.boolean().optional(),
4713
4716
  // owner-mode persona session 身份标识;UI 用它在 SessionList 过滤 + jump,
4714
4717
  // daemon 用它做 idempotent dedupe + spawn 时派生 ctx.personaMode='owner'
4715
4718
  ownerPersonaId: external_exports.string().min(1).optional(),
@@ -4998,6 +5001,8 @@ var init_schemas = __esm({
4998
5001
  iconKey: external_exports.string().optional(),
4999
5002
  // session:fork 派生 session 时由 UI 传入源 sessionId,daemon 写到 SessionFile.forkedFromSessionId
5000
5003
  forkedFromSessionId: external_exports.string().min(1).optional(),
5004
+ // 快速问答:创建时打 ephemeral 标记,daemon 写到 SessionFile.ephemeral
5005
+ ephemeral: external_exports.boolean().optional(),
5001
5006
  // owner-mode persona session:传此字段时 daemon 自行派生 cwd 和启动参数,
5002
5007
  // 且按 ownerPersonaId 做 idempotent dedupe(每 persona 永远只有一个 owner session)
5003
5008
  ownerPersonaId: external_exports.string().min(1).optional()
@@ -33968,6 +33973,7 @@ var SessionManager = class {
33968
33973
  forkedFromSessionId: args.forkedFromSessionId,
33969
33974
  ownerPersonaId: args.ownerPersonaId,
33970
33975
  appBuilderProject: args.appBuilderProject,
33976
+ ephemeral: args.ephemeral,
33971
33977
  creatorPrincipalId,
33972
33978
  creatorDisplayName,
33973
33979
  createdAt: iso,
@@ -34136,6 +34142,19 @@ var SessionManager = class {
34136
34142
  this.writeOwned(updated);
34137
34143
  return { response: updated, broadcast: [] };
34138
34144
  }
34145
+ /**
34146
+ * 启动清扫:删除所有磁盘残留的 ephemeral(快速问答临时)session。
34147
+ * 客户端崩溃 / 没关抽屉会留下永久不可见的孤儿(ephemeral 被 sidebar 过滤,用户自己也删不掉)。
34148
+ * 启动时调用——此刻无客户端连接,纯文件删除,不广播。
34149
+ */
34150
+ sweepEphemeralOnStartup() {
34151
+ for (const file of this.listAllOwned()) {
34152
+ if (file.ephemeral) {
34153
+ this.deleteOwned(file.sessionId);
34154
+ this.deps.logger?.info?.(`swept ephemeral session ${file.sessionId}`);
34155
+ }
34156
+ }
34157
+ }
34139
34158
  delete(args) {
34140
34159
  const existing = this.findOwnedSession(args.sessionId);
34141
34160
  if (!existing) throw new ClawdError(ERROR_CODES.SESSION_NOT_FOUND, args.sessionId);
@@ -47564,6 +47583,7 @@ async function startDaemon(config) {
47564
47583
  }
47565
47584
  }
47566
47585
  });
47586
+ manager.sweepEphemeralOnStartup();
47567
47587
  await wss.start();
47568
47588
  const url = `ws://${config.host}:${config.port}`;
47569
47589
  let stateSnapshot = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawos-dev/clawd",
3
- "version": "0.2.165-beta.341.c72ef11",
3
+ "version": "0.2.165",
4
4
  "description": "Standalone clawd daemon — Claude Code (and future Codex) session server over WebSocket",
5
5
  "type": "module",
6
6
  "license": "MIT",