@logicseek/hello-cc 0.1.5 → 0.1.7

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 (88) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +21 -3
  3. package/README.zh-CN.md +21 -3
  4. package/assets/screenshots/web-console.png +0 -0
  5. package/bin/hcc.mjs +1943 -3519
  6. package/docs/README.md +2 -0
  7. package/docs/README.zh-CN.md +3 -1
  8. package/docs/architecture-split-review.md +217 -0
  9. package/docs/architecture.md +385 -0
  10. package/docs/architecture.zh-CN.md +364 -0
  11. package/docs/layout-split-stack-audit.md +298 -0
  12. package/lib/automation.mjs +8 -0
  13. package/lib/cli-args.mjs +1 -1
  14. package/lib/cli-runtime.mjs +45 -0
  15. package/lib/coordination-state.mjs +218 -0
  16. package/lib/core/coordination/automation.mjs +222 -0
  17. package/lib/core/coordination/locks.mjs +46 -0
  18. package/lib/core/coordination/messages.mjs +116 -0
  19. package/lib/core/coordination/tasks.mjs +240 -0
  20. package/lib/core/coordination/teams.mjs +73 -0
  21. package/lib/core/coordination/timeline.mjs +196 -0
  22. package/lib/core/peers/bindings.mjs +83 -0
  23. package/lib/core/peers/format.mjs +13 -0
  24. package/lib/core/peers/identity.mjs +61 -0
  25. package/lib/core/peers/liveness.mjs +90 -0
  26. package/lib/core/peers/reconcile.mjs +238 -0
  27. package/lib/core/peers/session.mjs +14 -0
  28. package/lib/core/sessions/launch.mjs +89 -0
  29. package/lib/db/schema.mjs +324 -0
  30. package/lib/db/stores/peers.mjs +231 -0
  31. package/lib/db-schema.mjs +7 -324
  32. package/lib/errors.mjs +1 -7
  33. package/lib/handoff.mjs +26 -0
  34. package/lib/help.mjs +3 -0
  35. package/lib/integrations/hooks.mjs +171 -0
  36. package/lib/integrations/peers/identity.mjs +208 -0
  37. package/lib/integrations/peers/processes.mjs +151 -0
  38. package/lib/integrations/providers.mjs +282 -0
  39. package/lib/integrations/shims/script.mjs +384 -0
  40. package/lib/integrations/shims.mjs +106 -0
  41. package/lib/json-file.mjs +1 -14
  42. package/lib/locks.mjs +10 -0
  43. package/lib/messages.mjs +3 -0
  44. package/lib/package-meta.mjs +6 -24
  45. package/lib/peer-bindings.mjs +14 -0
  46. package/lib/peer-format.mjs +4 -0
  47. package/lib/peer-identity.mjs +15 -0
  48. package/lib/project-context.mjs +6 -0
  49. package/lib/project-registry.mjs +7 -0
  50. package/lib/provider-commands.mjs +13 -0
  51. package/lib/release/package-meta.mjs +31 -0
  52. package/lib/release/release-notes.mjs +40 -0
  53. package/lib/release-notes.mjs +6 -40
  54. package/lib/runtime/client.mjs +42 -0
  55. package/lib/runtime/paths.mjs +45 -0
  56. package/lib/runtime/project-context.mjs +32 -0
  57. package/lib/runtime/projects.mjs +76 -0
  58. package/lib/runtime/state.mjs +128 -0
  59. package/lib/runtime-client.mjs +3 -0
  60. package/lib/runtime-paths.mjs +11 -45
  61. package/lib/runtime-state.mjs +11 -0
  62. package/lib/session-launch.mjs +17 -0
  63. package/lib/setup.mjs +17 -293
  64. package/lib/shared/errors.mjs +7 -0
  65. package/lib/shared/json-file.mjs +14 -0
  66. package/lib/shim-script.mjs +1 -384
  67. package/lib/state-render.mjs +5 -0
  68. package/lib/task-cli.mjs +45 -0
  69. package/lib/task-liveness.mjs +8 -0
  70. package/lib/task-store.mjs +3 -0
  71. package/lib/team-planning.mjs +7 -0
  72. package/lib/terminal/tmux.mjs +372 -0
  73. package/lib/timeline.mjs +12 -0
  74. package/lib/tmux.mjs +18 -0
  75. package/lib/ui/help.mjs +419 -0
  76. package/lib/ui/state-render.mjs +61 -0
  77. package/lib/web/http.mjs +55 -0
  78. package/lib/web/peer-actions.mjs +306 -0
  79. package/lib/web/runtime.mjs +154 -0
  80. package/lib/web/ui-template.mjs +2057 -0
  81. package/lib/web-http.mjs +7 -55
  82. package/lib/web-peer-actions.mjs +3 -0
  83. package/lib/web-runtime.mjs +17 -108
  84. package/lib/web-ui-template.mjs +3 -1909
  85. package/package.json +1 -1
  86. package/scripts/github-release.mjs +2 -2
  87. package/scripts/regression.mjs +2901 -79
  88. package/scripts/release-notes.mjs +2 -2
