Skip to content

Conversation

@mrdavidlaing
Copy link

@mrdavidlaing mrdavidlaing commented Nov 2, 2025

Upgrade Dependencies to Latest Compatible Versions

Summary

This PR upgrades dependencies to their latest compatible versions while identifying and documenting the breaking change in @anthropic-ai/claude-code that prevents upgrading beyond v2.0.24.

Changes

Claude Code SDK

  • Upgraded from: 2.0.14 → 2.0.24 (+10 versions)
  • Why not 2.0.31? See "SDK Migration Issue" section below

Other Production Dependencies

  • @anthropic-ai/sdk: 0.65.0 → 0.68.0
  • @modelcontextprotocol/sdk: 1.17.3 → 1.20.2
  • @types/http-proxy: 1.17.16 → 1.17.17
  • @types/react: 19.1.10 → 19.2.2
  • axios: 1.11.0 → 1.13.1
  • chalk: 5.6.0 → 5.6.2
  • fastify: 5.5.0 → 5.6.1
  • ink: 6.2.1 → 6.4.0
  • react: 19.1.1 → 19.2.0
  • tar: 7.4.3 → 7.5.2

Development Dependencies

  • @types/node: 24.3.0 → 24.9.2
  • cross-env: 10.0.0 → 10.1.0
  • eslint: 9.33.0 → 9.39.0
  • pkgroll: 2.15.3 → 2.20.1
  • release-it: 19.0.4 → 19.0.5

Testing

Build successful - All packages compile without errors
TypeScript compilation - No type errors
Unit tests - All unit tests pass. Skipped integration tests
Manual testing - Confirmed functionality with Node.js 22.x LTS

SDK Migration Issue 🚨

The Problem

Starting with version 2.0.25, Anthropic intentionally removed the legacy SDK entrypoint from @anthropic-ai/claude-code. The SDK functionality has been moved to a new package: @anthropic-ai/claude-agent-sdk.

Version Testing Results

I systematically tested all versions from 2.0.14 to 2.0.31:

Working Versions (SDK files present):

  • ✅ 2.0.14 through 2.0.24 - All working

Broken Versions (SDK files missing):

  • ❌ 2.0.25 through 2.0.31 - SDK removed

Why This Happened

From the official CHANGELOG.md (v2.0.25):

"Removed legacy SDK entrypoint. Please migrate to @anthropic-ai/claude-agent-sdk for future SDK updates."

This is an intentional breaking change, not a packaging bug. The SDK evolved from a coding-focused tool to a general-purpose AI agent framework.

What Changed in the New SDK

Beyond the package rename, the new @anthropic-ai/claude-agent-sdk includes breaking changes:

  1. System Prompt: No longer auto-applied; must be explicitly configured
  2. Settings Sources: No longer reads filesystem configs (user settings, project settings, CLAUDE.md) automatically
  3. Configuration Isolation: Better control for deployed/CI environments

References

Open Questions for Maintainers

  1. How is the SDK actually used? If we only need types, we could define them locally
  2. Should we migrate to the new SDK? - ala fix: adapt to claude-code package split (2.0.25 + agent-sdk) #54

I'm happy to help with whichever direction you choose! 🙋‍♂️


Node.js Compatibility Note: During testing, we discovered Node.js v25.x has compatibility issues with the claude-code CLI. Recommend using Node.js 22.x LTS or 20.x LTS.

Identified breaking change in @anthropic-ai/claude-code v2.0.25 where
SDK files (sdk.mjs, sdk.d.ts) are no longer included in npm package.

- Last working version: 2.0.24
- Breaking change: 2.0.25+
- Upgraded from: 2.0.14 → 2.0.24

- @anthropic-ai/sdk: 0.65.0 → 0.68.0
- @modelcontextprotocol/sdk: 1.17.3 → 1.20.2
- axios: 1.11.0 → 1.13.1
- chalk: 5.6.0 → 5.6.2
- fastify: 5.5.0 → 5.6.1
- ink: 6.2.1 → 6.4.0
- react: 19.1.1 → 19.2.0
- tar: 7.4.3 → 7.5.2
- And other minor/patch updates

- eslint: 9.33.0 → 9.39.0
- pkgroll: 2.15.3 → 2.20.1
- @types/node: 24.3.0 → 24.9.2
- And other minor/patch updates

✅ Build successful
✅ TypeScript compilation passed
✅ No breaking changes detected

See UPGRADE_FINDINGS.md for detailed analysis.
@mrdavidlaing
Copy link
Author

