@legna-lnc/legnacode 1.1.0 → 1.1.2

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 ADDED
@@ -0,0 +1,243 @@
1
+ # Changelog
2
+
3
+ All notable changes to LegnaCode CLI will be documented in this file.
4
+
5
+ ## [1.1.0] - 2026-04-03
6
+
7
+ ### New Features
8
+
9
+ - **WebUI 管理面板** — `legna admin` 启动浏览器管理面板(HTTP server + React SPA,默认端口 3456),可视化管理 `~/.claude/` 和 `~/.legna/` 两个配置目录
10
+ - **配置编辑** — 在浏览器中编辑 API 端点、API Key、模型映射(Opus/Sonnet/Haiku)、超时、权限模式、语言等所有 settings.json 字段
11
+ - **配置文件切换** — 列出 settings*.json,显示 baseUrl/model,一键交换激活
12
+ - **会话记录浏览** — 解析 projects 目录下所有 session jsonl 文件,显示项目路径、slug、时间、prompt 数量,复制 resume 命令
13
+ - **配置迁移** — Claude ↔ LegnaCode 双向迁移,支持全量或选择性字段迁移(env/model/permissions 等),迁移前预览 diff
14
+ - **npm 发布基础设施** — bin wrapper、compile-all 跨平台编译、publish 脚本
15
+ - **OAuth 禁用** — `isAnthropicAuthEnabled()` 返回 false,移除 OAuth 登录流程
16
+
17
+ ### Architecture
18
+
19
+ - 后端:`src/server/admin.ts` — Bun.serve REST API + SPA 静态文件服务
20
+ - 前端:`webui/` — React 18 + Vite + Tailwind SPA,Tab 切换 scope
21
+ - CLI:`src/entrypoints/cli.tsx` — `admin` fast-path,零额外模块加载
22
+ - 构建:`scripts/build-webui.ts` — WebUI 构建脚本
23
+
24
+ ### Files Changed
25
+
26
+ | 文件 | 改动 |
27
+ |------|------|
28
+ | `src/server/admin.ts` | 新增:HTTP API + 静态文件服务 |
29
+ | `src/entrypoints/cli.tsx` | admin fast-path |
30
+ | `webui/` | 新增:完整 React SPA(package.json, vite, tailwind, 4 个面板组件) |
31
+ | `scripts/build-webui.ts` | 新增:WebUI 构建脚本 |
32
+ | `scripts/compile-all.ts` | 新增:跨平台编译 |
33
+ | `scripts/publish.ts` | 新增:npm 发布 |
34
+ | `.gitignore` | 添加 webui/dist/, webui/node_modules/ |
35
+ | `bunfig.toml` | 版本号 → 1.1.0 |
36
+ | `package.json` | 版本号 → 1.1.0 |
37
+
38
+ ## [1.0.9] - 2026-04-03
39
+
40
+ ### New Features
41
+
42
+ - **i18n 多语言补全** — 补全 9 个文件约 100 处遗漏的硬编码英文字符串,覆盖 Spinner、队友树、pill 标签、快捷键提示、Tips 等全部 UI 区域
43
+ - **内置精美状态栏** — 无需配置外部脚本,默认显示目录、Git 分支/同步状态、模型名(智能解析为友好名)、彩色上下文进度条、时间;跨平台兼容 Win/Mac/Linux
44
+ - **配置自动迁移** — 启动时自动将 `~/.claude/settings.json` 同步到 `~/.legna/settings.json`;两边不一致时打印警告不覆盖;`LEGNA_NO_CONFIG_SYNC=1` 禁止迁移
45
+
46
+ ### Changed
47
+
48
+ - `~/.legna/` 为首选配置目录,`~/.claude/` 作为兼容回退
49
+ - 状态栏模型名自动解析:`Claude-Opus-4-6-Agentic[1m]` → `Opus 4.6`
50
+ - `KeyboardShortcutHint` 组件中 "to" 连接词已国际化(中文显示为 "→")
51
+
52
+ ### Files Changed
53
+
54
+ | 文件 | 改动 |
55
+ |------|------|
56
+ | `src/utils/i18n/zh.ts` | +50 条翻译条目 |
57
+ | `src/components/Spinner.tsx` | 7 处 i18n |
58
+ | `src/components/PromptInput/PromptInputFooterLeftSide.tsx` | 4 处 i18n |
59
+ | `src/components/design-system/KeyboardShortcutHint.tsx` | "to" 国际化 |
60
+ | `src/components/Spinner/teammateSelectHint.ts` | i18n |
61
+ | `src/components/Spinner/TeammateSpinnerTree.tsx` | 6 处 i18n |
62
+ | `src/components/Spinner/TeammateSpinnerLine.tsx` | 7 处 i18n |
63
+ | `src/tasks/pillLabel.ts` | 全部 pill 标签 i18n |
64
+ | `src/services/tips/tipRegistry.ts` | 25 条 tips i18n |
65
+ | `src/utils/builtinStatusLine.ts` | 新增:内置状态栏渲染器 |
66
+ | `src/components/StatusLine.tsx` | 集成内置状态栏 |
67
+ | `src/utils/envUtils.ts` | 配置自动迁移逻辑 |
68
+
69
+ ## [1.0.8] - 2026-04-02
70
+
71
+ ### New Features
72
+
73
+ - **MONITOR_TOOL** — MCP 服务器健康监控工具,支持 start/stop/status 操作,后台定期 ping 检测连接状态
74
+ - **WORKFLOW_SCRIPTS** — 工作流自动化系统,读取 `.claude/workflows/*.md` 执行多步骤工作流,`/workflows` 命令列出可用工作流
75
+ - **HISTORY_SNIP** — 会话历史裁剪,模型可主动调用 SnipTool 移除旧消息释放上下文,`/force-snip` 强制裁剪,UI 保留完整历史而模型视图过滤
76
+
77
+ ### Infrastructure
78
+
79
+ - 新增 `src/tools/MonitorTool/MonitorTool.ts` — MCP 监控工具(buildTool 构建)
80
+ - 新增 `src/tasks/MonitorMcpTask/MonitorMcpTask.ts` — 监控后台任务生命周期管理
81
+ - 新增 `src/components/permissions/MonitorPermissionRequest/` — 监控权限 UI
82
+ - 新增 `src/components/tasks/MonitorMcpDetailDialog.tsx` — 监控任务详情对话框
83
+ - 新增 `src/tools/WorkflowTool/WorkflowTool.ts` — 工作流执行工具
84
+ - 新增 `src/tools/WorkflowTool/createWorkflowCommand.ts` — 工作流命令扫描与注册
85
+ - 新增 `src/tools/WorkflowTool/bundled/index.ts` — 内置工作流注册入口
86
+ - 新增 `src/tools/WorkflowTool/WorkflowPermissionRequest.tsx` — 工作流权限 UI
87
+ - 新增 `src/commands/workflows/` — `/workflows` 斜杠命令
88
+ - 新增 `src/tasks/LocalWorkflowTask/LocalWorkflowTask.ts` — 工作流后台任务(kill/skip/retry)
89
+ - 新增 `src/components/tasks/WorkflowDetailDialog.tsx` — 工作流详情对话框
90
+ - 新增 `src/services/compact/snipCompact.ts` — 裁剪触发逻辑(重写 stub)
91
+ - 新增 `src/services/compact/snipProjection.ts` — 模型视图消息过滤
92
+ - 新增 `src/tools/SnipTool/SnipTool.ts` — 模型调用的裁剪工具
93
+ - 新增 `src/tools/SnipTool/prompt.ts` — SnipTool 常量与 prompt
94
+ - 新增 `src/commands/force-snip.ts` — `/force-snip` 斜杠命令
95
+ - 新增 `src/components/messages/SnipBoundaryMessage.tsx` — 裁剪边界 UI 组件
96
+ - 3 个 feature flags 翻转:MONITOR_TOOL、WORKFLOW_SCRIPTS、HISTORY_SNIP
97
+ - 累计已开启 47/87 个 feature flags
98
+
99
+ ## [1.0.7] - 2026-04-02
100
+
101
+ ### New Features
102
+
103
+ - **TERMINAL_PANEL** — `Alt+J` 切换内置终端面板(tmux 持久化),TerminalCapture 工具可读取终端内容
104
+ - **WEB_BROWSER_TOOL** — 内置 Web 浏览工具,fetch 抓取网页内容并提取文本
105
+ - **TEMPLATES** — 结构化工作流模板系统,`legna new/list/reply` CLI 命令,job 状态追踪
106
+ - **BG_SESSIONS** — 后台会话管理,`legna ps/logs/attach/kill/--bg`,tmux 持久化 + PID 文件发现
107
+
108
+ ### Infrastructure
109
+
110
+ - 新增 `src/tools/TerminalCaptureTool/` — tmux capture-pane 工具(2 文件)
111
+ - 新增 `src/tools/WebBrowserTool/WebBrowserTool.ts` — fetch + HTML 文本提取
112
+ - 新增 `src/jobs/classifier.ts` — 工作流 turn 分类器
113
+ - 新增 `src/cli/handlers/templateJobs.ts` — 模板 CLI 处理器
114
+ - 新增 `src/cli/bg.ts` — 后台会话 CLI(5 个 handler)
115
+ - 新增 `src/utils/taskSummary.ts` — 周期性活动摘要
116
+ - 新增 `src/utils/udsClient.ts` — 活跃会话枚举
117
+ - 累计已开启 44/87 个 feature flags
118
+
119
+ ## [1.0.6] - 2026-04-02
120
+
121
+ ### New Features
122
+
123
+ - **CACHED_MICROCOMPACT** — 缓存感知的工具结果压缩,通过 API cache_edits 指令删除旧 tool_result 而不破坏 prompt cache
124
+ - **AGENT_TRIGGERS** — `/loop` cron 调度命令 + CronCreate/Delete/List 工具,本地定时任务引擎
125
+ - **TREE_SITTER_BASH** — 纯 TypeScript bash AST 解析器(~4300 行),用于命令安全分析
126
+ - **TREE_SITTER_BASH_SHADOW** — tree-sitter 与 legacy 解析器的 shadow 对比模式
127
+ - **MCP_SKILLS** — 从 MCP 服务器 `skill://` 资源自动发现并注册技能命令
128
+ - **REACTIVE_COMPACT** — 413/过载错误时自动触发上下文压缩
129
+ - **REVIEW_ARTIFACT** — `/review` 代码审查技能 + ReviewArtifact 工具
130
+
131
+ ### Infrastructure
132
+
133
+ - 重写 `src/services/compact/cachedMicrocompact.ts`(从 stub 到 150+ 行完整实现)
134
+ - 新增 `src/services/compact/cachedMCConfig.ts` — 同步配置模块
135
+ - 新增 `CACHE_EDITING_BETA_HEADER` 到 `src/constants/betas.ts`
136
+ - 新增 `src/skills/mcpSkills.ts`、`src/services/compact/reactiveCompact.ts`
137
+ - 新增 `src/tools/ReviewArtifactTool/`、`src/skills/bundled/hunter.ts`
138
+ - 累计已开启 40/87 个 feature flags
139
+
140
+ ## [1.0.5] - 2026-04-02
141
+
142
+ ### New Features
143
+
144
+ - **AGENT_TRIGGERS** — `/loop` cron 调度命令,CronCreate/Delete/List 工具,本地定时任务引擎
145
+ - **TREE_SITTER_BASH** — 纯 TypeScript bash AST 解析器,用于命令安全分析
146
+ - **TREE_SITTER_BASH_SHADOW** — tree-sitter 与 legacy 解析器的 shadow 对比模式
147
+ - **MCP_SKILLS** — 从 MCP 服务器的 `skill://` 资源自动发现并注册技能命令
148
+ - **REACTIVE_COMPACT** — 413/过载错误时自动触发上下文压缩
149
+ - **REVIEW_ARTIFACT** — `/review` 代码审查技能 + ReviewArtifact 工具 + 权限 UI
150
+
151
+ ### Infrastructure
152
+
153
+ - 新增 `src/skills/mcpSkills.ts` — MCP 技能发现模块
154
+ - 新增 `src/services/compact/reactiveCompact.ts` — 响应式压缩策略
155
+ - 新增 `src/tools/ReviewArtifactTool/` — 代码审查工具
156
+ - 新增 `src/components/permissions/ReviewArtifactPermissionRequest/` — 审查权限 UI
157
+ - 新增 `src/skills/bundled/hunter.ts` — /review 技能注册
158
+ - 累计已开启 39/87 个 feature flags
159
+
160
+ ## [1.0.4] - 2026-04-02
161
+
162
+ ### New Features
163
+
164
+ - **ULTRAPLAN** — `/ultraplan` 结构化多步骤规划命令
165
+ - **VERIFICATION_AGENT** — 批量任务完成后自动派生验证 Agent
166
+ - **AUTO_THEME** — 通过 OSC 11 查询终端背景色自动切换深色/浅色主题
167
+ - **AGENT_MEMORY_SNAPSHOT** — Agent 记忆快照
168
+ - **FILE_PERSISTENCE** — 文件持久化追踪
169
+ - **POWERSHELL_AUTO_MODE** — PowerShell 自动模式
170
+ - **HARD_FAIL** — 严格错误模式
171
+ - **SLOW_OPERATION_LOGGING** — 慢操作日志
172
+ - **UNATTENDED_RETRY** — 无人值守重试
173
+ - **ALLOW_TEST_VERSIONS** — 允许测试版本
174
+
175
+ ### Infrastructure
176
+
177
+ - 新增 `src/utils/systemThemeWatcher.ts` — OSC 11 终端主题检测与实时监听
178
+ - 累计已开启 33/87 个 feature flags
179
+
180
+ ## [1.0.3] - 2026-04-02
181
+
182
+ ### New Features
183
+
184
+ - **COMMIT_ATTRIBUTION** — 追踪每次 commit 中 Claude 的贡献比例,PR 描述自动附加归因 trailer
185
+ - **AWAY_SUMMARY** — 用户离开后返回时显示期间发生的摘要
186
+ - **COMPACTION_REMINDERS** — 上下文压缩时的效率提醒
187
+ - **HOOK_PROMPTS** — 允许 hooks 向用户请求输入
188
+ - **BASH_CLASSIFIER** — Shell 命令安全分类器
189
+ - **EXTRACT_MEMORIES** — 自动从对话中提取持久化记忆
190
+ - **SHOT_STATS** — 会话统计面板
191
+ - **PROMPT_CACHE_BREAK_DETECTION** — 检测 prompt cache 失效
192
+ - **ULTRATHINK** — 深度思考模式
193
+ - **MCP_RICH_OUTPUT** — MCP 工具富文本输出
194
+ - **CONNECTOR_TEXT** — 连接器文本增强
195
+ - **NATIVE_CLIPBOARD_IMAGE** — 原生剪贴板图片支持
196
+ - **NEW_INIT** — 改进的项目初始化流程
197
+ - **DUMP_SYSTEM_PROMPT** — 调试用 system prompt 导出
198
+ - **BREAK_CACHE_COMMAND** — `/break-cache` 命令
199
+ - **BUILTIN_EXPLORE_PLAN_AGENTS** — 内置 Explore/Plan Agent
200
+
201
+ ### Infrastructure
202
+
203
+ - 新增 `src/utils/attributionHooks.ts`、`attributionTrailer.ts`、`postCommitAttribution.ts` 三个归因模块
204
+
205
+ ## [1.0.2] - 2026-04-02
206
+
207
+ ### New Features
208
+
209
+ - **QUICK_SEARCH** — 全屏模式下 `Ctrl+P` 快速打开文件,`Ctrl+Shift+F` 全局符号/内容搜索
210
+ - **MESSAGE_ACTIONS** — 全屏模式下对消息进行复制、编辑、重试等操作
211
+ - **FORK_SUBAGENT** — `/fork <directive>` 会话分叉,子 Agent 继承完整对话上下文并行执行任务
212
+ - **HISTORY_PICKER** — `Ctrl+R` 弹出历史搜索对话框,替代原有的内联搜索
213
+
214
+ ### Infrastructure
215
+
216
+ - 新增 `src/commands/fork/` 命令模块和 `UserForkBoilerplateMessage` UI 组件
217
+
218
+ ## [1.0.1] - 2026-04-02
219
+
220
+ ### New Features
221
+
222
+ - **BUDDY 虚拟宠物伴侣** — `/buddy hatch` 孵化专属编程宠物,18 种物种、5 种稀有度、随机属性
223
+ - `/buddy hatch` 孵化 · `/buddy pet` 摸摸 · `/buddy stats` 属性 · `/buddy release` 放生
224
+ - 宠物根据对话上下文用可爱中文冒泡评论,支持多语言自动切换
225
+ - 放生后重新孵化会得到不同的宠物(generation 计数器)
226
+ - **TOKEN_BUDGET** — 提示中使用 `+500k` 或 `use 2M tokens` 设定 token 预算,自动追踪用量
227
+ - **STREAMLINED_OUTPUT** — 环境变量 `CLAUDE_CODE_STREAMLINED_OUTPUT=true` 启用精简输出
228
+
229
+ ### Fixes
230
+
231
+ - **构建系统 Feature Flags 修复** — `scripts/build.ts` 现在正确读取 `bunfig.toml` 的 `[bundle.features]` 并传递给 `Bun.build()` API,此前所有 `feature()` 调用默认为 `false`
232
+
233
+ ### Infrastructure
234
+
235
+ - 新增 `scripts/compile.ts` 替代裸 `bun build --compile`,确保编译二进制正确应用 feature flags
236
+ - 新增 `src/buddy/companionObserver.ts` 上下文感知的宠物反应系统
237
+ - 新增 `src/commands/buddy/` 完整命令模块
238
+
239
+ ## [1.0.0] - 2026-03-31
240
+
241
+ - Initial release: LegnaCode CLI v1.0.0
242
+ - 基于 Claude Code CLI 开源版本构建
243
+ - 品牌适配与定制化改造
package/README.md CHANGED
@@ -60,41 +60,50 @@ Claude Code 是 Anthropic 团队打造的一款出色的终端 AI 编程工具
60
60
 
