HTTP scatter.
Flow and algorithm
Platform spec article
Flow and algorithm
Spec standingStandard
-
pckgClient boundary
Context
Decision
HTTP via pckgClient.ts only.
Consequences
Shared auth.
Verification anchors
Grep fetch in packages/.
-
CLI for lock
Context
Lock integrity.
Decision
Use beskid fetch/lock via CLI.
Consequences
Shared resolver.
Verification anchors
Panel CLI invocations.
- Contracts and edge cases pckgClient HTTP rules, authentication, caching, and package command contracts.
- Decisions record (legacy index) Migration index for package manager panel ADRs.
- Design model PackageTreeItem sections, pckgClient surface, cache keys, and Packages view chrome.
- Examples Corelib locked dependencies and registry search in the Packages view.
- Flow and algorithm Package search, details expansion, fetch/lock, and focus-driven refresh sequences.
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”Operational sequences for registry browse and project mutation from the Packages view.
Panel refresh on focus change
Section titled “Panel refresh on focus change”- Read
focusedProjectUrifrom workspace state. - If set,
executeCommand('beskid.getProjectDependencies', { projectUri }). - Replace ThisProject children; preserve RegistrySearch expansion state.
- Re-resolve registry base URL from workspace summary when workspace membership changes.
Registry search flow
Section titled “Registry search flow”- User invokes
beskid.packages.searchor view-title Search. - Show
InputBoxfor queryq. - Debounce 300ms; set status phase
search. searchPackages({ q, registryBaseUrl })via cache.- Populate RegistrySearch with
searchResultnodes (package name + health summary). - Clear status phase on completion or error.
Details expansion
Section titled “Details expansion”- User expands a
searchResultnode. - If details not cached, set phase
details, callgetPackageDetails({ name }). - Attach
versionchild nodes sorted by semver descending. - Expanding a version loads
registryDependencyleaves fromdependencies[]in details response (no extra HTTP unless stale).
Fetch and lock
Section titled “Fetch and lock”- User chooses Fetch or Lock from view title (requires focus).
- CLI runner spawns
beskidwithcwd= directory containing focusedProject.proj. - Stream output to Beskid LSP output channel; status phase
fetchorlock. - On exit code 0:
beskid.packages.refresh+beskid.refreshWorkspace+ tree providers update. - On non-zero: error notification with last stderr lines.
Add dependency
Section titled “Add dependency”- Prompt package name and version (quick pick optional for known search result).
- If CLI exposes
beskid add(or equivalent), invoke via runner. - Else insert dependency stanza into
Project.projat canonical location; save; trigger LSP refresh. - User should run Lock after add when lockfile policy requires it.