S2 0.3.0: a single-document answer may describe a workspace in part - #25
Closed
speak-agent wants to merge 1 commit into
Closed
speak-agent wants to merge 1 commit into
speak-agent wants to merge 1 commit into
Conversation
Sunrisepeak
added a commit
that referenced
this pull request
Sep 26, 2026
… not describe is said (S2 0.3.0, F10) S2 0.3.0 (from #25) lets a single-document answer carry data together with error diagnostics whose path names each part the producer could not describe, as mcpp does after mcpp-community/mcpp#699. mcppls already used such data; it now reads the diagnostics' path and reports each missing part as a model issue (producer-partial) by its build description file. The mock mcpp answers that way when a fixture records a database and diagnostics; fixture mcpp-emit-partial, and validate.py checks the schema's path. S2-3.4-12 and S2-3.4-13 have their evidence.
Owner
|
Folded into #26 (release 0.0.5) so it lands as one PR: the S2 0.3.0 change is merged there unchanged, together with its consumer side in mcppls (F10: a partial answer is used and each part the producer could not describe is reported as |
Sunrisepeak
added a commit
that referenced
this pull request
Sep 26, 2026
…import no longer stalls clangd, restarts back off, C++26 aligned, one-click diagnostic bundle (#26) clangd's module scan failed on every unit of a project built with LTO for the MSVC ABI, because the commands it was given had no -c and the driver's link-phase check (LTO requires -fuse-ld=lld) fired; no module was built, imports were not found, and on Windows clangd crashed until it was given up on (issue #23). Every engine command now compiles only, -flto kept. A crash sets aside the file clangd names in its crash context; restarts have a budget per cause (plan, recovery, crash) and are backed off 1/2/4/8 minutes past it, never refused, with Restart clangd and switches of toolchain or context never counted; clangd waits for the build tool's model when a build system was found; a command clangd rejects is an environment issue. clangd reads an open file's imports from disk (UP-14), so an autosave of a half-typed import reached it past every workaround: import hello. spun it and an import of a module not provided yet deadlocked it, and every request for the file waited behind it. A file whose text on disk would stall clangd is now set aside before clangd builds it and handed back once the disk or the database makes it safe; files being edited are planned with what their buffer and disk import, stand-ins no longer restart clangd, and a missing ';' and an unsaved import are reported where and as they are (WA-CLANGD-006, -007). The module units of a context are read with one C++ standard, the newest they name, so a C++26 file imports what a C++23 one built; sources nothing describes are read as C++26 where the compiler takes it. S2 0.3.0 (#25): a build tool's partial answer is used and what it could not describe is reported. A space after import opens the module list and module keywords come from mcppls; export and C++26 contract keywords are colored. clangd logs at info into memory, incidents record what went wrong, and Export Diagnostic Bundle zips report, environment, logs, incidents and engine database with home, names and secrets replaced, refusing to write anything left over. macOS 11 again with mcpp 2026.9.26.1. Plan, decisions and implementation record: .agents/docs/2026-09-26-issue-23-fix-plan.md; analysis of #23: .agents/docs/2026-09-26-issue-23-lto-module-scan.md; details in CHANGELOG [0.0.5]. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
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.
Summary
S2 0.3.0: in single-document mode, a document may carry
datatogether witherrordiagnostics, and it then describes everything except what those diagnostics name.data(S2-3.4-5) is present when the command described the workspace in whole or in part. A command withoutdatahas still failed (S2-3.4-11, unchanged).path(optional), the file it concerns, relative to the workspace root. The schema gains the property.errordiagnostic whosepathis that part's build description file; a consumer should use the rest of the document and report the errors; the exit status is non-zero.Why
mcpp-community/mcpp#699: on a five-member workspace, one member whose host tool failed to build removed every member's sets, and the language server fell back to a guessed model. mcpp now plans every selected member on its own and describes a package whose build program fails without that program's directives (mcpp-community/mcpp#702, design record
.agents/docs/2026-09-26-compile-database-and-issue-699-design.md§4.4). S2 0.2.0 had no partial outcome, so the producer's new shape needed one sentence here.Compatibility
MINOR: an optional field and a relaxation of when
dataappears. A consumer written for 0.2.0 reads such a document as a success with error diagnostics, which is the intended reading.