61
61
  ---
62
62
 
63
- ## 快速开始
63
+ ## 安装
64
64
 
65
- ### 1. 克隆仓库
65
+ ### 方式一:npm 全局安装(推荐)
66
66
 
67
67
  ```bash
68
- git clone https://github.com/LegnaOS/LegnaCode-cli.git
69
- cd LegnaCode-cli
68
+ npm install -g @legna-lnc/legnacode
70
69
  ```
71
70
 
72
- ### 2. 安装依赖
71
+ 安装后即可在任意目录使用 `legna` 命令。会自动下载当前平台的预编译二进制(支持 macOS arm64/x64、Linux x64/arm64、Windows x64)。
73
72
 
74
73
  ```bash
75
- bun install
74
+ # 验证安装
75
+ legna --version
76
+
77
+ # 更新到最新版
78
+ npm update -g @legna-lnc/legnacode
76
79
  ```
77
80
 
78
- ### 3. 编译为独立二进制
81
+ ### 方式二:从源码编译
79
82
 
80
83
  ```bash
84
+ git clone https://github.com/LegnaOS/LegnaCode-cli.git
85
+ cd LegnaCode-cli
86
+ bun install
81
87
  bun run compile
88
+ # 编译产物为 ./legna,可移动到 PATH 中
82
89
  ```
