Conversation
|
|
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds the Effect language-service plugin configuration to TypeScript, installs ChangesEffect Language Service Integration
Nx Ignore Update
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
View your CI Pipeline Execution ↗ for commit 3dd1c30
☁️ Nx Cloud last updated this comment at |
@forgerock/davinci-client
@forgerock/device-client
@forgerock/journey-client
@forgerock/oidc-client
@forgerock/protect
@forgerock/sdk-types
@forgerock/sdk-utilities
@forgerock/iframe-manager
@forgerock/sdk-logger
@forgerock/sdk-oidc
@forgerock/sdk-request-middleware
@forgerock/storage
commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (17.61%) is below the target coverage (40.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #576 +/- ##
===========================================
- Coverage 70.90% 17.61% -53.29%
===========================================
Files 53 154 +101
Lines 2021 24243 +22222
Branches 377 1160 +783
===========================================
+ Hits 1433 4271 +2838
- Misses 588 19972 +19384 🚀 New features to boost your workflow:
|
|
Deployed 4aa8612 to https://ForgeRock.github.io/ping-javascript-sdk/pr-576/4aa8612649b67907a585e8bcdfdd6672476a0a3e branch gh-pages in ForgeRock/ping-javascript-sdk |
📦 Bundle Size Analysis📦 Bundle Size Analysis🚨 Significant Changes🔻 @forgerock/device-client - 0.0 KB (-10.0 KB, -100.0%) ➖ No Changes➖ @forgerock/device-client - 10.0 KB 14 packages analyzed • Baseline from latest Legend🆕 New package ℹ️ How bundle sizes are calculated
🔄 Updated automatically on each push to this PR |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
tsconfig.base.json (1)
8-86:⚠️ Potential issue | 🟠 Major | ⚡ Quick winPlugin configuration is inert without
@effect/language-serviceinstalledThe
"name": "@effect/language-service"plugin incompilerOptions.pluginsrequires the@effect/language-servicenpm package. Since only@effect/tsgois installed inpackage.json, TypeScript (both tsserver and ts-patch) will silently fail to load this plugin, rendering the entire block a no-op. See the comment onpackage.jsonfor the package fix.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tsconfig.base.json` around lines 8 - 86, The tsconfig plugin entry "name": "@effect/language-service" in compilerOptions.plugins is inert because the `@effect/language-service` package is not installed; install and add the missing package (or remove/disable the plugin entry) so the plugin actually loads. Update package.json to include "@effect/language-service" (matching the plugin name) and run npm/yarn install, or alternatively remove the plugin object from the "plugins" array in tsconfig.base.json to avoid silent no-op behavior; ensure you reference the "name": "@effect/language-service" plugin entry when making the change.package.json (1)
55-55:⚠️ Potential issue | 🟠 Major | ⚡ Quick win
@effect/tsgoand@effect/language-serviceare distinct packages — the wrong one is installed
@effect/tsgois a TypeScript-Go binary replacement that provides the Effect LSP experience on top of the Go-based TypeScript compiler, whereas@effect/language-serviceis the TypeScript language service plugin package that must be installed directly (npm install@effect/language-service--save-dev) for the traditional tsserver plugin mechanism.
tsconfig.base.jsonreferences"name": "@effect/language-service"incompilerOptions.plugins. TypeScript resolves plugin names as NPM package names, so it will try to load the@effect/language-servicemodule — which is not installed.@effect/tsgodoes not provide a module resolvable under that name via Node.js.Additionally, the TypeScript-Go version of the Effect LSP should be considered in Alpha with breaking changes expected between releases, and it still requires
@typescript/native-previewalongside@effect/tsgo— which is also absent fromdevDependencies.This project uses TypeScript 5.8.3 + ts-patch (not tsgo), so the correct package to add is
@effect/language-service:🔧 Proposed fix
- "@effect/tsgo": "^0.5.1", + "@effect/language-service": "latest",#!/bin/bash # Verify whether `@effect/language-service` or `@effect/tsgo` is resolvable as a TS plugin rg -n "language-service\|tsgo" package.json pnpm-lock.yaml 2>/dev/null | head -40🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@package.json` at line 55, package.json currently installs `@effect/tsgo` but tsconfig expects the plugin "@effect/language-service"; update devDependencies by removing `@effect/tsgo` and adding `@effect/language-service` (install with your package manager), ensure the compilerOptions.plugins entry remains "name": "@effect/language-service", and if you intentionally use the TypeScript-Go LSP add the required `@typescript/native-preview` plus the matching tsgo toolchain—otherwise omit tsgo/native-preview when using ts-patch; after changes run your install command to update lockfiles.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tsconfig.base.json`:
- Around line 74-84: The tsconfig override currently sets
diagnosticSeverity.floatingEffect to "error" for all files matching
"src/**/*.ts", which will cause build failures once `@effect/language-service`
diagnostics are enabled; change the override in the "overrides" block so that
"diagnosticSeverity.floatingEffect" is lowered to "warning" (or restrict the
"include" pattern to a single package) and keep
"ignoreEffectErrorsInTscExitCode" behavior in mind (the flag referenced as
ignoreEffectErrorsInTscExitCode) so the repo-wide tsconfig.base.json does not
immediately escalate unassigned Effect expressions to tsc errors across all
packages.
---
Duplicate comments:
In `@package.json`:
- Line 55: package.json currently installs `@effect/tsgo` but tsconfig expects the
plugin "@effect/language-service"; update devDependencies by removing
`@effect/tsgo` and adding `@effect/language-service` (install with your package
manager), ensure the compilerOptions.plugins entry remains "name":
"@effect/language-service", and if you intentionally use the TypeScript-Go LSP
add the required `@typescript/native-preview` plus the matching tsgo
toolchain—otherwise omit tsgo/native-preview when using ts-patch; after changes
run your install command to update lockfiles.
In `@tsconfig.base.json`:
- Around line 8-86: The tsconfig plugin entry "name": "@effect/language-service"
in compilerOptions.plugins is inert because the `@effect/language-service` package
is not installed; install and add the missing package (or remove/disable the
plugin entry) so the plugin actually loads. Update package.json to include
"@effect/language-service" (matching the plugin name) and run npm/yarn install,
or alternatively remove the plugin object from the "plugins" array in
tsconfig.base.json to avoid silent no-op behavior; ensure you reference the
"name": "@effect/language-service" plugin entry when making the change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5e1e9606-0ecf-4e6c-b798-c7fdd93cf55b
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
.gitignore.nxignorepackage.jsontsconfig.base.json
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 55: The package.json is missing the required companion package
`@typescript/native-preview` required by `@effect/tsgo`; add
"@typescript/native-preview": "<latest-compatible-version>" alongside
"@effect/tsgo" in your dependencies or devDependencies in package.json (near the
existing "@effect/tsgo" entry) and run your package manager to install so the
effect-tsgo language server works correctly.
- Line 55: The package dependency "@effect/tsgo": "^0.5.1" should be pinned to
an exact version to avoid automatic minor/patch upgrades; update the dependency
entry in package.json by replacing the caret semver specifier (e.g., "^0.5.1")
with the exact version string (e.g., "0.5.1") for the "@effect/tsgo" dependency
so the project will not pull in unintended breaking changes from Alpha releases.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ab829b28-e604-4a01-b486-d2e243d87370
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
.nxignorepackage.jsontsconfig.base.json
✅ Files skipped from review due to trivial changes (1)
- tsconfig.base.json
| "@commitlint/config-conventional": "^20.0.0", | ||
| "@commitlint/prompt": "^20.0.0", | ||
| "@effect/cli": "catalog:effect", | ||
| "@effect/tsgo": "^0.5.1", |
There was a problem hiding this comment.
Missing required companion package @typescript/native-preview.
The @effect/tsgo docs state: "At the moment, you still need the standard native TypeScript install (@typescript/native-preview) alongside @effect/tsgo." Without it, developers configuring their editor to use effect-tsgo as the language server may encounter failures.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 55, The package.json is missing the required companion
package `@typescript/native-preview` required by `@effect/tsgo`; add
"@typescript/native-preview": "<latest-compatible-version>" alongside
"@effect/tsgo" in your dependencies or devDependencies in package.json (near the
existing "@effect/tsgo" entry) and run your package manager to install so the
effect-tsgo language server works correctly.
🧩 Analysis chain
🌐 Web query:
What is the latest stable version of @effect/tsgo on npm? Is 0.5.1 still current?
💡 Result:
Latest stable version of @effect/tsgo on npm: 0.5.1 (i.e., 0.5.1 is the most recent released patch listed for the @effect/tsgo package in the project’s changelog) [1]. Is 0.5.1 still current as of 2026-05-05? Yes—there’s an explicit 0.5.1 entry in the @effect/tsgo changelog [1], and the repository’s recent release automation shows version packaging activity around later dates without contradicting 0.5.1 being the latest for the root @effect/tsgo package [2][3]. Note: @effect/tsgo is described by the project as “currently in Alpha,” so “stable” here refers to the latest published release number, not to a non-alpha maturity level [4].
Citations:
- 1: https://github.com/Effect-TS/tsgo/blob/main/_packages/tsgo/CHANGELOG.md
- 2: Version Packages Effect-TS/tsgo#82
- 3: Effect-TS/tsgo@74812ef
- 4: https://effect-ts-tsgo.mintlify.app/
🏁 Script executed:
# Check if `@typescript/native-preview` is in package.json
rg "@typescript/native-preview" package.jsonRepository: ForgeRock/ping-javascript-sdk
Length of output: 55
🏁 Script executed:
# List all dependencies and devDependencies in package.json to verify `@effect/tsgo` context
cat -n package.json | sed -n '40,70p'Repository: ForgeRock/ping-javascript-sdk
Length of output: 1203
Pin @effect/tsgo to an exact version — it's explicitly Alpha.
@effect/tsgo is in Alpha and the upstream project warns to expect breaking changes between releases. Using ^0.5.1 allows automatic minor bumps that can silently break the plugin configuration committed in tsconfig.base.json.
Pin to the exact version to prevent uncontrolled upgrades:
📌 Proposed fix
- "@effect/tsgo": "^0.5.1",
+ "@effect/tsgo": "0.5.1",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "@effect/tsgo": "^0.5.1", | |
| "@effect/tsgo": "0.5.1", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 55, The package dependency "@effect/tsgo": "^0.5.1"
should be pinned to an exact version to avoid automatic minor/patch upgrades;
update the dependency entry in package.json by replacing the caret semver
specifier (e.g., "^0.5.1") with the exact version string (e.g., "0.5.1") for the
"@effect/tsgo" dependency so the project will not pull in unintended breaking
changes from Alpha releases.
There was a problem hiding this comment.
@ryanbas21 The docs do mention that you need to install @typescript/native-preview alongside. Regarding the version pinning, might be a good idea to avoid breaking changes for now but nbd.
There was a problem hiding this comment.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
There was a problem hiding this comment.
I suppose we can do this, but i'm not sure the affects on a workspace. You can install tsgo on your system or just use regular typescript before tsgo. the language service should work either way
There was a problem hiding this comment.
Did you mean to switch from tsgo to language-service?
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tsconfig.base.json`:
- Around line 15-16: Replace the unrecognized compiler option key
"includeSuggestionsInTsc" with the correct `@effect/language-service` option name
"ignoreEffectSuggestionsInTscExitCode" in the tsconfig JSON so the plugin reads
the setting; locate the existing "includeSuggestionsInTsc" entry and rename it
to "ignoreEffectSuggestionsInTscExitCode" preserving the boolean value (true).
- Around line 8-10: Root tsconfig.base.json references the TypeScript plugin
"@effect/language-service" but that package is not declared in the root
package.json; add "@effect/language-service" to the root package.json
devDependencies (matching the version you want for the workspace, for example
the same major as "@effect/tsgo"), run your package manager to install/update
the lockfile, and ensure the plugin name in tsconfig.base.json
("@effect/language-service") remains unchanged so the TypeScript language
service can be resolved for all workspace packages.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 99dcfc02-71b4-4747-8dcc-ab9aac2a9a14
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
.nxignorepackage.jsontsconfig.base.json
🚧 Files skipped from review as they are similar to previous changes (1)
- package.json
There was a problem hiding this comment.
Can we remove the comments from this json? Looks like it's causing syntax errors
There was a problem hiding this comment.
it shouldn't cause errors, i probably use jsonc. where are the errors?
There was a problem hiding this comment.
Maybe it was just a syntax highlighting thing in github
There was a problem hiding this comment.
Nx Cloud has identified a possible root cause for your failed CI:
We investigated all three Playwright e2e failures and found they share the same generic config.webServer 60-second timeout, with no underlying error linking the failure to the PR's diff. The tsconfig.base.json plugin additions are editor-only and ignored by tsc, and the newly added packages in package.json appear not to have been installed in the CI environment before the tests ran. We recommend re-running the pipeline once the environment has the updated dependencies available.
No code changes were suggested for this issue.
Trigger a rerun:
🎓 Learn more about Self-Healing CI on nx.dev
JIRA Ticket
N/A
Description
Add LSP Plugin.
Summary by CodeRabbit