package/CHANGELOG.md CHANGED
@@ -16,6 +16,136 @@ the release description from the current changelog section. Use
16
16
  `npm run release:github` with `GH_TOKEN` or `GITHUB_TOKEN` only for local
17
17
  backfills.
18
18
 
19
+ ## 0.1.7
20
+
21
+ ### Summary
22
+
23
+ hello-cc 0.1.7 publishes the post-0.1.6 Web and coordination hardening work
24
+ alongside the README product screenshot. It keeps the 0.1.6 package surface and
25
+ adds stricter peer identity behavior, audited Web peer actions, cleaner tmux
26
+ test isolation, and clearer first-run documentation for the Web console.
27
+
28
+ ### Highlights
29
+
30
+ - Enforced system-peer identity handling so internal coordination actions stay
31
+ attributable and do not accidentally inherit a user peer identity.
32
+ - Audited Web peer action flows and expanded regression coverage around task,
33
+ message, lock, and tmux cleanup paths used by the browser console.
34
+ - Cleaned tmux-focused regression tests so runtime cleanup and test isolation
35
+ stay stable across repeated local runs.
36
+ - Added a sanitized Web console screenshot to both English and Chinese README
37
+ files, showing sessions, terminal output, project state, messages, peers,
38
+ tasks, and locks.
39
+ - Documented that `hcc web` defaults to a LAN-facing `0.0.0.0` bind, requests
40
+ port `8787`, prints both `open:` and `local:` token URLs, and auto-tries later
41
+ ports when `--port` is not explicit.
42
+
43
+ ### Compatibility Notes
44
+
45
+ - No breaking CLI command changes are intended in this release.
46
+ - The Web access model remains token-in-URL based; use `--local` when the Web
47
+ console should bind only to `127.0.0.1`.
48
+ - This release does not change the public package surface introduced in 0.1.6.
49
+
50
+ ### Validation
51
+
52
+ The 0.1.7 release should be validated with:
53
+
54
+ ```bash
55
+ git diff --check
56
+ node --check bin/hcc.mjs
57
+ find lib -name '*.mjs' -print0 | xargs -0 -n1 node --check
58
+ node --check scripts/github-release.mjs
59
+ node --check scripts/regression.mjs
60
+ node --check scripts/release-notes.mjs
61
+ npm run release:check
62
+ npm run release:github:dry-run -- --version 0.1.7
63
+ npm pack --dry-run --json
64
+ npm publish --dry-run --registry=https://registry.npmjs.org/ --access public
65
+ npm test
66
+ ```
67
+
68
+ The expected full regression marker is:
69
+
70
+ ```text
71
+ FULL_REGRESSION_OK
72
+ ```
73
+
74
+ ## 0.1.6
75
+
76
+ ### Summary
77
+
78
+ hello-cc 0.1.6 publishes the current architecture-layout cleanup that followed
79
+ 0.1.5 and records the split-stack audit that reviewed it. The installed CLI
80
+ behavior remains the public API, while internal helpers now live closer to their
81
+ product boundaries under `core/`, `runtime/`, `web/`, `terminal/`,
82
+ `integrations/`, `ui/`, `release/`, and `shared/`. This release keeps the
83
+ current master history as the publish path; teams that want cleaner refactor
84
+ history should use the documented rebuild-branch option instead.
85
+
86
+ ### Highlights
87
+
88
+ - Added architecture guidance for the target module layout and documented the
89
+ package-surface policy: `hcc` and `hello-cc` are the supported public
90
+ interfaces; deep `lib/` imports are compatibility paths, not user workflows.
91
+ - Added `docs/layout-split-stack-audit.md`, which classifies the local
92
+ `origin/master..HEAD` stack, calls out the early flat-helper extraction phase,
93
+ and records the package-surface and follow-up cleanup decisions before
94
+ publish.
95
+ - Moved peer, task, lock, message, team, timeline, automation, and session
96
+ helpers into `core/`, `db/`, `runtime/`, `terminal/`, and `integrations/`
97
+ boundaries while keeping compatibility entrypoints for already-exposed paths.
98
+ - Moved Web runtime, HTTP, UI template, and peer action helpers into `lib/web/`
99
+ while preserving existing Web console behavior.
100
+ - Moved provider command helpers and Claude/Codex hook and shim setup helpers
101
+ into `lib/integrations/`, including shim script generation under
102
+ `lib/integrations/shims/`.
103
+ - Moved JSON and CLI error helpers into `lib/shared/`, release metadata helpers
104
+ into `lib/release/`, and CLI-facing state/help rendering into `lib/ui/`.
105
+ - Expanded regression guards so module moves verify both the new primary
106
+ boundary and the compatibility re-export identity.
107
+
108
+ ### Compatibility Notes
109
+
110
+ - `@logicseek/hello-cc@0.1.5` was already published from git head `4969100`.
111
+ This release uses a new package version and does not republish `0.1.5`.
112
+ - Top-level `lib/*.mjs` files that were already published in `0.1.5` remain
113
+ available for this release cycle to avoid breaking deep imports exposed by the
114
+ package's `files` list.
115
+ - New top-level re-export-only helper paths introduced during the local layout
116
+ migration are treated as compatibility-only deep-import paths for this
117
+ release, not as target architecture. New code should prefer the
118
+ product-boundary modules documented in `docs/architecture.md`.
119
+ - The audit records remaining cleanup items for later focused work, including
120
+ moving SQL-heavy task store operations out of pure core, removing core/runtime
121
+ reverse dependencies on top-level formatting or Web helpers, and continuing to
122
+ split `cmdWeb()` by subsystem instead of by incidental helper names.
123
+ - No breaking CLI command changes are intended in this release.
124
+
125
+ ### Validation
126
+
127
+ The 0.1.6 release should be validated with:
128
+
129
+ ```bash
130
+ git diff --check
131
+ node --check bin/hcc.mjs
132
+ find lib -name '*.mjs' -print0 | xargs -0 -n1 node --check
133
+ node --check scripts/github-release.mjs
134
+ node --check scripts/regression.mjs
135
+ node --check scripts/release-notes.mjs
136
+ npm run release:check
137
+ npm run release:github:dry-run -- --version 0.1.6
138
+ npm pack --dry-run --json
139
+ npm publish --dry-run --registry=https://registry.npmjs.org/ --access public
140
+ npm test
141
+ ```
142
+
143
+ The expected full regression marker is:
144
+
145
+ ```text
146
+ FULL_REGRESSION_OK
147
+ ```
148
+
19
149
  ## 0.1.5
