Feature/prod#4
Merged
Merged
Conversation
添加 biome.json 配置(formatter + linter + organizeImports), .editorconfig 统一编辑器配置,package.json 新增 lint/format scripts。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
使用 .githooks/ 目录 + core.hooksPath 方案,零依赖。 prepare script 确保 bun install 后自动激活。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
添加 bunfig.toml 配置、test script,以及三组示例测试: - src/utils/array.ts (intersperse, count, uniq) - src/utils/set.ts (difference, intersects, every, union) - packages/color-diff-napi (ansi256FromRgb, colorToEscape, detectLanguage 等) 41 tests, 0 failures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
push/PR 时自动运行 lint → test → build 三步检查。 使用 oven-sh/setup-bun 配置 Bun 环境。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
配置 knip.json 检测未使用的文件、exports、依赖等。 新增 check:unused script,运行 knip-bun 扫描死代码。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
scripts/health-check.ts 汇总项目各维度指标: 代码规模、lint 问题、测试结果、冗余代码、构建状态和产物大小。 新增 health script 一键运行。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 关闭 formatter 和 organizeImports(保持原始代码风格,减少 git diff) - lint/format script 改为 biome lint(只做规则检查) - 新增关闭规则:noConsole, noArrayIndexKey, noConfusingLabels, useIterableCallbackReturn, noVoidTypeReturn, noConstantCondition, noUnusedFunctionParameters, noUselessEmptyExport, useArrowFunction, useLiteralKeys, useImportType, useNodejsImportProtocol - 零源码改动,仅调整配置文件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
使用 AppleScript + JXA (JavaScript for Automation) 实现完整 API: - moveMouse: CGEvent 鼠标移动 - key/keys: System Events 键盘输入(支持修饰键组合) - mouseLocation: CGEvent 查询当前鼠标位置 - mouseButton: CGEvent 鼠标点击/按下/释放 - mouseScroll: CGEvent 滚轮事件 - typeText: System Events 文本输入 - getFrontmostAppInfo: 获取前台应用 bundleId + 名称 兼容 require() 调用方式(所有方法作为命名导出)。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- types.ts: 替换所有 any 为真实类型 (CoordinateMode, CuSubGates, Logger, GrantFlags, CuPermissionRequest/Response, ComputerUseHostAdapter) - index.ts: 所有导出类型化 (DisplayGeometry, FrontmostApp, InstalledApp, RunningApp, ScreenshotResult, CuCallToolResult 等); targetImageSize() 实现真实缩放逻辑; bindSessionContext() 返回类型正确的空调度器 - sentinelApps.ts: 添加 10 个 macOS 敏感应用 (Terminal, iTerm2, Finder, System Preferences 等) 及其分类 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
用 JXA + screencapture 替代原始 Swift 原生模块:
- display.getSize/listAll: CGGetActiveDisplayList/NSScreen 获取显示器信息
- apps.listRunning: System Events 获取前台应用列表
- apps.listInstalled: 扫描 /Applications 目录
- apps.open/unhide: AppleScript 应用控制
- apps.appUnderPoint: NSWorkspace frontmostApplication
- screenshot.captureExcluding/captureRegion: screencapture 命令
- resolvePrepareCapture: 截图 + base64 编码
实测:display 返回 {width:1710, height:1112},running apps 正确识别。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
claude-code-best
added a commit
that referenced
this pull request
Apr 24, 2026
- 新增 capture.ts:Gen 9 捕获率计算,支持精灵球/状态/时间修正 - 实现逃跑概率公式 (Gen 9) 和失败累计机制 - createBattle 支持多对手 OpponentEntry[],AI 换人考虑属性克制 - AI 选招改为优先克制招式,避免蓄力招式和被抵抗招 - 野生招式从 Dex.data.Learnsets 按等级获取,替换硬编码映射 - 实现 Potion/SuperPotion/FullRestore 等回复药效果 - 野生对手随机持有道具(5%树果/专属、3%属性增强道具) - 新增 VolatileStatus 类型,BattlePokemon 添加 volatileStatus - needsSwitch 检测改为更健壮的 p1Fainted + hasAliveBench 逻辑 - 解决 #3 物品使用、#4 逃跑、#5 多精灵对战、#6 AI、#7 野生招式、 #10 捕获系统、#11 volatile状态、#12 天气/地形、#19 野生道具 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
dfsfdfse
pushed a commit
to dfsfdfse/claude-code
that referenced
this pull request
Apr 25, 2026
claude-code-best
added a commit
that referenced
this pull request
Apr 29, 2026
* fix: 实现 snipCompact/snipProjection 存根,修复 QueryEngine mutableMessages 不收缩的内存泄漏 将 snipCompact.ts 和 snipProjection.ts 从纯存根替换为完整实现: - snipCompactIfNeeded: 检测 snip_boundary 消息,按 removedUuids 过滤消息,释放旧消息内存 - isSnipBoundaryMessage/projectSnippedView: 边界检测与视图投影 - isSnipMarkerMessage/isSnipRuntimeEnabled/shouldNudgeForSnips: 辅助函数 - 28 个测试覆盖边界检测、消息过滤、空输入、多边界等场景 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: 完善 StreamingToolExecutor.discard() 释放内部状态,修复 NO_FLICKER 模式内存泄漏 discard() 原先仅设置 flag,不释放 tools 数组、siblingAbortController 和 turnSpan。 NO_FLICKER 模式 API 重试时旧工具结果堆积无法被 GC 回收。 修复内容: - 中止 siblingAbortController 以取消运行中的工具子进程 - 清空 tools 数组释放 TrackedTool 引用(block、assistantMessage、results、pendingProgress) - 清理 progressAvailableResolve 和 turnSpan - 添加 7 个测试覆盖 discard 后的各种状态验证 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: 清理 useReplBridge pendingPermissionHandlers,修复 RC 权限条目保留内存泄漏 pendingPermissionHandlers Map 原定义在 async IIFE 内部,组件卸载时 cleanup 函数无法访问。修复方案: - 将 Map 提升至 useEffect 顶层作用域 - cleanup 时显式调用 pendingPermissionHandlers.clear() 释放闭包引用 - 添加 8 个测试覆盖 handler 注册/取消/响应/cleanup 模式 同时确认 #4 空闲渲染循环已完整实现(所有 10 个 useAnimationFrame 调用者均正确传递 null 暂停时钟)。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: 确认 #11 LRU 缓存键已完整实现,添加 FileStateCache 测试 + 修复类型错误 审计确认 #11 FileStateCache 已完整实现(LRU 双重限制 max+maxSize + sizeCalculation),归类从"未实现"修正为"已确认完整"。 - 添加 16 个 FileStateCache 测试覆盖 LRU 驱逐、大小计算、路径归一化 - 添加 6 个 coerceToolContentToString 测试覆盖类型强制转换 - 修复 replBridgePermissionHandlers 测试的类型断言错误 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs: 完成内存泄漏审计,标记所有条目已处理 12 项审计条目全部处理完毕: - 11 项已确认完整实现(含 4 项主动修复:#8 StreamingToolExecutor、#9 RC 权限、#12 snipCompact、#4 确认完整) - 1 项已知限制(#7 Bun --compile 兼容性) - 65 个测试覆盖所有修复项 - 验证报告确认所有修复代码正确实现 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: highlight.js 按需注册 26 个常用语言,减少 ~80% 语法内存占用 将 `import hljs from 'highlight.js'`(190+ 语言,~5-15MB)改为 `import hljs from 'highlight.js/lib/core'` + 静态导入并注册 26 个 常用语言(TypeScript、Python、Bash、Go、Rust 等)。静态 import 在 Bun --compile 模式下正常工作,避免了 createRequire 的路径问题。 内存从 ~5-15MB 降至 ~1-2MB。添加 7 个测试验证语言注册和 highlight 功能,现有 17 个 color-diff 测试全部通过。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: 修复 inProcessRunner 权限响应后未 cleanup 的 interval 泄漏 权限请求得到响应后(批准/拒绝),pollInterval 和 abort listener 未被清理,导致 setInterval 永远运行。在长时间运行的 swarm 会话 中,每次权限请求都会泄漏一个 interval 和一个 listener。 修复:在成功/拒绝路径中调用 cleanup() 以清理 interval、 unregister callback 和移除 abort listener。添加 6 个测试 覆盖 permission callback 注册/处理/清理生命周期。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: LSP openedFiles Map 在 compaction 后未清理,添加 closeAllFiles() 集成 LSPServerManager 的 openedFiles Map 持续增长(代码注释标注为 TODO), 长时间会话中每次文件操作都追加条目但从不清理。添加 closeAllFiles() 方法并在 postCompactCleanup 中调用,compaction 后释放所有 LSP 服务器端 文件状态。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: 修复 language-registration 测试在全量运行时因 hljs 单例污染而失败 cliHighlight.ts 导入全量 highlight.js(192 语言),与 color-diff-napi 使用的 highlight.js/lib/core 共享同一单例。全量测试运行时全量包先加载, 导致断言"未注册语言"和"不超过 30 个语言"失败。 改为验证目标 26 个语言全部存在,而非检查总数。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.