83
90
 
84
- ### 4. 运行
91
+ ---
92
+
93
+ ## 快速开始
85
94
 
86
95
  ```bash
87
96
  # 交互模式
88
- ./legna
97
+ legna
89
98
 
90
99
  # 非交互模式(直接提问)
91
- ./legna -p "解释这段代码的作用"
100
+ legna -p "解释这段代码的作用"
92
101
 
93
102
  # 继续上次会话
94
- ./legna --continue
103
+ legna --continue
95
104
 
96
105
  # 查看版本
97
- ./legna --version
106
+ legna --version
98
107
  ```
99
108
 
100
109
  ---
@@ -129,19 +138,26 @@ LegnaCode 使用 Bun 的 bundler 进行构建,支持两种模式:
129
138
 
130
139
  ### Admin WebUI
131
140
 
141
+ `legna admin` 启动一个浏览器管理面板,让你通过 Web 界面管理所有配置,无需手动编辑 JSON 文件。
142
+
132
143
  ```bash
133
- # 启动管理面板(默认端口 3456
144
+ # 启动管理面板(默认端口 3456,自动打开浏览器)
134
145
  legna admin
135
146
 
136
147
  # 自定义端口
137
148
  legna admin 8080
138
149
  ```
139
150
 
140
- 管理面板支持:
141
- - 可视化编辑 `~/.claude/` 和 `~/.legna/` 的 settings.json
142
- - 配置文件(settings*.json)一键切换
143
- - 会话记录浏览,复制 resume 命令
144
- - Claude LegnaCode 配置迁移(全量或选择性字段)
151
+ 面板顶部通过 Tab 切换管理对象:**Claude** (`~/.claude/`) 和 **LegnaCode** (`~/.legna/`),每个 scope 下提供四个功能面板:
152
+
153
+ | 面板 | 功能 |
154
+ |------|------|
155
+ | 配置编辑 | 可视化编辑 settings.json:API 端点、API Key、模型映射(Opus/Sonnet/Haiku)、超时、权限模式、语言等 |
156
+ | 配置文件 | 列出所有 settings*.json,显示 baseUrl/model,一键切换激活配置 |
157
+ | 会话记录 | 浏览历史会话,显示项目路径、slug、时间、prompt 数量,一键复制 `legna --resume` 命令 |
158
+ | 配置迁移 | Claude ↔ LegnaCode 双向迁移,支持全量或选择性字段迁移,迁移前预览 diff |
159
+
160
+ > 从源码运行时需要先构建前端:`cd webui && npm install && npm run build`,然后 `bun run src/server/admin.ts`。npm 全局安装的版本已包含预构建的 WebUI。
145
161
 
146
162
  构建时通过 `bunfig.toml` 中的 `[bundle.define]` 注入版本号等编译时常量,通过 `[bundle.features]` 控制 Feature Flags 实现死代码消除。
147
163
 
package/package.json CHANGED
@@ -1,15 +1,22 @@
1
1
  {
2
2
  "name": "@legna-lnc/legnacode",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "LegnaCode — legna.lnc's official CLI for coding assistance",
5
5
  "type": "module",
6
6
  "bin": {
7
- "legna": "npm/bin/legna"
7
+ "legna": "npm/bin/legna.cjs"
8
8
  },
9
9
  "files": [
10
10
  "npm/",
11
- "README.md"
11
+ "README.md",
12
+ "CHANGELOG.md"
12
13
  ],
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/LegnaOS/LegnaCode-cli.git"
17
+ },
18
+ "homepage": "https://github.com/LegnaOS/LegnaCode-cli",
19
+ "keywords": ["cli", "ai", "claude", "coding", "assistant", "legnacode", "anthropic"],
13
20
  "scripts": {
14
21
  "build": "bun run scripts/build.ts && python3 scripts/postbuild-fix.py",
15
22
  "compile": "bun run scripts/compile.ts",
File without changes