Hi there! I noticed there are three PRs (#51, #54, and this one) all working on Claude Code version upgrades. It would be great to coordinate our efforts rather than having competing solutions.

Current Situation

Proposal

I'd like to suggest we work together to test and merge these upgrades in stages:

  1. Start conservative: Merge chore: upgrade dependencies to latest compatible versions #59 first (upgrades to v2.0.24)

    • All tests passing
    • Well-documented investigation
    • Gets us current without breaking changes
    • Provides immediate value to users
  2. Plan the breaking change: Then collaborate on fix: adapt to claude-code package split (2.0.25 + agent-sdk) #54's approach

    • Test mode switching thoroughly (per @ex3ndr's question)
    • Validate the agent-sdk integration
    • Document migration path for users

This staged approach gives us:

  • Quick win with immediate dependency updates
  • Time to properly test the v2.0.25+ breaking changes
  • Reduced risk of issues for users

Thoughts? Happy to help test and coordinate. cc @luke3butler @hottomato-c @ex3ndr

/cc #53

@bra1nDump
Copy link
Contributor

Hi @mrdavidlaing, really appreciate your work on coordinating these upgrades. I have merged the conservative 0.24 version already, haven't deployed yet.

You're probably understand the implications of the upgrade more than I do at this point, I was wondering if you are interested to become one of the maintainers of the project so you can merge PRs without being blocked by me / @ex3ndr

Related to this I saw a PR to use system installed claude, that might also be something for us to explore related to versioning. This may help avoid upgrading and publishing a new package all the time or figuring out automatic update updates, but also will introduce issues when breaking changes are made.

@mrdavidlaing
Copy link
Author

Hi @bra1nDump! Thanks so much for merging the v2.0.24 upgrade - great to see it in! 🙏

Next: v2.0.25+ Breaking Changes

Now that we have a solid v2.0.24 foundation, I'm happy to help coordinate the v2.0.25+ upgrade with @luke3butler and @hottomato-c. PR #54 looks like the right approach - it just needs thorough testing of mode switching (per @ex3ndr's question) and the agent-sdk integration.

I'd like to suggest we get the PR authors on a call to:

  • Test mode switching together
  • Validate the agent-sdk integration
  • Discuss the system-installed Claude idea (really interesting!)
  • Make sure we have a smooth path forward

This would also give us a chance to discuss whether the system-installed Claude approach makes sense, and if so, how to implement it without complicating the setup for most users.

After that

If the call goes well and we can successfully coordinate the v2.0.25+ upgrade, I'd love to chat about taking on maintainer responsibilities. I use happy-cli daily and have a vested interest in keeping it working smoothly, but I think a video chat would be good to discuss expectations and responsibilities first.

Sound good?

@bra1nDump
Copy link
Contributor

bra1nDump commented Nov 7, 2025

Great idea to meet online. Let's get together and discuss path forward for the project

Agenda

  • Versioning strategy - path forward; test PRs
  • ACP support, might simplify the project drastically and share infra with others like Zed, add gemeni
  • OpenCode integration - Karl Marx
  • Maintainer status discuss - @mrdavidlaing

Cc @ex3ndr

Link to coordinate a meeting time that will work for everyone I seeded with some of my availability slots. Link for whenever we end up calling https://meet.google.com/ain-wqsj-iaq

https://doodle.com/group-poll/participate/el6lwzjb

@luke3butler
Copy link

luke3butler commented Nov 7, 2025

I'm a little bit torn here on fundamentals, but maybe I'm the outlier of the group.

I've been on the lookout for something that uses the agent SDK, rather than invoking the cli, as it's seems apparent that Claude is pushing developers that direction. The agent sdk advertises "Full Claude Code Feature Support", and my guess is that ongoing maintenance would be easier this way but would also look different.

The fear for me is that things will get harder to maintain and control via the non-interactive cli over time. Also, using the system's version of the cli introduces the constant risk of unexpected breaking changes.

That said... if retaining cli execution is the path forward, maybe a good solution is a github action/agent that runs on new cli releases that executes tests and/or analyzes for breaking changes and automatically then pushes new releases that are low-risk.

@mrdavidlaing
Copy link
Author

Added my availability to the calendar - unfortunately I can only make workdays before PST 12:00

@mrdavidlaing
Copy link
Author

mrdavidlaing commented Nov 14, 2025

It looks like @bra1nDump and I can make tomorrow Saturday 15 Nov @ 10:30 PST.

Proposal: Let's have anyone who can make it join us then. We might not have quorum to make decisons; but we could at least put faces to names.

@luke3butler, @hottomato-c any chance you could join us then?

@mrdavidlaing
Copy link
Author

Unfortunately it doesn't look like anyone could make it - or at least nobody that could let us into the meeting room 🥲

@bra1nDump
Copy link
Contributor

bra1nDump commented Nov 18, 2025

Apologies I have missed these notifications :/ thank you for your persistence!

@mrdavidlaing

I think we got a shot at THE open source mobile / web hub to control all agents. Really hoping to revive the project.

@Scoteezy is helping with fixing burning issues like this one. He is planning to work on happy full time for the next month+

Talked to @ex3ndr and @PeoplesGrocers - there is interest too, I believe we just need to get over the sucky initial push :)

Let's try to coordinate our contributor meeting over email, since I have push notifications for that and I can't wrap my head around getting pushed notifications on GitHub :/

kirill2003de@gmail.com, I will try to find your emails and create a new thread

@m-005
Copy link

m-005 commented Nov 18, 2025

@bra1nDump can I be added to that thread. Definitely interested in that ACP support

@mrdavidlaing
Copy link
Author

Whilst I'd love to be part of this; I think lack of timezone alignment (I'm in Dublin, Ireland) are going to make participation impractical for me. Please keep me in the (email) loop - perhaps there is a "overnight alpha tester" role I could play :)

@lucacri
Copy link

lucacri commented Nov 29, 2025

hey all, did you end up discussing it? This project is too nice to die!

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.

5 participants