Skip to content

chore(deps-dev): bump mariozechner to earendil-works - #314

Open
hushi55 wants to merge 1 commit into
OpenCoworkAI:mainfrom
hushi55:bump-to-earendil-works
Open

chore(deps-dev): bump mariozechner to earendil-works#314
hushi55 wants to merge 1 commit into
OpenCoworkAI:mainfrom
hushi55:bump-to-earendil-works

Conversation

@hushi55

@hushi55 hushi55 commented Jul 22, 2026

Copy link
Copy Markdown

Summary

Type of change

  • Bug fix (fix)
  • New feature (feat)
  • Refactor / performance (refactor / perf)
  • Documentation (docs)
  • Tests (test)
  • Build / CI (build / ci)
  • Other:

Checklist

  • Code follows the project style (TypeScript strict, ESLint, Prettier)
  • Commit messages follow Conventional Commits (feat:, fix:, etc.)
  • Self-review completed — no debug logs, no commented-out code
  • Tests added or updated for the changed behaviour
  • npm run test passes locally
  • npm run lint passes locally
  • UI changes tested on both macOS and Windows (or noted as platform-specific)
  • New user-facing strings added to i18n files (en + zh)

Testing

Screenshots / recordings (if applicable)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: initial

Findings

  • [Minor] src/main/agent/pi-model-resolution.ts:57 – The resolvePiRouteProtocol function forces 'openai' for DeepSeek base URLs when provider === 'custom' even if the model ID does not appear to be a DeepSeek model. This could cause protocol mismatch if a user configures a custom provider with a DeepSeek endpoint but uses a non-DeepSeek model. Consider adding a stricter check.

  • [Nit] tests/deepseek-thinking-serialization.test.ts:8 – The patch-presence check relies on a string search for 'requiresThinkingInContent' in the compiled SDK output. If the patch is applied twice (causing duplicate diff text) or if the string appears in other comments, the check may produce a false positive. Consider verifying the actual exported symbol or behavior instead.

Summary

Review mode: initial
Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

No blockers found. The PR correctly migrates from @mariozechner/pi-* to @earendil-works/pi-* (v0.81.1), updates imports, patches the new SDK for DeepSeek V4 thinking support, refactors ModelRuntime usage, and adds comprehensive DeepSeek URL/model resolution. Tests are updated and new tests cover DeepSeek-specific behavior. Residual risks include potential timing issues if external code calls getSharedAuthStorage() without await (all callers in this PR are properly updated), and fragility of the patch if the SDK receives minor updates. The changes are well-scoped and maintain backward compatibility for non-DeepSeek providers.

Testing

  • Not run (automation)

Open Cowork Bot

@hushi55
hushi55 force-pushed the bump-to-earendil-works branch from 8316018 to fbe2fe6 Compare July 22, 2026 16:17

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Findings

[Blocker] Compaction event name not updated in agent-runner.ts

  • Evidence: src/tests/agent/compact-integration.test.ts (lines 258, 310, 343) renames 'auto_compaction_end''compaction_end', matching the new SDK. The diff for src/main/agent/agent-runner.ts shows no corresponding change to the event handler that listens for this event. The handler likely still uses the old event name, which will cause compaction results to never be surfaced as ServerEvent.
  • Suggested fix: In agent-runner.ts, update the event type filter from 'auto_compaction_end' to 'compaction_end'.

[Major] Builtin tools disabled without replacement

  • Evidence: src/main/agent/agent-runner.ts (lines in createAgentSession call) passes noTools: 'builtin' and customTools: sdkCustomTools where sdkCustomTools = [...wrappedTools, ...customTools]. The previous SDK supplied default builtins (e.g., TextEditor, Glob, Grep, WebFetch). By disabling all builtins and only providing the wrapped bash and MCP custom tools, those other builtin tools are lost. Functionality like text editing or file search will silently fail.
  • Suggested fix: Either remove noTools: 'builtin' and override only the bash tool via the SDK's builtin replacement mechanism, or explicitly list all required builtins in customTools.

[Minor] Inconsistent import path for pi-ai module

  • Evidence: src/main/agent/pi-model-resolution.ts imports from @earendil-works/pi-ai/compat, while src/tests/agent/pi-model-resolution.test.ts imports from @earendil-works/pi-ai. If the compat subpath exports different types or API surface, this can cause type mismatches at test time.
  • Suggested fix: Align both imports to the same subpath. Since the source uses compat, the test should also use @earendil-works/pi-ai/compat.

