Skip to content

Conversation

@ggreer
Copy link
Contributor

@ggreer ggreer commented Sep 18, 2025

Summary by CodeRabbit

  • Chores
    • Upgraded Go runtime and several third‑party libraries for improved compatibility and stability.
  • Bug Fixes / Reliability
    • Improved frontend startup and build handling with cancellable operations and clearer startup/log messages, reducing hangs and making failures easier to diagnose.

@coderabbitai
Copy link

coderabbitai bot commented Sep 18, 2025

Walkthrough

Added context-aware frontend bootstrap and improved error reporting in pkg/explorer/controller.go; updated module dependencies and Go version in go.mod (baton-sdk → v0.4.0, Go → 1.25, grpc/protobuf and other deps added/upgraded).

Changes

Cohort / File(s) Summary
Module and dependency updates
go.mod
Bumped go directive to 1.25; upgraded github.com/conductorone/baton-sdk v0.3.2 → v0.4.0; added google.golang.org/grpc and google.golang.org/protobuf; added ruleguard and other deps; upgraded github.com/klauspost/compress v1.17.11 → v1.18.0.
Frontend bootstrap and process control
pkg/explorer/controller.go
Made frontend build/install and browser launch context-aware by adding context.Context to internal commands (exec.CommandContext), propagated a root context in router, improved error logging and returned wrapped errors for npm install/build and browser open paths.

Sequence Diagram(s)

sequenceDiagram
  participant Router
  participant runNpmInstallAndBuild
  participant npm
  participant openBrowser
  rect rgb(235,245,255)
    Router->>runNpmInstallAndBuild: ctx, projectPath
    runNpmInstallAndBuild->>npm: exec.CommandContext(ctx, "npm", "install")
    npm-->>runNpmInstallAndBuild: output / error
    runNpmInstallAndBuild->>npm: exec.CommandContext(ctx, "npm", "run", "build")
    npm-->>runNpmInstallAndBuild: output / error
  end
  rect rgb(235,255,235)
    Router->>openBrowser: ctx, url
    openBrowser->>openBrowser: exec.CommandContext(ctx, OS-specific cmd)
    openBrowser-->>Router: success / error
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

I hop with a context in paw so spry,
npm builds heed my cancel cry.
Modules updated, versions gleam,
A rabbit’s dance around the stream.
New deps snug in the burrowed tree 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Upgrade baton-sdk to v0.4.0." is concise, specific, and accurately reflects the primary change in the changeset (the go.mod dependency bump to baton-sdk v0.4.0) and aligns with the PR objective and branch name; therefore it summarizes the main intent for reviewers. Although the diff also contains context-related changes in pkg/explorer/controller.go, those do not make the title misleading or unrelated to the main change.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ggreer/upgrade-baton-sdk

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cdb10a9 and 2fe446c.