20
150
 
21
151
  ### Summary
package/README.md CHANGED
@@ -18,6 +18,14 @@ CLI sessions. It gives every terminal in one project a shared task board,
18
18
  mailbox, lock table, and browser console while keeping the real local terminal
19
19
  as the source of interaction.
20
20
 
21
+ <p align="center">
22
+ <img src="assets/screenshots/web-console.png" width="900" alt="hello-cc Web console showing agent sessions, task state, locks, messages, and terminal output">
23
+ </p>
24
+
25
+ <p align="center">
26
+ <em>One local Web console for tmux-backed Claude Code, Codex, tasks, locks, messages, and handoffs.</em>
27
+ </p>
28
+
21
29
  It is built for developers who run multiple AI coding agents in the same repo
22
30
  and need them to coordinate instead of guessing what the other sessions are
23
31
  doing.
@@ -81,9 +89,19 @@ hcc web
81
89
  ```
82
90
 
83
91
  Then open the printed URL. By default, `hcc web` listens on LAN interfaces and
84
- uses a saved URL token, generating one on first use. It initializes the project bus, installs
85
- Claude/Codex hooks and shims, starts or reuses the Web console, and returns the
86
- terminal to you.
92
+ requests `0.0.0.0:8787`, using a saved URL token generated on first use. If
93
+ port 8787 is already busy and you did not pass `--port`, it automatically tries
94
+ the next available port. The command prints both the LAN login URL and the local
95
+ loopback URL:
96
+
97
+ ```text
98
+ open: http://<machine-ip>:8787/?token=<saved-token>&project=/path/to/project
99
+ local: http://127.0.0.1:8787/?token=<saved-token>&project=/path/to/project
100
+ ```
101
+
102
+ Use `--local` to bind only to `127.0.0.1`, or `--port N` to request a specific
103
+ port. `hcc web` initializes the project bus, installs Claude/Codex hooks and
104
+ shims, starts or reuses the Web console, and returns the terminal to you.
87
105
 
88
106
  After the first shim install, open a new terminal or reload your shell:
89
107
 
package/README.zh-CN.md CHANGED
@@ -15,6 +15,14 @@
15
15
 
16
16
  `hello-cc` 是 Claude Code、Codex 和其他编程 CLI 会话的本地控制平面。它让同一个项目里的终端共享任务板、消息、锁、交接和浏览器控制台,同时保留真实本地终端作为主要交互入口。
17
17
 
18
+ <p align="center">
19
+ <img src="assets/screenshots/web-console.png" width="900" alt="hello-cc Web 控制台,展示 agent 会话、任务状态、锁、消息和终端输出">
20
+ </p>
21
+
22
+ <p align="center">
23
+ <em>一个本地 Web 控制台,统一管理 tmux-backed Claude Code、Codex、任务、锁、消息和交接。</em>
24
+ </p>
25
+
18
26
  它适合在同一个仓库里同时运行多个 AI 编程 agent 的场景:让它们知道彼此在做什么,而不是各自猜测。
19
27
 
20
28
  ## 特色
@@ -69,9 +77,19 @@ cd /path/to/project
69
77
  hcc web
70
78
  ```