Summary

  • Review mode: full review after prior context reset
  • Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.
  • The PR upgrades the core AI SDK from @mariozechner/pi-* to @earendil-works/pi-* and adds DeepSeek V4 routing and thinking support. Most import rewrites are correct, but two critical issues were found: an event name mismatch that will break compaction result surfacing, and a tool disabling strategy that loses builtin tools. These should be addressed before merging.

Testing

  • Not run (automation).
  • Existing tests for DeepSeek normalization and model resolution are present and pass with the new imports. No tests were added for the compaction event listener update or builtin tool availability.

Open Cowork Bot

@hushi55
hushi55 force-pushed the bump-to-earendil-works branch from 9a5d023 to cdbfd59 Compare July 22, 2026 16:21

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: full review after prior context reset

Findings

No issues found. The migration from @mariozechner/pi-* v0.60.0 to @earendil-works/pi-* v0.81.1 is thorough and correctly adapted to the new SDK API surface:

  • All imports updated consistently (including /compat entry points where needed)
  • AuthStorageModelRuntime (async create()) with proper await on all callers
  • tools/customTools split to customTools + noTools: 'builtin' for the new SDK
  • appendSystemPrompt converted from string to array ([coworkAppendPrompt])
  • DefaultResourceLoader now receives agentDir: getAgentDir()
  • resolvePiRouteProtocol signature extended with baseUrl and model parameters; all callers updated
  • DeepSeek V4 support added: requiresThinkingInContent compat flag, isDeepSeekBaseUrl, URL normalization to /v1, and proper routing to DeepSeek registry
  • package-lock.json removed from version control (added to .gitignore)
  • @sinclair/typebox added as explicit dependency
  • Old patch removed, new patch for @earendil-works/pi-ai with requiresThinkingInContent logic
  • Test files updated with new import paths, DeepSeek test cases, and API changes

Residual risk: This is a major dependency upgrade. The PR assumes the new SDK is backward-compatible for the features used. No regressions or safety concerns were introduced in the diff.

Testing

Not run (automation) — but test updates look appropriate. Suggested manual validation:

  • Run the app with various providers (Anthropic, OpenAI, DeepSeek) to verify session creation and tool execution
  • Test subagent spawning (Coverage related)
  • Verify DeepSeek V4 thinking serialization with the patch
  • Run npm run test and npm run build

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Open Cowork Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings

  • [Major] Redundant and incorrect npm install && npm ci --ignore-scripts in CI (:.github/workflows/ci.yml:26)

    The new CI step runs npm install (which executes the postinstall script – patching modules, downloading Node, rebuilding native modules) and then immediately runs npm ci --ignore-scripts. Since npm ci deletes the entire node_modules/ and reinstalls from the lockfile, all work done by npm install – including patch-package, binary downloads, and native rebuilds – is discarded and then redone by the later npx patch-package and npm rebuild better-sqlite3 steps.

    This doubles installation time and adds unnecessary risk: the postinstall script could fail in CI (e.g., if a required binary download fails), yet its only purpose here is to generate a lockfile. Instead, generate the lockfile without running any scripts:

    - name: Generate lockfile (if missing)
      run: npm install --package-lock-only --ignore-scripts
    - name: Install dependencies
      run: npm ci --ignore-scripts
  • [Major] Non-deterministic installs due to lockfile removal (:.gitignore:70)

    The PR removes package-lock.json from version control (added to .gitignore). Without a committed lockfile, npm install resolves the latest semver-compatible versions at runtime, making each CI build potentially pull a different dependency tree. This makes bugs hard to reproduce and can introduce regressions without code changes. Consider either committing the lockfile or using a lockfile pinning strategy (e.g., npm install --package-lock-only and committing the result).

Summary

Review mode: follow-up after new commits. The only new change since the last review is the CI workflow modification. The change introduces significant efficiency and reproducibility concerns. The simplified two-command install sequence is both wasteful (double install) and breaks the intended dependency isolation. The removal of the lockfile from version control further undermines deterministic builds.

Testing

