@kienntpixon/dieu-phoi 0.7.2 → 0.7.3
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/CHANGELOG.md +18 -0
- package/bin/dieu-phoi.cjs +21 -5
- package/hook.cjs +659 -26
- package/lib/args.cjs +1 -1
- package/lib/cbm.cjs +8 -2
- package/lib/commands.cjs +255 -7
- package/lib/deps.cjs +162 -0
- package/lib/load.cjs +332 -0
- package/lib/procs.cjs +200 -1
- package/lib/prune.cjs +10 -1
- package/lib/setup.cjs +28 -5
- package/lib/worktree.cjs +250 -19
- package/package.json +1 -1
- package/profile/lessons.md +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog — @kienntpixon/dieu-phoi
|
|
2
2
|
|
|
3
|
+
## 0.7.3 (2026-11-06)
|
|
4
|
+
|
|
5
|
+
Tài nguyên máy (run jiptvo5g, theo hợp đồng 0.7.3): trần song song, trần worktree, thu dọn subagent. `CORE_VERSION` 0.7.3; đi cùng skill 1.6.3.
|
|
6
|
+
Dữ liệu gốc: 21 ngày, 4008 agent, đồng thời toàn máy tối đa 22, một phiên tối đa 16. Chi tiết hành vi ở CONTRACT.md "Tài nguyên máy (core 0.7.3)".
|
|
7
|
+
**Sau khi cài:** `npm i -g` + `dieu-phoi setup` (đăng ký hook `SubagentStart` mới) + `dieu-phoi doctor`. Không đổi sink (không có cột/sự kiện đồng bộ mới; `reap`, `reap_orphans`, `worktree` chỉ ở máy).
|
|
8
|
+
**Mặc định đổi:** `kill_leftovers` từ `true` thành `"guarded"` (xem s7); trần song song 4/phiên + 8/máy bật sẵn (`0` = tắt). `--deps` của `wt add` là opt-in.
|
|
9
|
+
|
|
10
|
+
- **s1 — sổ agent sống + trần song song:** `data/live/<agent_id>.json` do hook ghi (`SubagentStart` ghi, `--watch` làm mới, `SubagentStop` xoá, TTL 6 giờ). `PreToolUse(Agent)` từ chối (`reason_code=parallel-cap`, `cap_scope`) khi phiên đã có `max_parallel_session` (4) exec/plan/verify gen 1 hoặc toàn máy đã có `max_parallel_machine` (8) agent; cảnh báo ở `warn_parallel_machine` (6); cờ `|parallel_ok` cho qua. Lý do deny nói rõ "chờ agent X xong rồi giao lại". `dispatch` thêm `parallel_ok`, `live_session`, `live_machine`. `doctor` có mục `live-agents`.
|
|
11
|
+
- **s2 — trần worktree:** `wt add` từ chối khi repo đủ `max_worktrees_repo` (8, đếm cả checkout chính) kèm danh sách ứng viên dọn; `--force` vượt; cảnh báo ở 75%. `wt clean --stale-days N` (mặc định `wt_stale_days` = 7) dọn worktree có dấu, sạch, nhánh đã merge. `wt list [--all] [--json]`.
|
|
12
|
+
- **s3 — `--deps` (opt-in):** `wt add --deps auto|link|install|none [--deps-path d]` (env `DIEU_PHOI_WT_DEPS`, config `wt_deps`, mặc định `none`): junction `node_modules` hoặc `pnpm install --frozen-lockfile --offline`. Gỡ worktree unlink junction TRƯỚC `git worktree remove` (test mồi: `node_modules` của checkout chính còn nguyên), khôi phục junction nếu git lỗi, xoá vỏ thư mục còn sót mà không đi xuyên link. Lưu ý: `npm install` trong worktree dùng `--deps link` ghi vào `node_modules` chung.
|
|
13
|
+
- **s4 — doctor so realpath:** `agents/*.md` đã cài qua junction/symlink không còn báo `outdated` giả; khác nội dung thật vẫn `outdated`.
|
|
14
|
+
- **s5 — đo tải:** `dieu-phoi load sample [--interval 10] [--count 12] [--repo R]` ghi `data/load.jsonl` (đếm agent theo phiên/toàn máy, hàng đợi, `worktrees_marked` — **chỉ của repo `--repo`**, mặc định cwd —, tốc độ đĩa; không có đường dẫn/prompt); `load report [--days 21]` ra phút ở mỗi mức và tương quan IO. `SubagentStart` ghi một mẫu chỉ đếm.
|
|
15
|
+
- **s6 — kẹt/mồ côi:** `stuck_idle_min` (20), `stuck_hard_min` (120), `stuck_after_status_min` (5); `UserPromptSubmit`/`PostToolUse(Agent)` chèn nhắc `TaskStop`; `dieu-phoi reap [--yes] [--session S]` (dry-run mặc định; `--yes` xoá file live + sự kiện `reap`).
|
|
16
|
+
- **s7 — `kill_leftovers: "guarded"`:** kill chỉ tiến trình quy chắc về agent (cmd trong worktree agent / cây từ shell agent), kiểm lại pid + giờ tạo, danh sách cấm (claude, cbm, Docker/WSL, Unity, Orca, IDE, hệ thống, MCP server…), không kill khi còn claude con; `true` giữ hành vi 0.7.2, `false` chỉ báo. `reap --orphans` thêm tail/sleep/shell mồ côi quá `orphan_kill_min` (60); `doctor` mục `orphan-processes`.
|
|
17
|
+
- **s8 — tích hợp:** `wt clean` (kể cả `--stale-days`, `--yes` sau nghiệm thu) và verdict/discard giữ worktree đang là cwd (hoặc thư mục con) của agent sống theo sổ live (`liveAgentInWorktree`), có test `wt-live.test.cjs`.
|
|
18
|
+
- **Test:** `cbm.test.cjs` hết chập chờn khi chạy song song: timeout probe/daemon nới qua env `DIEU_PHOI_CBM_PROBE_TIMEOUT_MS` / `DIEU_PHOI_CBM_DAEMON_TIMEOUT_MS` (mặc định sản phẩm vẫn 3 s / 5 s), spawn setup 180 s.
|
|
19
|
+
- **Sửa trước phát hành:** `prune --yes` báo đúng số dòng đã chuyển khỏi events.jsonl vào archive (trước đây in nhầm "không xoá dòng nào"); `numSetting` (trần worktree, ngày dọn) khi env hỏng rơi về config.json rồi mới về mặc định.
|
|
20
|
+
|
|
3
21
|
## 0.7.2 (2026-11-05)
|
|
4
22
|
|
|
5
23
|
Đề xuất core K1–K7 của retro 2026-11-05 (run ipmwxitv). `CORE_VERSION` 0.7.2; đi cùng skill 1.6.2.
|
package/bin/dieu-phoi.cjs
CHANGED
|
@@ -39,12 +39,18 @@ Cách dùng: dieu-phoi <lệnh> [tuỳ chọn]
|
|
|
39
39
|
discard --task <task_id> [--reason R]
|
|
40
40
|
loại một task nhầm khỏi thống kê/choose/state (ghi sự kiện discard, không sửa log);
|
|
41
41
|
gỡ worktree có dấu của task nếu sạch (còn thay đổi thì giữ và báo)
|
|
42
|
-
wt add --task <task_id> [--repo R] [--path D] [--branch B]
|
|
42
|
+
wt add --task <task_id> [--repo R] [--path D] [--branch B] [--force] [--deps auto|link|install|none] [--deps-path D]
|
|
43
43
|
tạo worktree cho một bước: <cha repo>/<tên repo>-wt-<task_id> trên nhánh dp/<task_id>,
|
|
44
|
-
có dấu dieu-phoi (điều phối viên dùng lệnh này, không git worktree add tay)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
có dấu dieu-phoi (điều phối viên dùng lệnh này, không git worktree add tay).
|
|
45
|
+
Repo đủ max_worktrees_repo (8; đếm cả checkout chính) thì từ chối kèm ứng viên dọn; --force vượt trần.
|
|
46
|
+
--deps (opt-in, mặc định none; env DIEU_PHOI_WT_DEPS / config wt_deps): install = pnpm install --frozen-lockfile
|
|
47
|
+
--offline; link = junction tới node_modules checkout chính khi package-lock giống hệt, không workspaces;
|
|
48
|
+
auto = pnpm thì install, không thì link; không đủ điều kiện → none + gợi ý. --deps-path: thư mục con có package.json
|
|
49
|
+
wt clean [--repo R] [--stale-days N] [--yes]
|
|
50
|
+
liệt kê worktree có dấu mà task đã nghiệm thu / bị loại, thư mục đã mất, hoặc sạch + nhánh đã merge
|
|
51
|
+
+ cũ ≥ N ngày (mặc định wt_stale_days 7); mặc định dry-run, --yes mới gỡ (còn thay đổi luôn giữ; nhánh giữ nguyên)
|
|
52
|
+
wt list [--repo R] [--all] [--json]
|
|
53
|
+
bảng worktree có dấu: task, tuổi, sạch/bẩn, node_modules (link|dir|none), deps của dấu; --all thêm worktree không dấu (chỉ báo)
|
|
48
54
|
steer <agent_id> --kind minor|plan|redirect [--reason R]
|
|
49
55
|
steer --task <task_id> --kind minor|plan|redirect [--reason R]
|
|
50
56
|
ghi một lần người dùng lái giữa chừng (--task: chỉ các agent đang chạy của task)
|
|
@@ -59,11 +65,19 @@ Cách dùng: dieu-phoi <lệnh> [tuỳ chọn]
|
|
|
59
65
|
(--mode mặc định: mode của root của --task, rồi normal)
|
|
60
66
|
ctx [--session <id>] [--json]
|
|
61
67
|
context + chi phí của phiên điều phối (mặc định $CLAUDE_CODE_SESSION_ID) so với trần mềm
|
|
68
|
+
reap [--yes] [--orphans] [--session <id>] [--json]
|
|
69
|
+
agent kẹt/mồ côi trong data/live (im > stuck_idle_min, chạy > stuck_hard_min, còn sống sau STATUS); mặc định dry-run, --yes xoá file live + ghi event reap; kill tiến trình con theo kill_leftovers (guarded mặc định: chỉ cái quy chắc về agent, kiểm lại pid + giờ tạo); --orphans thêm tail/sleep/shell mồ côi quá orphan_kill_min (60) phút
|
|
62
70
|
state [--session <id>] [--json]
|
|
63
71
|
trạng thái điều phối của phiên dựng lại từ log (cũng được nạp tự động sau /compact)
|
|
64
72
|
plan-table --file <steps.json> [--mode M] [--json] [--approve --root <root_task_id>]
|
|
65
73
|
bảng phân công: Bước | Model/effort | Kiểm | Lý do | Ước tính + tổng + đường găng;
|
|
66
74
|
file là mảng bước hoặc { "mode": "fast", "steps": [...] } (bước có thể ghi đè "mode")
|
|
75
|
+
load sample [--interval 10] [--count 12] [--repo R] [--json]
|
|
76
|
+
đo tải (core 0.7.3): mỗi mẫu một dòng data/load.jsonl — số agent theo phiên/toàn máy, hàng đợi,
|
|
77
|
+
worktree có dấu, tốc độ đọc/ghi đĩa (Windows: typeperf; Linux: /proc/diskstats; thiếu thì null)
|
|
78
|
+
load report [--days 21] [--json]
|
|
79
|
+
số phút ở mỗi mức đồng thời (toàn máy, phiên lớn nhất) từ events dispatch/complete, và tương quan
|
|
80
|
+
IO đĩa với số agent toàn máy từ load.jsonl
|
|
67
81
|
new-id [--count n] [--json]
|
|
68
82
|
in task_id mới hợp lệ (8 ký tự a-z0-9), mỗi dòng một id — không tự bịa id
|
|
69
83
|
sync đẩy bản ghi chưa đồng bộ lên sink
|
|
@@ -127,9 +141,11 @@ async function main(argv) {
|
|
|
127
141
|
'plan-table': c.cmdPlanTable,
|
|
128
142
|
'new-id': c.cmdNewId,
|
|
129
143
|
stats: c.cmdStats,
|
|
144
|
+
load: (o) => require('../lib/load.cjs').cmdLoad(o),
|
|
130
145
|
choose: c.cmdChoose,
|
|
131
146
|
ctx: c.cmdCtx,
|
|
132
147
|
state: c.cmdState,
|
|
148
|
+
reap: c.cmdReap,
|
|
133
149
|
sync: c.cmdSync,
|
|
134
150
|
retro: c.cmdRetro,
|
|
135
151
|
prune: c.cmdPrune,
|