Extension UX.
Contracts and edge cases
Platform spec article
Contracts and edge cases
Spec standingStandard
-
Four views
Context
Decision
Four views under one container.
Consequences
beskid_vscode runtime.
Verification anchors
package.json; runtime tests.
-
focusedProjectUri
Context
Extension UX.
Decision
Single focus drives outline and packages.
Consequences
beskid_vscode runtime.
Verification anchors
package.json; runtime tests.
-
pckgClient only
Context
Extension UX.
Decision
Registry HTTP via pckgClient only.
Consequences
beskid_vscode runtime.
Verification anchors
package.json; runtime tests.
-
LSP graph only
Context
Extension UX.
Decision
Graph via LSP executeCommand only.
Consequences
beskid_vscode runtime.
Verification anchors
package.json; runtime tests.
-
Status controller
Context
Extension UX.
Decision
One status bar for LSP, pckg, CLI.
Consequences
beskid_vscode runtime.
Verification anchors
package.json; runtime tests.
- Contracts and edge cases focusedProjectUri, LSP executeCommand JSON, auth, and offline registry behavior.
- Design model Extension layout, focus model, and status-bar phases for the Beskid VS Code extension.
- Examples corelib workspace and single-app project scenarios.
- FAQ and troubleshooting Common questions about focus, private registries, offline mode, and LSP restarts.
- Flow and algorithm Activation through LSP init, tree refresh, and package search.
- Verification and traceability Tests, CI, and smoke checks for the VS Code extension surface.
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).
focusedProjectUri
Section titled “focusedProjectUri”| Surface | Key |
|---|---|
| LSP initialize | initializationOptions.focusedProjectUri |
| Deprecated alias | initializationOptions.selectedProjectUri (one release) |
| Configuration | beskid.project.focusedProjectUri in workspace/didChangeConfiguration |
When unset, LSP scans all workspace roots without prioritizing a single manifest.
LSP executeCommand payloads
Section titled “LSP executeCommand payloads”beskid.listWorkspaces
Section titled “beskid.listWorkspaces”Arguments: []
Returns:
{ "workspaces": [ { "uri": "file:///…/Workspace.proj", "name": "corelib", "members": [{ "name": "app", "path": "beskid_corelib", "uri": "file:///…/Project.proj" }] } ]}beskid.getWorkspaceSummary
Section titled “beskid.getWorkspaceSummary”Arguments: [workspaceUri: string]
Returns: { workspaceUri, name, resolver, members[], registries: [{ name, url }] }
beskid.getProjectGraph
Section titled “beskid.getProjectGraph”Arguments: [projectUri: string]
Returns: { projectUri, nodes[], edges[], unresolved[] }
beskid.getProjectDependencies
Section titled “beskid.getProjectDependencies”Arguments: [projectUri: string]
Returns: { projectUri, declared[], locked[], unresolved[] } — locked entries include resolvedVersion, materializedRoot, registry when present in Project.lock.
Registry auth
Section titled “Registry auth”beskid.pckg.apiKeysetting or SecretStoragebeskid.pckg.apiKey→Authorization: Bearer …on pckg fetch (matches pckgApiKeyAuthentication).- Private packages: search/details fail without key; UI shows HTTP error nodes, not silent empty lists.
Offline / unreachable registry
Section titled “Offline / unreachable registry”- Cached search TTL ~30s; details ~60s.
- Non-OK HTTP → tree info node; no unbounded refetch on every
getChildren.