Not run (automation) – suggested: verify the CI step completes with the corrected approach (npm install --package-lock-only --ignore-scripts then npm ci --ignore-scripts).

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Open Cowork Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings

  • [Major] Redundant and incorrect npm install && npm ci --ignore-scripts in CI (.github/workflows/ci.yml:26)

    The CI step runs npm install (which executes the postinstall script – patching, downloading Node, rebuilding) and then immediately runs npm ci --ignore-scripts. Since npm ci deletes the entire node_modules/ and reinstalls from the lockfile, all work done by npm install is discarded and then redone by the later npx patch-package and npm rebuild better-sqlite3 steps. This doubles installation time and adds unnecessary risk (e.g., postinstall failure can break the build).

    Suggested fix:

    - name: Generate lockfile (if missing)
      run: npm install --package-lock-only --ignore-scripts
    - name: Install dependencies
      run: npm ci --ignore-scripts
  • [Major] Non-deterministic installs due to lockfile removal (.gitignore:70, package-lock.json removed)

    package-lock.json is added to .gitignore and deleted from the repo. Without a committed lockfile, npm install resolves the latest semver-compatible versions at runtime, making each CI build potentially pull a different dependency tree. This makes bugs hard to reproduce and can introduce regressions without code changes.

    Suggested fix: commit the lockfile or use a lockfile pinning strategy (e.g., npm install --package-lock-only and committing the result).

  • [Minor] Async migration risk: getSharedAuthStorage() now returns Promise<ModelRuntime> (src/main/agent/shared-auth.ts:14)

    The synchronous AuthStorage.create() is replaced with async ModelRuntime.create(). All callers updated in this PR (agent-runner.ts, sdk-one-shot.ts, subagent-extension.ts) correctly use await. However, any other callers in the codebase (e.g., in src/main/remote/ or src/main/mcp/) that still use the old sync pattern (const auth = getSharedAuthStorage()) will break at runtime with a Promise object instead of an AuthStorage. A cross-repo audit of all getSharedAuthStorage import sites is needed.

    Suggested fix: audit all imports of getSharedAuthStorage across the repository and update any that are missing await.

Questions

  • None

Summary

Review mode: follow-up after new commits. The PR successfully updates the core AI SDK from @mariozechner to @earendil-works with comprehensive code and test changes. Two previously flagged issues (CI inefficiency and lockfile removal) remain unresolved. A new minor risk is identified: the async migration of getSharedAuthStorage() may break callers not updated in this PR. The rest of the SDK bump appears correct with adequate test coverage.

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Testing

Not run (automation) – tests are updated for the new SDK and DeepSeek V4 support. CI must be green before merge, but the current CI step has the redundancy issue noted above.

Open Cowork Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings

  • [Major] Non-deterministic installs due to lockfile removal (.gitignore:71, package-lock.json removed)

    package-lock.json is added to .gitignore and deleted from the repo. Without a committed lockfile, npm install resolves the latest semver-compatible versions at runtime, making each CI build potentially pull a different dependency tree. This makes bugs hard to reproduce and can introduce regressions without code changes.

    Suggested fix: commit the lockfile or use a lockfile pinning strategy (e.g., npm install --package-lock-only and committing the result).

  • [Minor] Async migration risk: getSharedAuthStorage() now returns Promise<ModelRuntime> (src/main/agent/shared-auth.ts:14)

    The synchronous AuthStorage.create() is replaced with async ModelRuntime.create(). All callers updated in this PR (agent-runner.ts, sdk-one-shot.ts, subagent-extension.ts) correctly use await. However, any other callers in the codebase (e.g., in src/main/remote/ or src/main/mcp/) that still use the old sync pattern (const auth = getSharedAuthStorage()) will break at runtime with a Promise object instead of an AuthStorage. A cross-repo audit of all getSharedAuthStorage import sites is needed.

    Suggested fix: audit all imports of getSharedAuthStorage across the repository and update any that are missing await.

  • [Minor] CI cache disabled (ci.yml:23)

    The cache: npm line is commented out. This increases install time by ~30s per CI run. Consider re-enabling it or documenting why it's disabled.

    Suggested fix: uncomment the cache line or add a comment explaining the reason.

Fixed from previous review: The redundant npm install && npm ci --ignore-scripts in CI is now correctly simplified to npm ci --ignore-scripts.

Summary

Review mode: follow-up after new commits. The CI redundancy issue from the previous review is fixed. Two previously flagged issues (lockfile removal and async migration risk) remain unresolved. A new minor observation is the commented-out CI cache line. The rest of the SDK bump appears correct.

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Testing

Not run (automation) – previous tests are adequate. The CI step change is trivial.

