Parser drift.
Examples
Platform spec article
Examples
Spec standingStandard
-
LSP graph
Context
Decision
Graph via LSP executeCommand.
Consequences
Thin wrappers.
Verification anchors
beskid_lsp handlers.
-
Focus without restart
Context
UX on focus.
Decision
didChangeConfiguration for focus; no LSP restart.
Consequences
Fast focus switch.
Verification anchors
Session invalidation.
- Contracts and edge cases focusedProjectUri, LSP executeCommand JSON schemas, and explorer edge-case rules.
- Decisions record (legacy index) Migration index for workspace and project explorer ADRs.
- Design model Tree item model, focus state, icons, and multi-root labeling for workspace and project explorers.
- Examples Corelib workspace and single-application explorer scenarios.
- Flow and algorithm Activation, LSP init, tree refresh, auto-select, and reveal flows for workspace and project explorers.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Purpose and scope
Section titled “Purpose and scope”Representative explorer behavior for the corelib workspace and a single-app folder opened without a workspace manifest.
Corelib workspace
Section titled “Corelib workspace”Setup: Open folder compiler/corelib/ containing Workspace.proj named corelib with multiple members under packages/.
Expected Workspaces view:
- One workspace root labeled
corelib(orcorelib / corelibwhen multi-root). - Member children for each
Workspace.projentry (for examplecollections,query,system). - Optional node
workspace.package.jsonwhen present at workspace root.
User action: Click member collections.
Expected:
focusedProjectUri→file://…/packages/collections/Project.proj- Project view root shows
collectionstargets and dependencies frombeskid.getProjectGraph beskid.getProjectDependenciesreturns locked versions afterbeskid lockhas been run in that workspace
Smoke checklist:
- All members listed match
Workspace.projwithout manual refresh. - Editing
Project.locktriggers debounced refresh; locked versions update in Project tree tooltips. beskid.refreshWorkspacefrom palette completes without LSP restart.
Single-application project
Section titled “Single-application project”Setup: Open folder containing only Project.proj (no parent Workspace.proj), e.g. a console app template output.
Expected Workspaces view:
- Empty state: “No Beskid workspaces found” (or equivalent localized string).
- User may still focus via Project picker or auto-select.
Expected Project view:
- Root = the lone
Project.proj - Dependencies from
getProjectGraph; unresolved registry deps show warning icon untilbeskid fetch
Auto-select: Opening Src/Main.bd sets focus to the containing Project.proj when beskid.project.autoSelectFromEditor is true.
Multi-root VS Code workspace
Section titled “Multi-root VS Code workspace”Setup: VS Code workspace with folders corelib/ and my-app/ side by side.
Expected labeling:
corelib / collectionsvsmy-app / my-appmember labels to disambiguate.
Focus: Switching editors between folders updates focus per auto-select rules without mixing dependency graphs.