Skip to content

Commit 9d6addc

Browse files
edyedy
authored andcommitted
docs: update PLAN/MERGE for v1.18.8 sync and optimization deviations
- PLAN.md: baseline v1.18.7 → v1.18.8, add optimization milestone - MERGE.md: register 5 new optimization deviations (sqlite statement cache, PTY bounded queue, CORS exact match, timing-safe auth, workspace index) - Update migration.ts entry to include INSERT OR IGNORE refinement
1 parent 2c8b5f2 commit 9d6addc

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

MERGE.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ fork 与上游改了同一处(常见于 TUI 视觉/UX、core 加固逻辑)
112112

113113
## fork 偏离清单
114114

115-
> 每条注明处理方式;标注「上游若已做可取上游版本」的条目在每次 sync 时复审。数据基于 v1.18.2→v1.18.4 sync、后续 v1.18.6/v1.18.7 sync 与 fork 自有改进(含 TUI 渲染深度打磨),随每次 sync 更新。
115+
> 每条注明处理方式;标注「上游若已做可取上游版本」的条目在每次 sync 时复审。数据基于 v1.18.2→v1.18.4 sync、后续 v1.18.6/v1.18.7/v1.18.8 sync 与 fork 自有改进(含 TUI 渲染深度打磨),随每次 sync 更新。
116116
117117
### 结构性偏离(删除保持)
118118

@@ -151,10 +151,15 @@ fork 与上游改了同一处(常见于 TUI 视觉/UX、core 加固逻辑)
151151
| `packages/opencode/src/cli/cmd/run/stream.transport.ts` (MAX_BUFFERED cap + fail 内联错误) || 保留 `MAX_BUFFERED = 500` + `pushBuffered()` helper、`fail()``input.footer.append({ kind: "error" })` 内联错误显示(上游若已做可取上游版本) |
152152
| `packages/core/src/ripgrep.ts` (执行超时 + stdout 字节上限) || 保留 `EXECUTION_TIMEOUT` + `MAX_STDOUT_BYTES` + `stdoutCapped` 逻辑(上游若已做可取上游版本) |
153153
| `packages/core/src/event.ts` (durable replay 分页 + RcMap wake) || 保留 `readAfterStream` + `REPLAY_PAGE_SIZE` + `rowToEvent` + `durable()` historical 改 stream + `RcMap` 替换 `Map<string, Set<PubSub>>`(上游若已做可取上游版本) |
154-
| `packages/core/src/database/migration.ts` (跨进程 fenced claiming) || 保留 `{ behavior: "immediate" }` + 事务内 re-check(上游若已做可取上游版本) |
154+
| `packages/core/src/database/migration.ts` (跨进程 fenced claiming + 幂等写入) || 保留 `{ behavior: "immediate" }` + 事务内 re-check + `INSERT OR IGNORE` 幂等写入(上游若已做可取上游版本) |
155155
| `packages/opencode/src/cli/cmd/run/footer.prompt.tsx` (@ 补全 debounce) || 保留 `debouncedQuery` 100ms debounce(上游若已做可取上游版本) |
156156
| `packages/opencode/src/cli/cmd/run/theme.ts` (muted 灰度对比度提升) || 保留 dark mode gray 200/220(上游若已做可取上游版本) |
157157
| `packages/opencode/src/{plugin/openai/codex.ts,mcp/oauth-callback.ts,plugin/xai.ts,plugin/snowflake-cortex.ts}` (OAuth 回调 HTML 转义) || 保留 `escapeHtml()` 包裹 `error`/`error_description` 插值。上游删除 `core/src/oauth/page.ts`(统一转义页)后,fork 内联的 `Authorization failed: ${error}` 存在反射型 XSS;补 `@/util/html` 转义修复(上游若恢复统一转义页可取上游版本) |
158+
| `packages/core/src/database/sqlite.node.ts` (Node 驱动语句缓存) || 保留 `Map<string, StatementSync>` LRU 缓存(`MAX_CACHED_STATEMENTS = 1000`),避免重复 prepare;移除冗余 `PRAGMA journal_mode = WAL`(统一到 `database.ts`)(上游若已做可取上游版本) |
159+
| `packages/server/src/handlers/pty.ts` (PTY WebSocket 有界队列) || 保留 `Queue.bounded(1024)` + 溢出断连(防无界内存增长),上游 `unbounded` 存在长会话内存泄漏风险(上游若已做可取上游版本) |
160+
| `packages/server/src/cors.ts` (CORS origin 精确匹配) || 保留精确正则匹配(`^https?:\/\/(localhost|127\.0\.0\.1):(\d+)$`)替代 `startsWith`,防 origin 欺骗(上游若已做可取上游版本) |
161+
| `packages/server/src/auth.ts` (timing-safe 密码比较) || 保留 `crypto.timingSafeEqual` + 长度前置检查,防时序攻击(上游若已做可取上游版本) |
162+
| `packages/core/src/control-plane/workspace.sql.ts` (project_id 索引) || 保留 `index("workspace_project_idx").on(table.project_id)`,加速 workspace 按 project 查询(上游若已做可取上游版本) |
158163

159164
### TUI 偏离(四批 23 轮审计打磨,全域)
160165

PLAN.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,12 @@ opencode-x 是 [anomalyco/opencode](https://github.com/anomalyco/opencode) 的
3434

3535
## 当前状态
3636

37-
- **上游基线**`v1.18.7`(sync 轨迹:v1.18.2 → v1.18.4 → v1.18.6 → v1.18.7)
37+
- **上游基线**`v1.18.8`(sync 轨迹:v1.18.2 → v1.18.4 → v1.18.6 → v1.18.7 → v1.18.8
3838
- **包规模**:12 个包(11 个功能包 + sdk),原生模块(natives/)已全部删除,grep 跟随上游使用 ripgrep
3939
- **裁剪工程(Batch 0–3)**:✅ 全部完成
4040
- **TUI 审计打磨(四批 23 轮)**:✅ 全部完成
4141
- **TUI 渲染深度打磨(Markdown 响应 + 会话元素视觉)**:✅ 完成(代码块面板化、流式防闪、reasoning 降透明 markdown、盲文渐变 spinner、GLYPH/MCP 状态字符统一、subagent agent-color 身份)
42+
- **深度优化(7 批次跨层)**:✅ 完成(投影器架构重构 O(n²)→O(n)、历史增量加载、事件微批、HTTP 超时/重试、流式压缩、SSE 序列化共享、TUI 流式渲染优化、SQLite 语句缓存/写事务 immediate、PTY 有界队列、CORS/auth 安全加固)
4243
- **当前主线**:持续同步(Continuous Sync)
4344

4445
## 当前主线:持续同步阶段

0 commit comments

Comments
 (0)