Open Cowork Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings

  • [Major] Lockfile removal still breaks reproducible installs (.gitignore:71, package-lock.json deleted)

    The package-lock.json remains deleted and gitignored. The newly added npm install --package-lock-only --ignore-scripts steps generate a lockfile per CI run, but since it is not committed, different runs may pull different versions. This undermines npm ci's deterministic guarantee. Local developers will also generate a different lockfile unless they happen to use the exact same registry state.

    Suggested fix: commit the generated lockfile, or use a dedicated lockfile pinning strategy (e.g., npm install --package-lock-only and committing the result).

  • [Minor] Async migration risk still unresolved (src/main/agent/shared-auth.ts:14)

    getSharedAuthStorage() returns Promise<ModelRuntime>, but other callers outside this PR (e.g., in src/main/remote/ or src/main/mcp/) may still use the old sync pattern. This was flagged in the prior review and is not addressed in this follow-up diff.

    Suggested fix: audit all imports of getSharedAuthStorage across the repository and add await where missing.

  • [Minor] CI npm cache still commented out (.github/workflows/ci.yml:22-23)

    The cache: npm line remains commented out. This increases install time by ~30s per CI run.

    Suggested fix: uncomment or document why caching is disabled.

  • [Minor] Release workflow Electron cache key broken by lockfile removal (.github/workflows/release.yml:64,194)

    The Electron cache uses hashFiles('package-lock.json') for its key, but this file is gitignored and not present in the checkout at the time the cache step runs (the lockfile is generated after the cache step). hashFiles on a missing file returns an empty string, so the cache will always miss. This is a regression introduced by the lockfile removal.

    Suggested fix: generate the lockfile before the cache step, or (better) commit the lockfile.

Prior findings resolved: none. The prior review's findings remain open. The new Generate package lock steps mitigate per-build determinism but do not solve the root cause.

New import patch correctness: The patch for @earendil-works/pi-ai adds requiresThinkingInContent support for DeepSeek V4 models. The pattern is consistent with the prior patch and appears correct.

Source code changes: All import path updates and SDK API adjustments (e.g., appendSystemPrompt becomes array, noTools: 'builtin' added) are consistent with the @earendil-works/pi-coding-agent v0.81.1 API. The DeepSeek endpoint detection and model routing logic in pi-model-resolution.ts and auth-utils.ts is well-tested and correct.

Summary

Review mode: follow-up after new commits. No blocker findings. Four minor-to-major issues remain, three of which were carried over from the prior review. The new cache regression in the release workflow should be addressed before merging.

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Testing

Not run (automation). Existing tests cover new DeepSeek routing and model resolution. The CI/release changes are trivial and well-formed.

Open Cowork Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings (carried forward from prior review, still unresolved):

  • [Major] Lockfile removal breaks reproducible installs (.gitignore:71, package-lock.json deleted)

    The package-lock.json remains deleted and gitignored. The npm install --package-lock-only --ignore-scripts steps generate a lockfile per CI run, but since it is not committed, different runs may pull different versions. This undermines npm ci's deterministic guarantee. Local developers will also generate a different lockfile unless they happen to use the exact same registry state.

    Suggested fix: commit the generated lockfile, or use a dedicated lockfile pinning strategy (e.g., npm install --package-lock-only and committing the result).

  • [Minor] CI npm cache still commented out (.github/workflows/ci.yml:22-23)

    The cache: npm line remains commented out. This increases install time by ~30s per CI run.

    Suggested fix: uncomment or document why caching is disabled.

  • [Minor] Release workflow Electron cache key broken by lockfile removal (.github/workflows/release.yml:64,194)

    The Electron cache uses hashFiles('package-lock.json') for its key, but this file is gitignored and not present in the checkout at the time the cache step runs (the lockfile is generated after the cache step). hashFiles on a missing file returns an empty string, so the cache will always miss. This is a regression introduced by the lockfile removal.

    Suggested fix: generate the lockfile before the cache step, or (better) commit the lockfile.

Prior findings resolved:

  • [Minor] Async migration risk – all callers within this PR (agent-runner.ts, sdk-one-shot.ts) have been updated to await getSharedAuthStorage(). No other callers are modified in this PR, so the risk of un-awaited calls outside the PR is not directly attributable to the current diff. Resolved within the scope of this PR.

New changes in this follow-up:

  • Added --no-audit --no-fund to all Generate package lock steps (.github/workflows/ci.yml, .github/workflows/release.yml). This reduces network overhead and build noise. Change is correct and beneficial.

Summary

Review mode: follow-up after new commits. Three prior findings remain unresolved. One prior finding (async migration) is resolved within the scope of this PR. The new CI/release workflow tweaks are correct.

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Testing

Not run (automation). Existing tests cover the source code changes; workflow changes are configuration-only and well-formed.

