Repository navigation
fix(lsp): queued writes and committed workspace status - #65
Sunrisepeak wants to merge 4 commits into
Conversation
Release preflight hit the unchanged 4 MiB / 2 s send check on macOS dev after PR #64 had merged. Sending still encoded each JSON frame synchronously on the caller, even though pipe writes were queued. Queue an owned JSON snapshot and encode it on the writer outside the queue lock, preserving FIFO, both framings and UTF-8 replacement. Writer exceptions become a connection failure and unsent snapshots are discarded after closing the queue. Keep the original send/stop gates and record their actual elapsed time. Real echo and departed-peer tests cover snapshot lifetimes, ordering, shutdown drain and error cleanup. Keep the first failure and the limits of its timing evidence; no host-load attribution or OOM injection is claimed. Version 0.0.17 is still unpublished. Refs #59, #64.
The target fixture used a simulated producer, which left the design's native Windows i686/x64 production chain unproven. A separate Windows fixture configures both targets with real mcpp and follows their complete unmodified databases in one LSP session, checking actual commands and conditional module semantics. CI retains the first generated databases and logs separately from diagnostic reruns. Product and runner code remain unchanged; native acceptance is still required.
交接检查点(2026-10-22 10:36 UTC)本条用于直接通过 PR 交接。当前不再继续修改其他内容;0.0.17 暂缓发布。引擎侧仅记录问题与候选方向,不代表已经实施或获准跨仓发布。 PR 仍为 draft,远端 HEAD 是 1. 已确认的问题与本地修复
2. 不得被后续 PASS 覆盖的性能失败
后续 3. 可能的问题位置,包括引擎慢请求尚未归因。 后续优先检查 引擎 memo 的独立无效分配已证明,但不能解释全部 RSS 增长。 当前是 新一次诊断揭示另一项真实 U7a 失败。 用旧产品 + 新 trace runner 单次原四阶段(CPU、producer、cache a/a/a/b、输入和预算不变)得到 25 checks / 1 failure,168 个观测 PID/birth 身份全部退出。本次 U5/U6 max 0.861/0.707 秒,未复现历史慢请求;唯一失败是 importer diagnostics 107.247 s >33 s。 4. 当前验证、证据与接手顺序
|
…ndaries A successful producer answer acknowledges the source structure it actually covered, so inactive imports no longer trigger discovery on every body save. Run-start stamps, generations and producer identities keep failures and concurrent changes conservative. Existing files named as workspace folders fall back to directory roots before clangd starts. Preserve completion timing support, correct the genuine Windows fixture std dependency, and retain first CI evidence. Termux uses the official package source and the Zed smoke requires both its independent PATH clangd and mcppls own initialized child. Ship a portable, checksummed handoff bundle instead of references to one machine. Validation: dev/release each pass six workspace members and 58 programs, plus 32 LSP fixtures including the new 70-check source-watch fixture. Specification validation reports zero failures. The 222-file evidence archive was verified and extracted independently. New-source CI, native Windows production-chain acceptance and unresolved performance investigation remain pending; no merge or release.
|
上次仅写交接说明、没有同步本地改动,导致其他机器找不到,这是交接缺口。现在已实际补齐,并更正了原评论顶部。
在另一台机器已有仓库中,可不改现有 release 分支,另建 worktree: git fetch https://github.com/Sunrisepeak/mcpp-language-server.git fix/17-connection-writer-encoding
git worktree add --detach ../mcppls-pr65-handoff FETCH_HEAD
cd ../mcppls-pr65-handoff
python3 .agents/docs/2026-10-22-issues-59-63-evidence/portable-handoff/verify.py --extract --into .预期输出 |
Completion messages can serialize large replies on the event loop, producer/scanner differences can rediscover an unchanged source repeatedly, and a Zed file worktree can be adopted as clangd's working directory. This PR moves connection encoding to its writer, publishes status after synchronous plan application commits, confirms valid producer source structures conservatively, and filters existing regular files from workspace roots.
It also preserves completion/state-transition timing evidence, corrects the genuine Windows fixture's std dependency, and retains first CI failures. The Termux check uses the official package source; the Zed smoke requires its independently started PATH clangd and mcppls's own initialized child. No performance budgets are relaxed.
Validation on the frozen local source now pushed in
fcb3450: dev/release each pass 6 workspace members / 58 programs and 32 LSP fixtures, including the new 70-check watched-source fixture. Specification validation has zero failures (four existing pending rules). New-source CI, native Windows real-producer acceptance and unresolved performance investigation remain pending; the prior nightly failures are preserved, not superseded by a later pass.Portable handoff and file map · Checksummed evidence and restore commands · Failure summary. Selected evidence is approximately 1 MB and can be restored without the original machine. Engine memo materials are unimplemented review proposals; the engine and payload lock remain unchanged.
Draft: do not merge or publish 0.0.17. This checkpoint synchronizes the local repairs and handoff materials. Refs #59 and #63; follow-up to #64.