Repository navigation
0.0.17: imports typed with autosave are one producer run, a killed clangd keeps your file, an idle clangd stops growing (mcppls-clangd 0.0.17) - #67
Open
Sunrisepeak wants to merge 12 commits into
Open
Sunrisepeak wants to merge 12 commits into
Sunrisepeak wants to merge 12 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.
…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.
…angd keeps the file being typed in, a crashed-on file goes back once its modules are rebuilt - W4 (#59 U15): a structure reload that saves of a file still being typed in ask for waits until the file is quiet (EDIT_SETTLE, at most 30 s). New fixture mcpp-autosave-import-typing: 0.0.16 makes 6 producer runs and 13 state changes in a minute of imports and bodies typed in turn with autosave; this makes 3 and 4. - W5 (#59 U9, U7a): an exit that names no file is a strike, not a set-aside; a file set aside after an exit goes back once its import closure has been rebuilt differently. New fixtures clangd-exit-strike and clangd-crash-closure fail on 0.0.16 and pass here. - M3: slow completions (2 s+) record queue, engine and answer time in the slow-request event; the runner keeps them. - C4: fixtures declare the mcpp they need ("requires-mcpp"), checked by the runner; CI installs MCPP_FIXTURE_VERSION for them as MCPPLS_REAL_MCPP (mcpp-target-windows-real needs 2026.10.5.2's Windows quoting fix). - M5: the overflow-trace test prints both sides of each comparison on failure. - CI: a manual nightly can reuse a CI run's payloads (payload-run), run only ux (scope), repeat the edits stage (ux-repeat) and run a released server beside it on the same machines (ux-baseline, measure compare); a manual CI or nightly of a branch may use a candidate engine. - D5: the PR65 evidence bundle stays in fcb3450's history; the tree keeps a pointer to it. - Docs: release design (.agents/docs/mcppls-0.0.17-release.md), changelog, projects, troubleshooting, release (en, zh-CN).
…ow request; traceability names the reload's new signature
…d, which no Clang can build for i686 MSVC
…1 section 7), as mcpp writes it
…is told at once, not after the drain's bound (the nightly's v0.0.16 baseline waited 900 s per stage)
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.
The 0.0.17 release, together with mcppls-clangd 0.0.17 (Sunrisepeak/mcppls-clangd#9), which this PR tests through
packaging/engine-candidate.jsonbefore the engine merges. Design:.agents/docs/mcppls-0.0.17-release.md. It carries PR #65's commits (072c230,1341938,e01e1c1,fcb3450) and replaces #65.Product
mcpp-autosave-import-typing(imports and bodies typed in turn with autosave, as U6 does): 0.0.16 → 6 producer runs, 13 state changes a minute (U15's budget is 12); now 3 and 4.clangd-exit-strikeandclangd-crash-closurefail on 0.0.16 and pass here.23.1.0-mcppls.5): unchanged memos are not serialized every 30 s (nightly: four jobs red since 10-08 (two CI/tooling defects, two UX budgets), and a cached model that outlives an mcpp upgrade #59 U13 idle RSS); module workers work under sanitizers (the engine's soak).CI / measurement
requires-mcppin a fixture's scenario, checked by the runner; CI installsMCPP_FIXTURE_VERSIONasMCPPLS_REAL_MCPP(fixesmcpp-target-windows-real, which ran the pinned 2026.9.30.2).payload-run(reuse a CI run's payloads),scope,ux-repeat(repeat the edits stage in new sessions),ux-baseline(a released server on the same machines;measure compare). Manual CI/nightly of a branch may use a candidate engine.fcb3450's history only; the tree keeps a pointer README.Local verification (clean tree):
mcpp test41/41,mcpp test -p devtools9/9,devtools check all; fixtures new and regression (clangd-crash-context, mcpp-watched-source-structure, typing-autosave, module-edit-autosave, module-faults, typing-import, typing-import-spin, partial-scan-standins, save-plan, typing-pause, mcpp-emit-edits, mcpp-watch, inferred) all pass; the three new fixtures fail against the 0.0.16 server.