Open Cowork Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings (re-verified from prior review, still unresolved):

  • [Major] Lockfile removal breaks reproducible installs (.gitignore:71, package-lock.json deleted, .npmrc:8)

    The package-lock.json remains deleted and gitignored. CI workflows generate a lockfile per run via npm install --package-lock-only, but since it is not committed, different runs may pull different versions. This undermines npm ci's deterministic guarantee and breaks the Electron cache key (see next finding).

    Suggested fix: commit the generated lockfile, or adopt a dedicated pinning strategy.

  • [Minor] CI npm cache still commented out (.github/workflows/ci.yml:24)

    The cache: npm line is still commented out in the CI workflow, increasing install time by ~30s per run.

    Suggested fix: uncomment or document why caching is disabled.

  • [Minor] Release workflow Electron cache key broken by lockfile removal (.github/workflows/release.yml:63,193)

    The Electron cache uses hashFiles('package-lock.json') for its key, but this file is gitignored and not present at checkout time (the Generate package lock step runs after the cache step). hashFiles on a missing file returns an empty string, so the cache will always miss.

    Suggested fix: generate the lockfile before the cache step, or (better) commit the lockfile.

New changes in this follow-up:

  • Node version bumped from 22 to 24.11.1 in .nvmrc, .github/workflows/ci.yml, .github/workflows/deploy-website.yml, and .github/workflows/release.yml. This is a specific version pin, which improves reproducibility. No issues introduced.

Summary

Review mode: follow-up after new commits. Three prior findings remain unresolved. The new node version change is correct and does not introduce any additional issues.

Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

Testing

Not run (automation).

Open Cowork Bot

@hushi55
hushi55 force-pushed the bump-to-earendil-works branch from 9e4c8dc to 23d3782 Compare July 22, 2026 17:07

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review mode: full review after prior context reset

Findings

  • [Major] .npmrc sets package-lock=false and .gitignore adds package-lock.json, removing the lockfile from version control. This prevents local npm ci from working (no lockfile present) and introduces risk of dependency drift across environments. Developers must manually run npm install --package-lock-only or rely on CI-generated lockfiles, which may differ between platforms.
    Suggested fix: Keep package-lock=true and commit the lockfile, or document the new workflow explicitly in CONTRIBUTING.md with steps for local development.

  • [Major] subagent-extension.ts and agent-runner.ts now pass noTools: 'builtin' and merge all tools (including bash wrappers) into customTools. This changes how the SDK registers built-in tools. If the new @earendil-works/pi-coding-agent does not support noTools as a valid option, the createAgentSession call may throw or behave unexpectedly. The change from passing tools (old API) to customTools with disabled builtins could break bash sudo interception and other built-in tool behaviors.
    Suggested fix: Verify that noTools: 'builtin' is a supported option in the SDK version (0.81.1). If not, use the previous pattern of passing built-in tools via tools and custom tools via customTools.

  • [Medium] CI workflows (ci.yml, release.yml) comment out cache: npm and add a manual lockfile generation step. While not a bug, this will increase CI runtime by losing npm caching for all jobs.
    Suggested fix: Re-enable cache: npm and keep cache-dependency-path pointed at the generated lockfile, or use a deterministic lockfile path.

  • [Medium] The @sinclair/typebox dependency is pinned to 0.34.52 directly in dependencies. If other transitive dependencies require a different version, this may cause duplication or conflicts in the module tree.
    Suggested fix: Check the resolved version range in the generated lockfile; consider using ^0.34.0 to allow compatible updates unless a fixed version is explicitly required by the SDK.

  • [Minor] PR title uses chore(deps-dev): but the change includes production dependency swaps, new patches, and multiple source code modifications. The type chore(deps-dev) is misleading for changelog generation.
    Suggested fix: Rename to feat: or refactor: as appropriate, e.g., refactor: migrate from @mariozechner to @earendil-works SDK.

  • [Minor] New test file tests/codex-pr-review-context.test.ts is placed outside the src/tests/ convention. While not a blocker, it diverges from the project standard.
    Suggested fix: Move to src/tests/codex-pr-review-context.test.ts for consistency.

Questions

  • Does the new @earendil-works/pi-coding-agent@0.81.1 accept noTools: 'builtin' as a valid option in createAgentSession? The patch does not show SDK-side compatibility.

Summary

Review mode: full review after prior context reset
Review policy: advisory — the check reflects automation health/completion only; it does not approve the PR or resolve findings.

This PR performs a major dependency migration and lockfile policy change. The core SDK rename and DeepSeek routing enhancements appear correct, but three areas need attention: (1) the lockfile removal breaks local reproducibility and CI caching, (2) the noTools: 'builtin' approach may not be compatible with the new SDK, and (3) the PR type should be corrected. Test coverage for the new functions (isLinearReviewUpdate, isDeepSeekBaseUrl) looks adequate.

Testing

Suggested tests (in addition to existing):

  • Integration test that verifies createAgentSession works with noTools: 'builtin' and all custom tools (bash + MCP).
  • Regression test that confirms bash sudo password prompt still works after the tool merge.

Open Cowork Bot

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.

1 participant