claude-code-best
dceaacdf4f
Merge remote-tracking branch 'origin/main' into feature/pokemon/battle
2026-04-22 22:59:13 +08:00
unraid
23bb09d240
feat: 添加 model/provider 层改进
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 22:38:10 +08:00
unraid
d208855f07
feat: 添加 builtin-tools 增强与测试覆盖
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 22:38:10 +08:00
unraid
eec961352b
feat: 添加 napi 包测试覆盖与 stub 改进
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 22:38:10 +08:00
unraid
1837df5f88
feat: 添加 skill learning 技能学习闭环系统
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 22:38:09 +08:00
claude-code-best
7813904264
feat: 修复小细节
2026-04-22 17:59:22 +08:00
claude-code-best
02783e4f5d
feat: PC Box 管理系统 + 全英文名统一 + 队伍补位机制
...
- 新增 PC Box tab(左侧 party + 右侧 box 网格,支持 party↔box 拾取/放置/交换)
- 空格键抓取/放下,左键在 col=0 时切到 party 面板
- 使用 useTabHeaderFocus 避免左右键被 Tabs 组件拦截
- 所有 1025 只精灵统一使用 Dex 英文名,移除中英混搭
- compactParty 补位机制:不允许前置空位,队伍最少保留一只
- PC Box tab 移至第二位(Buddy → PC Box → Pokédex → Egg)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 17:21:24 +08:00
claude-code-best
2c15d9123d
fix: PokedexView 改为百分比统计视图,不再渲染全部 1025 只精灵
...
- 进度条固定 30 字符宽度,按百分比填充
- 新增分代统计(Gen I-IX),每代显示迷你进度条
- 只展示已发现的精灵,而非全部 1025 条
- 删除 groupByChain() 及进化链渲染(列表太长)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 15:18:18 +08:00
claude-code-best
1217c453c4
feat: 同步 pkmn Dex 全部 1025 只精灵,新增 SpeciesPicker 搜索选择器
...
- SpeciesId 从 10 项联合类型改为 string,动态从 @pkmn/sim Dex 加载 1025 只精灵
- getSpecies() 改用 Dex.species.get() 直接查找(gen wrapper 仅覆盖 733/1025)
- SUPPLEMENT/DEX_TO_SPECIES 动态生成,未收录 species 使用默认值兜底
- names/fallback 改为 partial records,缺失时回退到 Dex 英文名/通用 sprite
- 新增 SpeciesPicker 组件(基于 FuzzyPicker),支持中英文/编号搜索选择精灵
- BattleFlow configSelect 阶段替换为 SpeciesPicker,删除旧的上下翻页逻辑
- evolution 移除 ALL_SPECIES_IDS 限制,所有 Dex 物种均可进化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 15:15:19 +08:00
claude-code-best
77e8d15482
feat: 解决显示问题
2026-04-22 14:24:41 +08:00
claude-code-best
72cfb83de3
feat: 一大坨优化
2026-04-22 13:33:02 +08:00
claude-code-best
8bf645364f
fix: 处理精灵倒下后的强制换人和战斗结束判定
...
executeTurn 在精灵倒下时未处理 @pkmn/sim 的强制换人要求,
导致 "Not all choices done" 错误。现在:
- 检测 active Pokémon 是否倒下,自动切换到下一只
- 无可用精灵时使用 pass,让引擎正常判定胜负
- AI 侧同样处理强制换人
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 09:03:39 +08:00
claude-code-best
bd70971632
fix: Battle 快捷键通过 inputRef 转发至主 Ink 上下文
...
BattleFlow 不再直接调用 useInput(外部包的 Ink 上下文可能不同),
改为暴露 handleInput 方法,由 BuddyPanel 中的 BattleTab 通过
useInput + ref 转发键盘事件,确保在正确的 StdinContext 中工作。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 08:44:33 +08:00
claude-code-best
bfd14206a9
fix: 修复 BattleView 渲染 @pkmn/sim 原始 move 对象导致的 React 报错
...
projectPokemon 中 moveSlots 的 name 字段可能为 undefined,
导致整个对象被当作 React child 渲染。现在优先从 Dex 查询招式名称。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 08:37:03 +08:00
claude-code-best
f22caf0e97
feat: 集成 Battle tab 到 BuddyPanel,重命名 data/ 为 dex/ 规避 gitignore
...
- BuddyPanel 新增 Battle tab,BattleFlow 加 isActive 控制
- BattleFlow configSelect 阶段支持 ↑↓ 选择物种
- packages/pokemon/src/data/ → dex/,解决根 .gitignore 匹配问题
- 全量 Tab→2空格 缩进转换
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 08:35:19 +08:00
claude-code-best
25067e78af
fix: 修正 MoveLearnPanel 提示文本匹配实际键盘绑定
...
[S] 跳过, [1-4] 替换对应招式 — 与 BattleFlow 输入处理一致
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 07:03:22 +08:00
claude-code-best
70d8c0038c
refactor: 进化链动态生成替代硬编码
...
- PokedexView.tsx: groupByChain() 改用 ALL_SPECIES_IDS + getNextEvolution 动态构建
- SpeciesDetail.tsx: EvolutionChain 用相同方式找链头
- 删除未使用的 isInChain 函数
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 06:32:36 +08:00
claude-code-best
3c64113d77
feat: 添加 BattleFlow 完整键盘输入处理
...
所有 phase 现在都支持键盘交互:
- config: Enter/1=随机战斗, 2=指定对手, ESC=取消
- configSelect: Enter=确认, ESC=返回
- battle: 1-4=选招, S=换人, I=道具
- switch: 1-6=选队友, ESC=取消
- item: 1-9=选道具, ESC=取消
- result: Enter=继续
- learnMoves: 1-4=替换招式, S=跳过
- evolution: Enter=确认进化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 06:07:01 +08:00
claude-code-best
0777e1a1f9
refactor: 删除未使用的 pkmn.ts 辅助函数
...
- 删除 getMove、getAbility、getType、getPrimaryAbility(无生产代码引用)
- 同步删除对应的 pkmn.test.ts 测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 06:04:12 +08:00
claude-code-best
080bd93efc
test: 补充 hatchEgg 和 species 补充字段测试(227→237)
...
- egg.test.ts: 新增 hatchEgg 5 个测试
- 创建 creature 并移除 egg
- 放入 party 空位
- totalEggsObtained 计数
- 新 species dex entry 创建
- 已有 species caughtCount 递增
- species.test.ts: 新增 ensureSpeciesData、baseHappiness、captureRate、names、shinyChance 测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 05:04:16 +08:00
claude-code-best
363ba39cad
refactor: 消除 engine.ts 重复 break 和 evolution.test.ts 的 as any
...
- engine.ts: 移除 switch case 中多余的 break 语句
- evolution.test.ts: 用完整 Creature 对象替代 as any 类型转换
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 04:40:59 +08:00
claude-code-best
4b23bcd3eb
test: 增强测试覆盖(188→226 tests)
...
- battle.test.ts: 新增 createBattle/executeTurn/settleBattle 边界测试
- EV total cap、非参与者不变、空 participantIds 回退
- applyMoveLearn PP 验证、applyEvolution friendship cap
- 多次进化计数器、battlesWon/battlesLost 互斥
- 修复 makeTestCreature friendship 覆盖
- creature.test.ts: 新增 recalculateLevel、getActiveCreature、nature 效果测试
- experience.test.ts: 新增 xpToNextLevel、awardXP 0值、累积验证
- storage.test.ts: 新增 Bag/Box/Release 操作边界测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 04:39:41 +08:00
claude-code-best
4116ac9b5c
test: 增强 creature.test.ts 覆盖(recalculateLevel/getActiveCreature/性格效果)
...
新增 8 个测试用例:
- recalculateLevel: 等级不变/随经验更新
- getActiveCreature: 空 party/party[0]/legacy activeCreatureId/优先级/ID 不存在
- 性格效果: adamant 加攻减特攻、timid 加速减攻
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 04:35:51 +08:00
claude-code-best
39299f6e17
refactor: 清理未使用 import 和添加 spriteCache 错误日志
...
- SpeciesDetail.tsx: 移除未使用的 SPECIES_PERSONALITY import
- CompanionCard.tsx: 移除未使用的 SPECIES_I18N import
- spriteCache.ts: 空 catch 块添加错误日志输出
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 04:18:51 +08:00
claude-code-best
1bba087942
refactor: 代码优化(常量复用、清理未使用 import、错误日志)
...
- settlement.ts: 复用 MAX_EV_PER_STAT/MAX_EV_TOTAL 常量替代硬编码
- settlement.ts: 删除未使用的 Creature/addItemToBag/removeItemFromBag/xpForLevel import
- effort.ts: 复用 EV_COOLDOWN_MS 常量替代硬编码 30000
- storage.ts: 空 catch 块添加错误日志输出
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 04:16:42 +08:00
claude-code-best
7c64199fc5
fix: 修复战斗系统 bug(switch 映射、async learnableMoves、类型安全)
...
- engine.ts: switch 动作改为映射 creatureId 到 party slot index
- settlement.ts: 改用 for-of 循环支持 async learnableMoves 检测
- types.ts: miss 事件增加 side 字段,消除 as any
- BattleFlow.tsx: handleAction 改为 async 支持 await settleBattle
- battle.test.ts: 补充缺失的 async 标记
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 04:12:13 +08:00
claude-code-best
98284a5908
refactor: 提取共享 getStatColor、移除 deprecated EVOLUTION_CHAINS
...
- 新增 ui/shared.ts 统一 getStatColor 函数
- CompanionCard/SpeciesDetail 改用共享函数,消除重复
- 移除 data/evolution.ts 中已废弃的 EVOLUTION_CHAINS 常量
- 清理 index.ts 导出
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 01:58:33 +08:00
claude-code-best
fae96c3e7f
test: 补全 spriteCache/renderer/battle 测试用例
...
- 新增 spriteCache.test.ts: getSpeciesDisplay 格式化测试
- 扩展 renderer.test.ts: 覆盖所有 AnimMode + getIdleAnimMode + getPetOverlay
- 扩展 battle.test.ts: AI 边界情况 + settlement XP/EV 奖励 + 失败路径
188 tests / 0 fail (was 164)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 01:54:28 +08:00
claude-code-best
661cc764fe
refactor: 清理 SwitchPanel 未使用变量和导入
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:51:51 +08:00
claude-code-best
391e0c233a
chore: 移除 SwitchPanel 未使用的 calculateStats 导入
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:50:27 +08:00
claude-code-best
74682b2a82
refactor: 代码优化 — 扩展类型覆盖、修复变量遮蔽、移除未使用导入
...
- engine.ts: 扩展 getSpeciesMoves 覆盖全部 18 种属性
- settlement.ts: 重命名 species → oppSpecies 避免遮蔽外层变量
- storage.ts: addItemToBag/removeItemFromBag 深拷贝 bag items 避免修改原对象
- BattleFlow.tsx: 移除未使用导入和条件 useInput 调用(React hooks 规则)
- BattleView.tsx: 移除未使用的 BattlePokemon/MoveOption/Dex 导入
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:49:48 +08:00
claude-code-best
100b1589f2
fix: 修复 BattleFlow 进化阶段输入处理 + 清理无用文件
...
- BattleFlow.tsx: useInput hook 提升到顶层避免 React hooks 规则违规
- 删除未使用的 battle/adapter.ts 和 battle/handler.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:47:05 +08:00
claude-code-best
fa8e45e933
test: 新增数据层测试 + 引擎修复
...
- 新增 pkmn.test.ts: stat 映射测试
- 新增 species.test.ts: 物种数据测试
- 新增 xpTable.test.ts: XP 公式测试
- 新增 evMapping.test.ts: EV 映射测试
- 新增 names.test.ts: 多语言名称测试
- 新增 fallback.test.ts: 精灵 fallback 测试
- 修复 engine.ts 类型
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:45:57 +08:00
claude-code-best
96e6d33414
test: 新增 storage.test.ts
...
- 验证 BuddyData v2 结构正确性
- 验证 creature 包含 v2 字段
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:44:12 +08:00
claude-code-best
1dd36f3f6f
test: 添加 battle/nature/learnsets/storage 测试,修复 nature 映射
...
- battle.test.ts: 10 个测试覆盖 createBattle/executeTurn/settleBattle/applyMoveLearn/applyEvolution/AI
- nature.test.ts: 测试 getAllNatureNames/randomNature/getNatureEffect
- learnsets.test.ts: 测试 getDefaultMoveset/getDefaultAbility/getNewLearnableMoves
- storage.test.ts: 测试 depositToBox/withdrawFromBox/findCreatureLocation/releaseCreature
- 修复 getNatureEffect 返回 Dex 格式(atk/spa/spe)未映射为我们的格式(attack/spAtk/speed)
- 删除遗留的 battle/adapter.ts 和 battle/handler.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:43:19 +08:00
claude-code-best
e3570f8cdb
feat: 添加 BattleFlow 战斗状态机组件 (Phase 3)
...
实现完整的战斗 UI 流程:配置 → 战斗 → 换人/道具 → 结果 → 学招 → 进化 → 完成
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:38:17 +08:00
claude-code-best
f5a97011e8
feat: Phase 3 — 战斗 UI 终端交互组件
...
- BattleConfigPanel: 战斗前配置(队伍展示 + 对手选择)
- BattleView: 战斗主界面(双方 HP + 招式选择 + 事件日志)
- SwitchPanel: 换人选择面板
- ItemPanel: 道具使用面板
- BattleResultPanel: 战斗结算展示
- MoveLearnPanel: 新招式学习面板
- HP 条颜色分级(绿/黄/红)
- 事件日志中文格式化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:37:26 +08:00
claude-code-best
a3fc348421
feat: Phase 2 — 战斗引擎 @pkmn 薄适配层
...
- 安装 @pkmn/protocol @pkmn/client @pkmn/view
- 新建 battle/types.ts: BattleState, BattlePokemon, BattleEvent, PlayerAction 等
- 新建 battle/adapter.ts: Creature→PokemonSet 转换, 野生对手生成
- 新建 battle/engine.ts: createBattle() + executeTurn() 薄封装 @pkmn/sim
- 新建 battle/handler.ts: @pkmn/protocol Handler→BattleEvent 转换
- 新建 battle/ai.ts: 随机合法招式 AI 决策
- 新建 battle/settlement.ts: 战后结算 XP/EV/升级/进化/招式学习
- 新建 battle/index.ts: 统一导出
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:31:42 +08:00
claude-code-best
12cbb7c4c7
feat: Phase 1 — 数据模型升级 Creature v2 + PCBox/Bag
...
- 新增 MoveSlot, PCBox, Bag, ItemId 类型
- Creature 扩展 nature/moves/ability/heldItem/pokeball 字段
- BuddyData 升级 v2: 新增 boxes, bag, battlesWon/battlesLost
- 新建 data/learnsets.ts: getDefaultMoveset/getDefaultAbility/getNewLearnableMoves
- storage.ts v1→v2 迁移: 回填 nature/moves/ability,新增 PCBox/Bag
- 新增 PCBox 操作: deposit/withdraw/move/rename/findLocation/release
- 新增 Bag 操作: add/remove/getCount
- generateCreature/loadBuddyData/hatchEgg 改为 async (Dex.learnsets.get 异步)
- 修复 PokedexView: activeCreatureId → party[0]
- 更新测试文件: async/await + v2 BuddyData fixtures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:20:08 +08:00
claude-code-best
96f3e1b309
refactor: Phase 0 — 清除重复,委托 @pkmn 生态
...
- 删除硬编码 NATURES 常量,nature.ts 委托 Dex.natures
- 删除硬编码 EVOLUTION_CHAINS,evolution.ts 委托 Dex.species.evos
- calculateStats() 手写公式替换为 gen.stats.calc()
- 统一 TO_DEX_STAT/FROM_DEX_STAT 映射到 pkmn.ts
- 简化 species.ts buildEvolutionChain() 复用 getNextEvolution()
- 添加 NatureName/NatureEffect 类型定义
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-22 00:05:05 +08:00
claude-code-best
970fcd627f
feat: 又是更新了一大堆
2026-04-21 21:38:13 +08:00
claude-code-best
f74492617b
feat: 一大堆优化
2026-04-21 20:31:10 +08:00
claude-code-best
722aa6c97a
feat: 扩展精灵动画系统并新增 SpriteAnimator 组件
...
- 新增动画模式: breathe, bounce, walkLeft, walkRight, flip
- 新增 SpriteAnimator 组件,内置 tick 循环和居中渲染
- BuddyPanel 使用 SpriteAnimator 替代手动渲染
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-21 19:23:24 +08:00
claude-code-best
88ddba6c23
feat: 第一版可用 pokemon
2026-04-21 19:03:31 +08:00
claude-code-best
300faa18d0
Merge branch 'feature/unknown-llm-feature-test'
2026-04-21 12:06:19 +08:00
claude-code-best
ed4bdb9338
feat: 增强 auto mode 的易用性 ( #312 )
...
* feat: poor 模式降级 yolo 审阅模型
* feat: 为多模块添加 Langfuse tracing 支持
在 web search、agent creation、away summary、token estimation、
skill improvement 等模块中集成 Langfuse trace,并透传至
compact/apiQueryHook/execPromptHook 等调用链。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 让 auto mode 记录回主 trace
* fix: reopen auto mode prompt when classifier is unavailable
* fix: 修复 auto mode 情况下, llm 报错导致弹窗也不打开的问题
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-20 21:13:09 +08:00
claude-code-best
e4ce08fe39
Fixture/langfuse record auto mode data error ( #308 )
...
* fix: 修复状态栏 context 计数器在 loading 时闪现为 0 的问题
第三方 API(如智谱)在 message_start 中可能不返回完整 usage 数据,
导致 getCurrentUsage 返回全零 usage 对象,使 ctx 显示为 0%。
双重保护:
- getCurrentUsage: 跳过全零 usage,继续往前找有真实数据的 message
- calculateContextPercentages: totalInputTokens 为 0 时返回 null
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 外部化 ESM 包使用 createRequire 替代裸 require
color-diff-napi、image-processor-napi、audio-capture-napi 声明
"type": "module" 但使用裸 require(),Node.js ESM 中 require
不可用。改用 createRequire(import.meta.url) 或顶层 import。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: getDefaultSonnetModel 优先使用用户配置的模型,修复第三方 provider 模型不存在错误
当用户通过 ANTHROPIC_MODEL 或 settings 配置了自定义 provider 支持的模型时,
getDefaultSonnetModel/Haiku/Opus 现在会优先使用该配置,而非硬编码 Anthropic 官方模型 ID。
同时改进 Langfuse 可观测性:sideQuery 失败时记录错误信息到 span,
optional 模式下标记 WARNING 而非 ERROR。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 将 auto_mode classifier 的 side-query span 绑定到父 trace
classifyYoloAction 及 classifyYoloActionXml 接收 parentSpan 参数,
透传给 sideQuery 调用,使 auto_mode 的 side-query span 嵌套在主 agent trace 下。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 穷鬼模式下跳过 memdir_relevance side-query
Poor mode 启用时不执行 findRelevantMemories 的预取调用,
避免额外的 API token 消耗。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* chore: 添加 test:all 脚本用于完成任务后的全量检查
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: Vite 构建补齐缺失的 feature flags,修复 auto mode 不可见
Vite 构建插件的 DEFAULT_BUILD_FEATURES 缺少 BUDDY、TRANSCRIPT_CLASSIFIER、
BRIDGE_MODE、ACP、BG_SESSIONS、TEMPLATES,导致 feature('TRANSCRIPT_CLASSIFIER')
被替换为 false,auto mode 从 Shift+Tab 循环中消失。与 build.ts 对齐。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 统一 feature flags 到 defines.ts,修复 Vite 构建缺失 auto mode
将 DEFAULT_BUILD_FEATURES 列表从 build.ts、dev.ts、vite-plugin-feature-flags.ts
三处内联定义统一到 scripts/defines.ts 单一导出。之前的 Vite 插件缺少
TRANSCRIPT_CLASSIFIER 等 feature flag,导致 auto mode 在 Vite 构建中不可见。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-20 13:30:05 +08:00
claude-code-best
494eab7204
feat: 接入内建 weixin channel(同 #301 重构版本) ( #303 )
...
* feat: 接入 weixin 服务层与命令入口
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* feat: 注册内建 weixin channel 插件
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* fix: 修正 channel permission relay 路由与能力判定
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* fix: 修复 builtin channel 的 ChannelsNotice 误报
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* docs: 补充内建 weixin channel 使用说明
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* docs: 更新微信 channel 接入计划状态
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* fix: 延迟加载 weixin 登录二维码依赖
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* fix: 改用 qrcode 生成 weixin 登录二维码
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* fix: 修正 vite 构建的 Windows 路径解析
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* chore: 删除临时规划文档 wx_channel.md 并还原 package.json 排序
wx_channel.md 内容已整合到 docs/features/channels.md,不再需要。
package.json 中 @ant/model-provider 位置从原始位置被无意移动,还原。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* refactor: 将 weixin 模块从 src/ 迁移至 packages/weixin 工作区包
将 src/services/weixin/ 中的纯业务逻辑迁入 @claude-code-best/weixin
workspace 包,降低 src/ 耦合度。仅保留 server.ts 作为薄适配层。
- 迁移 7 个无修改的纯模块 (types/api/accounts/login/pairing/media/send)
- monitor.ts 内联 PERMISSION_REPLY_RE 正则,解除对 src/ 的依赖
- permissions.ts 本地定义 ChannelPermissionRequestParams 接口
- cli.ts 拆分:serve 子命令通过回调注入,login/access 保留在包内
- server.ts 重写为从 @claude-code-best/weixin 导入
- 新增 cli-serve.ts 作为 serve 入口薄壳
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 修正 weixin barrel export 中 interface 的导出方式
ChannelPermissionRequestParams 是纯类型,必须用 export type 导出,
否则 Bun 运行时会报 "export not found" 错误。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* refactor: 将 server.ts 迁入 packages/weixin,彻底移除 src/services/weixin/
通过依赖注入(WeixinServerDeps)解耦 src/ 依赖(analytics、config、
MCP channel schema),server.ts 完全移入包内。cli.tsx 入口处一次性
注入所有依赖。
src/services/weixin/ 目录已完全删除。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 修复 markdownToPlainText 中代码块正则的 ReDoS 风险
用非正则的线性扫描替代 \`\`\`[\s\S]*?\n([\s\S]*?)\`\`\` 匹配,
避免在含有大量重复 \`\`\` 序列的输入上触发多项式回溯。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: 1111 <11111@asd.c>
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-19 21:33:27 +08:00
claude-code-best
66d2671c98
feat: acp manager ( #304 )
...
* feat: acp 控制器第一版
* feat: acp-link 命令二合一
2026-04-19 21:18:18 +08:00
claude-code-best
c7bc8c8636
feat: remote control 支持 auto bind 功能 ( #300 )
...
* feat: acp-link 支持 --group 参数指定 channel group
- 添加 --group CLI flag,校验格式 [a-zA-Z0-9_-]+
- 支持 ACP_RCS_GROUP 环境变量 fallback
- 传递 channelGroupId 到 RcsUpstreamClient
- 更新 README 文档说明 --group 和相关环境变量
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: RCS 后端 session 复用与 group 绑定
- storeFindEnvironmentByMachineName 匹配 offline 状态,防止重连创建重复 session
- registerEnvironment 复用已有 session 而非每次新建
- EnvironmentResponse 返回 channel_group_id 字段
- 注册时将 session 绑定到 group ID,支持 web UI 按 group 查询
- apiKeyAuth 不再设置 uuid,由 uuidAuth 统一处理
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* feat: Web UI Token Manager — 多 token 切换与 session 隔离
- 新增 useTokens hook 管理 localStorage token CRUD
- 新增 TokenManagerDialog 弹窗组件(添加/编辑/删除/切换 token)
- api client 支持Bearer token 认证,UUID 跟随 token 变化
- Navbar 添加 token 切换按钮
- 切换 token 时自动 reload,实现 session 数据隔离
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: 修复 useTokens useState 初始化函数签名错误
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-19 13:04:09 +08:00