The uniform not-installed policy (packages/vscode/AGENTS.md, PR #29) covers "a config importing a package that is not installed" today only for Rstest, whose worker loads the config in the extension's own child process and can classify Node's error code there (missingDependencyCauseOf, carried as data over IPC).
The same scenario is unhandled for the other two stacks, as noted by review on PR #29:
- Rslint: rstack/@rslint/core resolve, but the (bridged or native) config imports an absent package. The config-load failure surfaces through the lint worker as a generic loader error, so onDocumentFailure classifies it as crashed with a stack trace instead of the disabled status + one warn line.
- fmt: rstack resolves and
rs fmt --lsp starts, but the workspace-root rstack.config.* imports an absent package. The server loads the config lazily on the first formatting request and the controller has no config-load failure observation point at all, so the case degrades to an ordinary formatting error.
Both need the verdict produced where the config is actually loaded (the lint worker; the fmt Go server or a probe in front of it) and carried back as data, mirroring NormalizedConfigResult. The fmt half likely needs upstream support in rstack's rs fmt --lsp.
Until then the disabled-state guarantee for config imports holds for Rstest only.
The uniform not-installed policy (packages/vscode/AGENTS.md, PR #29) covers "a config importing a package that is not installed" today only for Rstest, whose worker loads the config in the extension's own child process and can classify Node's error code there (missingDependencyCauseOf, carried as data over IPC).
The same scenario is unhandled for the other two stacks, as noted by review on PR #29:
rs fmt --lspstarts, but the workspace-root rstack.config.* imports an absent package. The server loads the config lazily on the first formatting request and the controller has no config-load failure observation point at all, so the case degrades to an ordinary formatting error.Both need the verdict produced where the config is actually loaded (the lint worker; the fmt Go server or a probe in front of it) and carried back as data, mirroring NormalizedConfigResult. The fmt half likely needs upstream support in rstack's
rs fmt --lsp.Until then the disabled-state guarantee for config imports holds for Rstest only.