feat(vscode): not-installed state for config imports, recover by polling - #51
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4699bf7062
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c0a9f0697
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 710a530b6a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e960657c8b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8f255d618c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc5f80fe29
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6593c86550
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e364fd133a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5cc33d1b22
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d4dfba136
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cda9a06276
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 653184fa92
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 972f8de421
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Closes #30.
What
A config that imports a package which is not installed now produces the uniform not-installed state for every stack, and the extension recovers from that state on its own once dependencies are installed.
running, no diagnostics, nothing logged (measured on@rslint/core0.9.0; #30's "crashed" description was from an older core)disabled+ one warn line, no stack, nevercrashedrstack.config.*imports an absent package (fmt)rs fmt --lspon every formatdisabled+ one warn line, no toast; unrelated server messages still pass throughnode_modules/@rslint/core/package.jsonwatcherHow
shared/missingDependency.tssplits into a message classifier (bare specifier + physicalnode_moduleswalk-up for subpaths) and the existingcode-gated wrapper Rstest uses.loadConfigsresults withcode. It classifies there and sends a dedicatedrstack/rslintConfigDependencynotification to the editor on both fulfilled and rejectedrslint/configRefresh. The Go server stays alive (upstream's unavailable-boundary recovery model), so a later refresh can clear the state in place. A classified rejection during start keeps the initialized client instead of lettingRuntimeManagertear it down. Recorded in adaptation refactor(vscode): split tests out of src into sibling tests/ and e2e/ trees #7.rs fmt --lsp(rstack 0.7.2, a Node process, not Go) loads config lazily on the first format and reports failure only aswindow/showMessagetext. The stack registers its ownShowMessageNotificationhandler: the exactrs fmt cannot format this workspace:Error is classified; a hit becomesdisabledand is not shown; everything else is re-presented exactly as vscode-languageclient's default handler would. Recorded as a gotcha.node_modulescan recover on the next tick. A tick entersenqueueand forces the same detection notification a lockfile event does, so each stack reuses its existing dependency-change path. Rstest retries a failed config evaluation in place (single-flight) instead of dispose/recreate; recorded as ahead-of-upstream feat: per-stack restart commands and a hover-only status bar #4.AGENTS.mdcorrected: VS Code's defaultfiles.watcherExcludedoes not excludenode_modules; the real limitation is that pnpm installs produce no per-file events.Known limitations (documented in ADR 0005 / AGENTS.md)
runningbefore the config is proven: the server only loads config on the next format request. Eager config load inrs fmt --lspis a small separate upstream change that would remove this.Verification
pnpm lint && pnpm test:unit: 176 files type-checked, 33 test files / 286 tests passed.VSCODE_CLI=1 pnpm test:e2e lint vscode rstest: 20/20 isolated VS Code launches passed (lint 17, vscode 2, rstest 1) on VS Code 1.136.1, Node 26.5.0, pnpm 11.20.0.disabled, nevercrashed, exactly one warn; fmt same, no toast; pnpm--frozen-lockfileinstall inside the test → status recovers without any restart command, lockfile bytes and mtime verified unchanged.