IronRookieCoder
bec72babd8
fix(cursor): handle ANSI wrapped line offset recovery
...
## Bug 详情
issues.md #41 记录 ctrl+g 编辑长文本后偶现 TextInput 渲染报错,堆栈指向 MeasuredText.measureWrappedText 抛出 Failed to find wrapped line in text,导致输入组件崩溃并影响 ctrl+c 退出。
## 根因
measureWrappedText 依赖 wrapAnsi 输出的 wrapped line 通过 indexOf 反查原文偏移。wrapAnsi 在视觉换行处可能插入 ANSI reset/reopen 或 OSC 控制序列,使 wrapped line 不再是原文的字面切片,反查失败后直接抛错。
## 修复方案
保留原有 indexOf 快路径;当 wrapped line 无法字面匹配时,按原文顺序和显示宽度恢复 start/end offset,并在显示宽度与字符串 offset 的双向转换中跳过 ANSI/OSC 控制序列,避免光标定位落入控制序列内部。
## 变更要点
- 为 MeasuredText 增加 wrapped line fallback offset 恢复逻辑
- 增加 ANSI/OSC 控制序列识别与跳过逻辑
- 修正包含控制序列文本的 display width 与 string offset 双向转换
- 补充 ANSI reset 和 OSC 长文本换行回归测试
## 自测
- bun test src/utils/__tests__/Cursor.test.ts
- bunx biome lint src/utils/Cursor.ts src/utils/__tests__/Cursor.test.ts
- 手动验证 ANSI/OSC 边界 smoke 通过
Refs: #41
2026-05-14 13:11:05 +08:00
geroge
a1dca02b55
Merge pull request #81 from y574444354/fix/raw-dump
...
feat(rawDump): add raw dump reporting module with local mode and deduplication
2026-05-14 11:34:01 +08:00
林凯90331
dc82486456
feat(rawDump): enable raw dump by default
...
Change isEnabled() logic so raw dump is on by default unless
explicitly disabled via CSC_DISABLE_RAW_DUMP=1 or
COSTRICT_DISABLE_RAW_DUMP=1.
Signed-off-by: 林凯90331 <90331@sangfor.com>
Co-authored-by: CoStrict <zgsm@sangfor.com.cn>
2026-05-14 11:22:38 +08:00
林凯90331
12caa6706b
perf(rawDump): reduce CPU usage and fix worker spawn reliability
...
Add session messages and repo info caching to avoid repeated JSONL
parsing and git subprocess spawning across tasks.
Share state across all tasks in a single batch to minimize file lock
contention and JSON parse overhead.
Convert queue operations from sync to async to prevent event loop
blocking in the main process.
Restore inline batch worker fallback when external spawn fails,
and increase worker interval from 30s to 2min to reduce CPU impact.
Add 5s debounce per session+messageID to prevent duplicate enqueues.
Improve binary mode spawn reliability by falling back to node runtime
when bun is not available.
Signed-off-by: 林凯90331 <90331@sangfor.com>
Co-authored-by: CoStrict <zgsm@sangfor.com.cn>
2026-05-14 11:07:02 +08:00
林凯90331
e24ed3b63d
feat(rawDump): add raw dump reporting module with local mode and deduplication
...
Implement the raw dump data reporting module for uploading conversation,
summary, and commit data to the CoStrict endpoint.
Key features:
- Local dump mode for debugging without network
- PID-based file locking to prevent state corruption with multiple csc instances
- 5-minute deduplication window for summary uploads
- Auto-detect sender (user/agent) and conditional user_input
- Repository fields (repo_addr, repo_branch, work_dir) in conversation
- Anonymous interface fallback when auth fails
- Filter commits to current user and limit fetch range
- Skip empty intermediate conversation turns
- Fix worker spawning for build and binary modes
- Remove git diff HEAD fallback to avoid unrelated working tree changes
Signed-off-by: 林凯90331 <90331@sangfor.com>
Co-authored-by: CoStrict <zgsm@sangfor.com.cn>
2026-05-13 23:49:20 +08:00
y574444354
60856a29bc
chore: bump version to 4.0.17
2026-05-13 20:17:39 +08:00
geroge
42107f7d2f
Merge pull request #64 from y574444354/feat/migrate-review-agents
...
【Review】feat: 将 review skill 迁移到 extract-to-disk 架构
2026-05-13 19:38:26 +08:00
geroge
d3d0dd25d2
Merge pull request #80 from IronRookieCoder/fix/issues-31-32
...
fix: 修复任务列表数字ID乱序和内存轮询导致滚动跳动
2026-05-13 19:37:25 +08:00
geroge
d8a19f1473
Merge pull request #79 from IronRookieCoder/personal-ironrookiecoder-fix-issue-42-43
...
fix: merge sub-agent readFileState to prevent cross-agent write confl…
2026-05-13 19:37:09 +08:00
geroge
e570eee02a
Merge pull request #78 from IronRookieCoder/fix/issue-28-costrict-provider
...
fix: 修复 CoStrict provider 提前停止与 token override 问题
2026-05-13 19:36:34 +08:00
geroge
3cf17ad756
Merge pull request #74 from IronRookieCoder/fix/sdd-design-invalid-tool-params
...
Fix/sdd design invalid tool params
2026-05-13 19:33:47 +08:00
DoSun
7c2d9654f4
fix: pre-commit hook 改用 bunx 替代 npx 避免 npm arborist 兼容问题
2026-05-13 17:56:18 +08:00
DoSun
8505fce51a
feat: 会话满时 LRU 驱逐空闲会话,cloud 命令透传参数
2026-05-13 17:56:18 +08:00
DoSun
40a243a94e
Merge pull request #77 from Askhz/fix/commands-dedup-and-filter
...
fix: 修复 /agents/commands 接口 duplicate command name 和返回多余 TUI 命令
2026-05-13 16:57:08 +08:00
IronRookieCoder
5ee2d6dcc3
fix: 修复任务列表数字ID乱序和内存轮询导致滚动跳动
...
两个修复:
1. 任务列表数字ID乱序(#32):新增 compareTaskIds 比较函数,纯数字ID按
数值大小排序(1, 2, 3, 10 而非 1, 10, 2, 3),非纯数字回退到
localeCompare 自然排序。listTasks 和 taskStateMessage 两处排序入口
均已修复。
2. 终端 RSS 内存轮询引发滚动跳动(#31):useRssDisplay hook 新增 isLoading
参数,仅在加载中启用定时轮询,闲时仅渲染一次内存占用值,避免 Ink 重渲染
干扰用户滚动查看结果。
附:TaskCreateTool.isConcurrencySafe 改为 false,防止并发任务创建的文件
IO 竞态。
Co-Authored-By: CoStrict-DeepSeek-V4-Pro <deepseek-ai@claude-code-best.win>
2026-05-13 16:44:13 +08:00
IronRookieCoder
233971c6ce
fix: merge sub-agent readFileState to prevent cross-agent write conflicts
...
子代理完成后将其 readFileState 合并回主代理缓存,防止主代理写文件时因
缓存过期而误报 FILE_UNEXPECTEDLY_MODIFIED_ERROR。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 16:36:46 +08:00
kingboung
558d0ac9a2
fix: rename SSH secret to MY_SSH_PRIVATE_KEY
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 16:31:09 +08:00
IronRookieCoder
62f4cb9daf
fix: 修复 CoStrict provider 提前停止与 token override 问题
2026-05-13 16:24:34 +08:00
kingboung
e63cc84693
chore: trigger CI
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 16:23:40 +08:00
Askhz
750400470e
fix: 修复 /agents/commands 接口 duplicate command name 和返回多余 TUI 命令
...
1. cost/index.ts 重导出 usage/index.ts,COMMANDS() 中移除 cost 避免 BuildManifest 重复校验
2. /command 端点只返回 prompt 类型的 skills 命令,排除 TUI 命令
Co-Authored-By: DeepSeek-V4-Pro-VIP <deepseek-ai@claude-code-best.win>
2026-05-13 16:13:42 +08:00
kingboung
ed513c6292
merge: sync main into feat/migrate-review-agents
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 16:08:01 +08:00
DoSun
c2eb6bff90
fix: 清理 main 分支的 stub .js 文件,恢复有 .ts 源文件的命令模块
2026-05-13 10:36:04 +08:00
DoSun
3bfc695cb4
chore: 清理临时 rebase 脚本
2026-05-13 10:29:34 +08:00
DoSun
3abca0c053
merge: 合并 origin/main 到 feat/server-refactor,解决冲突并保留 server 完整实现
2026-05-13 10:27:14 +08:00
DoSun
f2d2083b94
feat: 添加 CSC_CLOUD_INVOKER 环境变量标识调用来源
2026-05-13 10:05:37 +08:00
DoSun
0755facc63
Merge pull request #75 from Askhz/fix/credentials-path-and-fields
...
fix: 移除闲置字段id/name,认证文件路径改为~/.costrict/share/auth.json
2026-05-13 09:57:09 +08:00
Askhz
902b7d4ed5
fix: 移除闲置字段id/name,认证文件路径改为~/.costrict/share/auth.json
...
Co-Authored-By: CoStrict-DeepSeek-V4-Pro <deepseek-ai@claude-code-best.win>
2026-05-13 09:54:40 +08:00
kingboung
167bd1f648
fix: pin CI bun version and regenerate lockfile
...
CI used bun latest (1.3.13) while local was 1.3.11, causing
frozen-lockfile mismatch. Pin to 1.3.11 and regenerate lockfile.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 09:18:37 +08:00
IronRookieCoder
65e55ac763
Merge remote-tracking branch 'origin' into fix/sdd-design-invalid-tool-params
2026-05-12 21:31:12 +08:00
IronRookieCoder
b58fd8f782
fix: 修复子代理参数兼容问题
2026-05-12 21:24:12 +08:00
kingboung
6ea0297ecb
chore: switch review skill download branch to main
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 20:51:25 +08:00
kingboung
e0f8c1a289
fix: show (bundled) label for /review and /security-review commands
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 20:45:33 +08:00
DoSun
ef151d84ba
feat(server): 借鉴 vibe-kanban 优化子进程管理与消息可靠性
...
- 添加内存消息缓冲区,解决 tab 切换后用户消息丢失问题
- prompt() 去除重复 waitReady(),减少不必要的等待
- 新增 kill_on_drop 工具(FinalizationRegistry),待后续启用
- 新增权限模式 hooks 自动配置(仅在显式指定 permission_mode 时生效)
- 清除 serve 模式下的调试 timing 日志
2026-05-12 20:38:35 +08:00
geroge
5c2e1918ca
Merge pull request #73 from mini2s/fix-autocompact
...
feat(compact): add CoStrict model support and prevent infinite compaction loops
2026-05-12 20:12:15 +08:00
mini2s
a796a328c9
feat(compact): add CoStrict model support and prevent infinite compaction loops
2026-05-12 20:07:24 +08:00
geroge
9fb1410b6f
Merge pull request #72 from Askhz/fix/costrict-subagent-model-inherit
...
fix: costrict provider 下子 agent 模型别名继承父模型
2026-05-12 19:35:06 +08:00
Askhz
339ef4bc63
fix: costrict provider 下子 agent 模型别名继承父模型
...
costrict 没有 haiku/sonnet/opus 模型层级,当子 agent(如 Explore)
配置为 haiku 时,parseUserSpecifiedModel 会解析到 Claude haiku
模型 ID 而非继承主会话所选模型。修复为 costrict 下所有 family
alias 强制走 inherit 逻辑,使用 getRuntimeMainLoopModel 以正确
支持 plan mode 等场景。
Co-Authored-By: CoStrict-DeepSeek-V4-Pro <deepseek-ai@claude-code-best.win>
2026-05-12 19:31:36 +08:00
DoSun
daa2dce7b9
Merge pull request #70 from y574444354/feat/server-refactor-90331
...
feat(server): support reading subagent transcripts
2026-05-12 19:14:04 +08:00
kingboung
680342bc28
chore: remove /strict:review and /strict:security-review commands
...
Only keep /review and /security-review via extract-to-disk.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 18:00:10 +08:00
DoSun
be821416e5
Merge pull request #71 from Askhz/fix/server-agent-switch
...
fix(server): 修复内置 agent 切换时系统提示未注入及 @agent 出现在用户消息中的问题
2026-05-12 17:54:11 +08:00
Askhz
e7c384bca5
fix(server): 修复内置 agent 切换时系统提示未注入及 @agent 出现在用户消息中的问题
...
- set_agent 控制消息处理中,查找对应 AgentDefinition 并将其 getSystemPrompt()
写入 options.systemPrompt,使 QueryEngine.ask() 能正确使用 agent 系统提示
- 将 "build"(前端默认模式的显示名称)处理为 undefined,切换回默认模式时
同步清空 options.systemPrompt 和 mainThreadAgentType
- /prompt 和 /prompt_async 接口不再将 agentMentions (@agent-*) 拼入 content,
该语法仅用于 REPL 命令模式,出现在 server 模式的 prompt 中会被模型误解
Co-Authored-By: Sonnet-4.6-CoStrict <noreply@anthropic.com>
2026-05-12 17:50:07 +08:00
kingboung
dbaf0374fc
fix: clean target directory before extracting review skills
...
Regenerate builtin.ts template to rm stale files from previous
version/locale before writing new ones, preventing file residue
when switching languages or upgrading skill versions.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 17:42:27 +08:00
kingboung
08ad8a55da
refactor: strict review variants load skill via Skill tool
...
Remove embedded files, use Skill tool to load review/security-review
skill instead, matching the same mechanism as /review.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 17:38:56 +08:00
kingboung
909e001100
feat: register /strict:review and /strict:security-review via registerBundledSkill
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 17:31:24 +08:00
kingboung
5b4d0c2ac1
fix: use process.cwd() for generate-review-builtin cwd on Windows
...
URL pathname returns /E:/... on Windows which spawnSync can't resolve.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 17:20:27 +08:00
kingboung
c374cab5ed
fix: remove registerBundledSkill for strict review variants
...
All review commands now exclusively use extract-to-disk + skill scanner,
no registerBundledSkill duplication.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 17:16:09 +08:00
geroge
00887762a2
Merge pull request #68 from IronRookieCoder/feat/proxy-ca-improvements
...
feat: 添加代理和 CA 证书功能改进及测试
2026-05-12 17:15:25 +08:00
geroge
fbae6383fd
Merge pull request #69 from y574444354/test-pattern-with-root
...
test: add unit tests for patternWithRoot with Windows path improvements
2026-05-12 17:14:59 +08:00
geroge
021ce31f31
Merge pull request #67 from y574444354/fix/tab-protection-measured-text
...
fix: protect tabs from wrap-ansi expansion in MeasuredText
2026-05-12 17:11:00 +08:00
unknown_
24e62eb6f3
test: add unit tests for patternWithRoot with Windows path improvements
2026-05-12 17:07:46 +08:00