71
79
 
72
- 然后打开命令输出里的 URL。默认情况下,`hcc web` 会监听内网地址,并在 URL
73
- 里附带固定 token;首次使用时自动生成并保存,之后默认复用。它会初始化项目总线,
74
- 安装 Claude/Codex hooks 和 shims,启动或复用 Web 控制台,然后把终端还给你。
80
+ 然后打开命令输出里的 URL。默认情况下,`hcc web` 会监听内网地址,请求
81
+ `0.0.0.0:8787`,并在 URL 里附带首次自动生成并保存的稳定 token。如果 8787
82
+ 端口已被占用,且你没有显式传 `--port`,它会自动尝试后续可用端口。启动时会同时
83
+ 打印内网登录地址和本机 loopback 地址:
84
+
85
+ ```text
86
+ open: http://<machine-ip>:8787/?token=<saved-token>&project=/path/to/project
87
+ local: http://127.0.0.1:8787/?token=<saved-token>&project=/path/to/project
88
+ ```
89
+
90
+ 使用 `--local` 可以只绑定 `127.0.0.1`,使用 `--port N` 可以指定请求端口。
91
+ `hcc web` 会初始化项目总线,安装 Claude/Codex hooks 和 shims,启动或复用 Web
92
+ 控制台,然后把终端还给你。
75
93
 
76
94
  第一次安装 shim 后,打开新终端或重新加载 shell:
77
95