Files
tsl-devkit/memory-bank/progress.md
T

4.7 KiB
Raw Blame History

当前进展

Current Focus

  • 已完成严格 LSP core 生命周期:initialize/shutdown/exit 使用显式状态机, EOF 与非法 framing 返回非零退出码,launcher 透传服务器退出码
  • 已完成 AsyncExecutor 协作式取消重构;任务句柄稳定持有结果,按实例取消, 请求 ID 区分整数与字符串,运行中任务通过 std::stop_token 退出
  • 已修复 LSP UTF-16 与 UTF-8/Tree-sitter 字节坐标的双向转换;增量编辑和 syntax diagnostics 对中文与 emoji 使用一致位置
  • JSON-RPC 错误、请求异常和 LSP transport framing 均使用严格结构化处理, 不再保留手写空 JSON、生命周期 Provider 或 staged rollout 开关
  • 已完成参数解析与启动错误处理重构;CLI 参数严格校验,日志默认固定到 stderr,启动失败使用受控退出码
  • 已完成 Conan 依赖升级;lsp-server 当前使用 ConanCenter 可见的最新 glazetaskflowspdlogfmttree-sitter recipe

Recent Changes

  • vendored playbook 快照已通过 subtree 更新并重新同步托管文件
  • memory-bank 已迁移到 tech-context / system-patterns / active-context 新结构
  • docs/prompts/coding/review.mddocs/prompts/meta/prompt-generator.mdmemory-bank/architecture.mdmemory-bank/tech-stack.md 已移除
  • glaze 已升级到 7.4.0taskflow 已升级到 4.0.0
  • 已适配 CMake 4.3 import std gate、Taskflow 4.0 头文件依赖、 completion LSPAny data 反序列化和 scheduler completion callback 顺序
  • ArgsParser 已替换为无状态 ParseArgs,并补充参数单元测试与 CLI 启动回归测试
  • LSP 测试脚本、VSCode 和 Vim 已移除废弃的日志输出选择参数
  • 文本坐标转换新增 ASCII、中文、emoji、跨行、越界和无效 UTF-8 回归测试;syntax diagnostics 已在 didOpen 后实际发布 UTF-16 坐标
  • scheduler 使用 current/active 双索引准确处理重复 ID;WaitAll 覆盖登记到 Taskflow 入队之间的窗口,取消不在状态锁内触发 stop callback
  • 系统库、workspace 加载、文件索引和 workspace folder 枚举已传递 std::stop_token,并在文件边界检查取消
  • core 新增真实 stdio 生命周期、JSON-RPC 错误、请求取消、严格 framing 和 diagnostics 回归;tsl-servertest_schedulertest_provider 构建通过
  • test_cli_startuptest_core_servertest_scheduler 和 LSP transport smoke 通过;test_provider 为 100/110,失败集合与本次 core 改动前一致

Next Steps

  1. 新任务先写到 docs/superpowers/plans/ 再执行
  2. 进入执行阶段前用 main_loop.py claim 领取 Plan
  3. Playbook 升级保持 subtree + sync 的固定顺序
  4. 另行处理既有脚本类测试失败: test_ast_scripttest_symbol_scripttest_semantic_script
  5. 后续任务处理 --interpreter=~/... 的主目录展开
  6. 另行处理 test_lsp_json 的 rename 响应缺少 result;旧服务器二进制 同样可复现
  7. 另行修复 test_provider 的 10 个既有 Provider 行为断言

Open Risks

  • CIFS 共享目录上的 git 索引状态可能误报脏工作区, 影响 subtree、status 和 stash 类命令
  • lsp-server/test/test_tree_sitter/test 下部分 TSF fixture 仍存在解析失败, 会导致脚本类 AST / symbol / semantic CTest 失败
  • 系统 CMake 4.4 的 import std 实验门值尚未适配;本次使用 CMake 4.3.4 完成构建验证
  • test_provider 仍有 documentHighlight、implementation、configuration、 refresh、client capability、workDoneProgress、code action、executeCommand 和 will file operations 共 10 个既有失败
  • Clang 22 在 C++ Modules 全量重编译期间会随机 frontend exit 139;本次在 Glaze 实例化和 interpreter_test.cppm 出现,使用相同 -j1 重试成功
  • vscode/bin/tsl-server 当前是未拉取的 Git LFS 指针,根目录 LSP 冒烟脚本 只能完成语法与参数静态验证

Workflow State

phase: done spec: docs/superpowers/specs/2026-07-13-lsp-core-lifecycle-design.md plan: docs/superpowers/plans/2026-07-13-lsp-core-lifecycle.md executor: executing-plans constraints: karpathy-guidelines,.agents,AGENT_RULES

Plan Status

  • 2026-05-24-playbook-strong-alignment.md done
  • 2026-05-24-conan-dependency-upgrade.md done: known-failures:test_ast_script,test_symbol_script,test_semantic_script
  • 2026-07-11-args-parser-startup-errors.md done
  • 2026-07-12-text-coordinates-utf16.md done
  • 2026-07-12-async-executor-cancellation.md done
  • 2026-07-13-lsp-core-lifecycle.md done