vault backup: 2026-06-09 23:15:17

This commit is contained in:
2026-06-09 23:15:17 +08:00
parent 31fd89aafe
commit e92c0327d9
111 changed files with 7276 additions and 8846 deletions
@@ -1,41 +1,53 @@
---
tags: [task, daemon, 命令层级化, REPL, CLI]
create time: 2026-06-09 22:30
---
# Task 014: /daemon 命令层级化
> 设计文档: [daemon-restructure-design.md](../features/daemon-restructure-design.md) § 三.1
> 依赖: Task 013 (BgEngine 抽象)
> 分支: `feat/integrate-5-branches`
## 目标
## 概述
将散落的 `daemon start/stop/status` + `ps/logs/attach/kill` + `--bg` 统一收归 `/daemon` 命名空间,实现 CLI + REPL 双注册。
## 背景
> [!info]
> 设计文档: [[claude-code-best/docs/features/daemon-restructure-design]] § 三.1
> 依赖: Task 013 (BgEngine 抽象)
> 分支: `feat/integrate-5-branches`
## 正文
### 目标
将散落的 `daemon start/stop/status` + `ps/logs/attach/kill` + `--bg` 统一收归 `/daemon` 命名空间,实现 CLI + REPL 双注册。
### 背景
当前这些命令注册在两个互不关联的位置:
- `cli.tsx:203-212`: `daemon [start|status|stop]` → `daemon/main.ts`
- `cli.tsx:217-246`: `ps|logs|attach|kill|--bg` → `cli/bg.ts`
- `cli.tsx:203-212`: `daemon [start|status|stop]` -> `daemon/main.ts`
- `cli.tsx:217-246`: `ps|logs|attach|kill|--bg` -> `cli/bg.ts`
需要合并为统一的 `claude daemon <subcommand>` 入口,并新增 REPL `/daemon` 斜杠命令。
## 文件清单
### 文件清单
### 新增
#### 新增
| 文件 | 说明 |
|------|------|
| `src/commands/daemon/index.ts` | `/daemon` REPL 斜杠命令注册 (type: local-jsx) |
| `src/commands/daemon/daemon.tsx` | `/daemon` 子命令路由 + status UI 组件 |
### 修改
#### 修改
| 文件 | 变更 |
|------|------|
| `src/entrypoints/cli.tsx` | 统一 daemon 快速路径: `daemon <sub>` 路由到对应 handler。旧命令 `ps/logs/attach/kill` 保留但输出 deprecation 警告后代理 |
| `src/commands.ts` | 注册 `/daemon` 斜杠命令 (feature-gated: DAEMON \|\| BG_SESSIONS) |
| `src/commands.ts` | 注册 `/daemon` 斜杠命令 (feature-gated: DAEMON || BG_SESSIONS) |
| `src/daemon/main.ts` | `daemonMain()` 扩展: 支持 `bg/attach/logs/kill/ps` 子命令 (委托给 bg.ts handlers) |
## 实现方案
### 实现方案
### 1. CLI 快速路径统一 (`cli.tsx`)
#### 1. CLI 快速路径统一 (`cli.tsx`)
**改前** (两段独立路由):
```typescript
@@ -66,7 +78,7 @@ if (
return
}
// --bg 快捷方式 → daemon bg
// --bg 快捷方式 -> daemon bg
if (
feature('BG_SESSIONS') &&
(args.includes('--bg') || args.includes('--background'))
@@ -79,7 +91,7 @@ if (
return
}
// 向后兼容: ps/logs/attach/kill → daemon <sub> (deprecated)
// 向后兼容: ps/logs/attach/kill -> daemon <sub> (deprecated)
if (
feature('BG_SESSIONS') &&
['ps', 'logs', 'attach', 'kill'].includes(args[0] ?? '')
@@ -94,7 +106,7 @@ if (
}
```
### 2. daemonMain 扩展 (`daemon/main.ts`)
#### 2. daemonMain 扩展 (`daemon/main.ts`)
```typescript
export async function daemonMain(args: string[]): Promise<void> {
@@ -142,7 +154,7 @@ export async function daemonMain(args: string[]): Promise<void> {
}
```
### 3. 统一状态面板 (`showUnifiedStatus`)
#### 3. 统一状态面板 (`showUnifiedStatus`)
```typescript
async function showUnifiedStatus(): Promise<void> {
@@ -169,7 +181,7 @@ async function showUnifiedStatus(): Promise<void> {
}
```
### 4. REPL 斜杠命令注册
#### 4. REPL 斜杠命令注册
**`src/commands/daemon/index.ts`**:
```typescript
@@ -237,7 +249,7 @@ const daemonCmd =
...(daemonCmd ? [daemonCmd] : []),
```
### 5. 更新 help 文本 (`daemon/main.ts`)
#### 5. 更新 help 文本 (`daemon/main.ts`)
```
Claude Code Daemon — background process management
@@ -259,7 +271,7 @@ REPL
/daemon [subcommand] Same commands available in interactive mode
```
## 验证清单
### 验证清单
- [ ] `claude daemon` (无参数) 显示统一状态面板
- [ ] `claude daemon status` 显示 supervisor + 会话列表
@@ -273,3 +285,9 @@ REPL
- [ ] REPL 中 `/daemon status` 显示状态信息
- [ ] tsc --noEmit 零错误
- [ ] bun test 通过
## 关联笔记
- [[claude-code-best/docs/task/task-013-bg-engine-abstraction]]
- [[claude-code-best/docs/task/task-015-job-command-hierarchy]]
- [[claude-code-best/docs/task/task-016-backward-compat-tests]]