⛔ Files ignored due to path filters (64)
  • cmd/baton/diff.go is excluded by none and included by none
  • cmd/baton/stats.go is excluded by none and included by none
  • go.sum is excluded by !**/*.sum and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/config/v1/config.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/config/v1/config.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_external_ticket.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_external_ticket.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_resource_tree.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_resource_tree.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_sync_id.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_sync_id.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/connector.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/event_feed.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/event_feed.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/event_feed_grpc.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/resource.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/resource.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/annotations/annotations.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/connectorstore/connectorstore.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/c1file.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/c1file_attached.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/clone_sync.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/decoder.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/diff.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/dotc1z.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/entitlements.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/file.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/grants.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/manager/local/local.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/manager/manager.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/manager/s3/s3.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resouce_types.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resources.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/sql_helpers.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/sync_runs.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/ratelimit/http.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/ratelimit/mem_ratelimiter.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/sdk/empty_connector.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/sdk/version.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/dbcache.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/gocache.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/transport.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/wrapper.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/us3/s3.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/README.md is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/huff0/bitreader.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/internal/le/le.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/s2sx.mod is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/README.md is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/bitreader.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/blockdec.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/blockenc.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/decoder.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/enc_base.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/matchlen_generic.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqdec.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqdec_generic.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqenc.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/snappy.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/zstd.go is excluded by !vendor/** and included by none
  • vendor/modules.txt is excluded by !vendor/** and included by none
📒 Files selected for processing (1)
  • go.mod (3 hunks)
🔇 Additional comments (3)
go.mod (3)

64-64: Verify klauspost/compress v1.18.0 compatibility.

  • Changelog: no explicit breaking changes, but includes new unsafe little-endian loaders; internal flate and s2 changes (L4–L6 loading, matchlen adjustments, asm removal); deprecates Go 1.21 and adds Go 1.24 support.
  • Action: run the full test suite and CI across your supported Go versions/architectures (include race detector); confirm no regressions for code relying on asm or unsafe paths and that go.mod/CI Go versions match library support; pin to v1.17.11 if you cannot validate.

6-6: Verify baton-sdk v0.4.0 compatibility

Repository imports baton-sdk pb v2 packages and uses the baton client API — confirm v0.4.0 didn't change any types/signatures used here and update callsites if needed.

  • pkg/storecache/storecache.go — imports: github.com/conductorone/baton-sdk/pb/c1/connector/v2, github.com/conductorone/baton-sdk/pb/c1/reader/v2, github.com/conductorone/baton-sdk/pkg/connectorstore
  • pkg/explorer/baton_service.go — imports: pb/c1/connector/v2, pb/c1/reader/v2
  • pkg/explorer/resources_handler.go — ctrl.baton.GetResources(...)
  • pkg/explorer/resource_handler.go — ctrl.baton.GetResourceById(...)
  • pkg/explorer/principals_handler.go — ctrl.baton.GetResourcesWithPrincipalCount(...)

Run go build ./... to surface compile errors and consult the baton-sdk v0.4.0 release notes for any breaking changes before approving the upgrade.


3-3: Go 1.25 is released — original warning is outdated.

Go 1.25 was released August 2025; go.mod's go 1.25 is valid. Ensure CI/toolchain uses Go 1.25 and run go mod tidy + the full test suite to confirm dependency compatibility. File: go.mod (line 3).

Likely an incorrect or invalid review comment.

go.mod Outdated
modernc.org/sqlite v1.35.0 // indirect
)

replace github.com/conductorone/baton-sdk => ../baton-sdk
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Development-only replace directive detected.

The replace directive points to a local path (../baton-sdk) which is typically used for development. Ensure this is intentional and consider whether this should be removed before merging to production.


🏁 Script executed:

#!/bin/bash
# Description: Check if ../baton-sdk directory exists and verify this is intended for development
# Expected: Confirm the local baton-sdk directory exists and understand the development setup

echo "=== Checking if ../baton-sdk directory exists ==="
if [ -d "../baton-sdk" ]; then
    echo "✓ ../baton-sdk directory exists"
    echo "Contents:"
    ls -la ../baton-sdk/ 2>/dev/null | head -10
else
    echo "✗ ../baton-sdk directory does not exist"
fi

echo -e "\n=== Checking for other replace directives in Go modules in parent directory ==="
find .. -name "go.mod" -exec echo "=== {} ===" \; -exec grep -n "replace.*baton-sdk" {} \; 2>/dev/null || echo "No other go.mod files with baton-sdk replace directives found"

Length of output: 254


Fix/remove development-only replace directive (../git/go.mod:109)

The directive replace github.com/conductorone/baton-sdk => ../baton-sdk points to a non-existent local path (../baton-sdk); remove it or replace with a published module version or a CI-accessible path to avoid breaking builds.

🤖 Prompt for AI Agents
In go.mod around line 109, the replace directive "replace
github.com/conductorone/baton-sdk => ../baton-sdk" points to a non-existent
local path; remove this development-only replace or change it to a published
module version or a CI-accessible path (for example specify a semantic version
like github.com/conductorone/baton-sdk vX.Y.Z) and then run "go mod tidy" to
update module files and ensure the build resolves correctly.

@ggreer ggreer force-pushed the ggreer/upgrade-baton-sdk branch from 2fe446c to a2ed332 Compare September 18, 2025 23:50
@ggreer ggreer force-pushed the ggreer/upgrade-baton-sdk branch from a2ed332 to 993cd6e Compare September 18, 2025 23:57
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
pkg/explorer/controller.go (1)

97-97: Consider using a more appropriate context.

Using context.Background() creates a context that cannot be cancelled. Consider using a context with timeout or cancellation capabilities for better resource management, especially for potentially long-running npm operations.

-	ctx := context.Background()
+	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
+	defer cancel()

You'll also need to import the time package for this change.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2fe446c and 993cd6e.

⛔ Files ignored due to path filters (86)
  • .github/workflows/ci.yaml is excluded by none and included by none
  • .github/workflows/main.yaml is excluded by none and included by none
  • .github/workflows/release.yaml is excluded by none and included by none
  • .golangci.yml is excluded by none and included by none
  • .gon-amd64.json is excluded by none and included by none
  • .gon-arm64.json is excluded by none and included by none
  • .goreleaser.docker.yaml is excluded by none and included by none
  • .goreleaser.yaml is excluded by none and included by none
  • cmd/baton/diff.go is excluded by none and included by none
  • cmd/baton/explorer.go is excluded by none and included by none
  • cmd/baton/stats.go is excluded by none and included by none
  • go.sum is excluded by !**/*.sum and included by none
  • tools/rules.go is excluded by none and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/config/v1/config.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/config/v1/config.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_external_ticket.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_external_ticket.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_resource_tree.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_resource_tree.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_sync_id.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/annotation_sync_id.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/connector.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/event_feed.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/event_feed.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/event_feed_grpc.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/resource.pb.go is excluded by !**/*.pb.go, !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/resource.pb.validate.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/annotations/annotations.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/connectorstore/connectorstore.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/c1file.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/c1file_attached.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/clone_sync.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/decoder.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/diff.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/dotc1z.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/entitlements.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/file.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/grants.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/manager/local/local.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/manager/manager.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/manager/s3/s3.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resouce_types.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resources.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/sql_helpers.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/sync_runs.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/ratelimit/http.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/ratelimit/mem_ratelimiter.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/sdk/empty_connector.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/sdk/version.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/dbcache.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/transport.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/uhttp/wrapper.go is excluded by !vendor/** and included by none
  • vendor/github.com/conductorone/baton-sdk/pkg/us3/s3.go is excluded by !vendor/** and included by none
  • vendor/github.com/ennyjfrick/ruleguard-logfatal/.gitignore is excluded by !vendor/** and included by none
  • vendor/github.com/ennyjfrick/ruleguard-logfatal/LICENSE is excluded by !vendor/** and included by none
  • vendor/github.com/ennyjfrick/ruleguard-logfatal/README.md is excluded by !vendor/** and included by none
  • vendor/github.com/ennyjfrick/ruleguard-logfatal/rules.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/README.md is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/huff0/bitreader.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/internal/le/le.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/s2sx.mod is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/README.md is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/bitreader.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/blockdec.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/blockenc.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/decoder.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/enc_base.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/matchlen_generic.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqdec.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqdec_generic.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/seqenc.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/snappy.go is excluded by !vendor/** and included by none
  • vendor/github.com/klauspost/compress/zstd/zstd.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/LICENSE is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/bundle.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/do.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/filter.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/internal.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/types/ext.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/types/type_impl.go is excluded by !vendor/** and included by none
  • vendor/github.com/quasilyte/go-ruleguard/dsl/types/types.go is excluded by !vendor/** and included by none
  • vendor/modules.txt is excluded by !vendor/** and included by none
📒 Files selected for processing (2)
  • go.mod (2 hunks)
  • pkg/explorer/controller.go (5 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • go.mod
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Cursor Bugbot
🔇 Additional comments (6)
pkg/explorer/controller.go (6)

62-62: LGTM! Context parameter addition improves cancellation support.

The function now accepts a context parameter, enabling proper cancellation and timeout handling for the npm operations.


66-66: Good use of context-aware command execution.

Both npm install and npm run build commands now use CommandContext which enables proper cancellation and timeout handling.

Also applies to: 82-82


101-101: Excellent context propagation.

The context is properly passed to both runNpmInstallAndBuild and openBrowser functions, maintaining consistency in the cancellation chain.

Also applies to: 112-112


135-135: LGTM! Context parameter addition enables cancellation.

The openBrowser function signature update aligns with the context-aware pattern used throughout the changes.


139-139: Good use of context-aware command execution for browser launching.

All platform-specific browser launch commands now use CommandContext, enabling proper cancellation support across different operating systems.

Also applies to: 141-141, 143-143


69-76: Enhanced error handling and logging improves debugging.

The addition of error logging with command output and success messages provides better visibility into npm operation status, which will be helpful for troubleshooting frontend setup issues.

Also applies to: 85-92

@ggreer ggreer merged commit 2074a5c into main Sep 19, 2025
5 checks passed
@ggreer ggreer deleted the ggreer/upgrade-baton-sdk branch September 19, 2025 00:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants