Skip to content

[codex] refresh dependency and toolchain versions#205

Open
AnkanMisra wants to merge 6 commits into
mainfrom
codex/refresh-dependency-versions
Open

[codex] refresh dependency and toolchain versions#205
AnkanMisra wants to merge 6 commits into
mainfrom
codex/refresh-dependency-versions

Conversation

@AnkanMisra

@AnkanMisra AnkanMisra commented Jun 6, 2026

Copy link
Copy Markdown
Owner

What changed

This PR refreshes the repo's pinned dependency and toolchain versions across the gateway, verifier, web app, SDK, Dockerfiles, CI workflows, and version references in docs.

Why

The repo had a mix of older runtime and package pins across Go, Rust, Bun, Next.js, React, and supporting libraries. This brings those forward to current safe stable releases that were validated in this checkout.

Impact

  • Updates Bun references to 1.3.14 in runtime and CI paths
  • Updates the web stack to Next 16.2.7, React 19.2.7, and aligned package pins
  • Updates the gateway toolchain to Go 1.25.10 and refreshes key Go modules
  • Updates verifier crate pins and refreshes Cargo.lock
  • Keeps Dockerfiles, workflows, and docs aligned with the new versions

Validation

  • cd gateway && go test ./...
  • cd gateway && go vet ./...
  • cd web && bun run lint
  • cd web && bun run typecheck
  • cd web && bun run build
  • cd sdk/typescript && bun run typecheck && bun run test
  • cd verifier && cargo test
  • cd verifier && cargo fmt -- --check && cargo clippy -- -D warnings

Summary by CodeRabbit

  • Chores

    • Updated toolchain and CI: Go to 1.25.10, Bun to 1.3.14, Rust to 1.96; CI workflows and checkout action versions updated accordingly.
    • Upgraded key dependencies including ethers to 6.16.0, Next/React framework pins to newer releases; Docker base images updated for consistency.
  • Tests

    • Added new negative signature-verification tests and improved integration tests to use an in-memory Redis instance.
  • Documentation

    • Updated local development prerequisites in contributor and getting started guides.

Co-authored-by: codex <codex@users.noreply.github.com>
@vercel

vercel Bot commented Jun 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
microai-paygate Ready Ready Preview, Comment Jun 7, 2026 5:38am

@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@AnkanMisra, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 26 minutes and 10 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9bc86244-aa8c-4247-8948-392f1a05dc0d

📥 Commits

Reviewing files that changed from the base of the PR and between 8316e2e and 517dee4.

📒 Files selected for processing (2)
  • .github/workflows/claude.yml
  • gateway/receipt_test.go
📝 Walkthrough

Walkthrough

Pins Go/Bun/Rust toolchains and updates Docker base images, bumps JS/Rust/Go dependencies and package manifests, upgrades GitHub Actions checkout to v6, switches a cache integration test to miniredis, and adds two negative signature verification tests.

Changes

Unified Toolchain and Dependency Upgrades

Layer / File(s) Summary
Go 1.25.10 toolchain and gateway dependencies
.github/workflows/go-lint.yml, .github/workflows/e2e.yml, .github/workflows/go-tests.yml, gateway/Dockerfile, gateway/go.mod
Go pinned to 1.25.10 in CI workflows and gateway builder image; gateway/go.mod direct and indirect dependencies updated.
Bun 1.3.14 toolchain and web/SDK dependencies
.github/workflows/e2e.yml, .github/workflows/sdk-tests.yml, .github/workflows/web-lint-build.yml, web/Dockerfile, web/package.json, package.json, sdk/typescript/package.json
Bun pinned to 1.3.14 across CI and web Docker images; web and root/SDK package.json deps updated (Next, React, ethers, lenis, dev tooling and engine constraints).
Rust 1.96 toolchain and verifier dependencies
verifier/Dockerfile, verifier/Cargo.toml
Verifier Docker build pinned to rust:1.96-alpine and crate dependency versions bumped (tokio, serde, hex, metrics, tower, dashmap, etc.).
GitHub Actions and documentation updates
.github/workflows/claude.yml, CONTRIBUTING.md, README.md
actions/checkout upgraded to v6; CONTRIBUTING.md and README.md updated to recommend Bun 1.3.14+ and Go 1.25.x for local development.
Test updates
gateway/cache_integration_test.go, gateway/receipt_test.go
Integration test uses in-memory miniredis and REDIS_URL wiring; added two negative signature verification tests (tampered signatures and invalid digest lengths).

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

SWoC26, level:intermediate, enhancement

Poem

🐰 A little rabbit hopped through the tree,
Bumped Bun and Go, then pushed with glee,
Rust stretched its paws to ninety-six bright,
Tests now run warm in memory’s light,
Hooray — the build hummed through the night! 🥕✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description provides a comprehensive overview with clear sections on what changed, why it changed, impact, and validation steps. However, it does not follow the template structure with the required checkboxes for Type of Change, Affected Areas, and Contributor Checklist. Use the provided template structure: add checkboxes for Type of Change, mark affected areas, complete the Contributor Checklist, and include a Verification section with the exact commands run and their results.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: refreshing dependency and toolchain versions across multiple components. It directly reflects the primary objective of the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/refresh-dependency-versions

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.

@github-actions github-actions Bot added documentation Improvements or additions to documentation go Pull requests that update go code github_actions Pull requests that update GitHub Actions code rust Pull requests that update rust code TypeScript TypeScript code type:docs Documentation, API docs, examples, or contributor docs. type:devops Deployment, observability, operations, CI, or infrastructure work. labels Jun 6, 2026
@AnkanMisra AnkanMisra marked this pull request as ready for review June 6, 2026 12:34
@AnkanMisra

Copy link
Copy Markdown
Owner Author

@codex review the pr

Co-authored-by: codex <codex@users.noreply.github.com>
@github-actions github-actions Bot added the type:testing Tests, coverage, fixtures, or validation-only work. label Jun 6, 2026
@chatgpt-codex-connector

Copy link
Copy Markdown
Contributor

Codex Review: Didn't find any major issues. 🚀

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (2)
web/Dockerfile (1)

25-25: ⚖️ Poor tradeoff

Consider running the runtime stage as a non-root user.

The static analysis tool flagged that the container runs as root, which increases the attack surface if the container is compromised. While common in Node/Bun containers, adding a USER directive with a non-privileged account improves the security posture.

🔒 Example non-root user setup
 FROM oven/bun:1.3.14 AS runtime
 WORKDIR /app
+RUN addgroup --system --gid 1001 nodejs && \
+    adduser --system --uid 1001 nextjs && \
+    chown -R nextjs:nodejs /app
 ENV NODE_ENV=production
 ENV NEXT_TELEMETRY_DISABLED=1
 ENV PORT=3001
 COPY --from=deps /app/package.json /app/bun.lock* ./
 COPY --from=deps /app/node_modules /app/node_modules
 COPY --from=build /app/.next /app/.next
 COPY --from=build /app/public /app/public
+USER nextjs
 EXPOSE 3001
 CMD ["bun", "start"]
🤖 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 `@web/Dockerfile` at line 25, The runtime stage in the Dockerfile currently
uses the oven/bun base as root; create and switch to a non-root user in that
stage (e.g., create a dedicated uid/gid, set ownership on runtime assets, and
add a USER directive) so the container does not run as root at runtime. Locate
the runtime stage labeled "AS runtime" in the Dockerfile, add commands to create
a non-privileged user/group, chown the app/build/static directories and any
needed runtime files to that user, and then add USER <username> (or UID:GID)
before the final CMD/ENTRYPOINT to ensure the process runs unprivileged.

Source: Linters/SAST tools

web/package.json (1)

20-20: Update dependency guidance: Next.js 16.2.7 exists and matches React 19.2.7

  • Next.js v16.2.7 is a stable release (released June 1, 2026) and works with React 19.2.7.
  • For the upgrade 16.1.1 → 16.2.7, still check the 16.2.7 release notes for any breaking changes, and ensure any referenced Next.js 15 documentation/guides still apply to this version (e.g., for @next/mdx usage).
🤖 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 `@web/package.json` at line 20, Update the "`@next/mdx`" dependency to "16.2.7"
in package.json (replace the older 16.1.1 version), run your package manager to
install, and run the app's build/test suite to catch regressions; after
upgrading, read the Next.js 16.2.7 release notes for breaking changes and verify
any code or docs that reference Next.js 15 (particularly MDX usage) are still
correct and compatible with React 19.2.7.
🤖 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 @.github/workflows/claude.yml:
- Line 30: The checkout step currently uses the mutable tag "uses:
actions/checkout@v6"; update that to pin to the exact commit SHA or digest for
the v6 release (e.g., "uses: actions/checkout@<full-commit-sha>") to prevent
supply-chain drift—locate the Checkout repository step in
.github/workflows/claude.yml where "actions/checkout@v6" is referenced and
replace the tag with the canonical commit SHA from the actions/checkout v6
release page (or use the verified digest form) so the workflow uses an immutable
reference.

In `@gateway/go.mod`:
- Line 9: The upgrade to go-ethereum v1.17.3 enforces a 32-byte hash check in
crypto.VerifySignature; update the gateway signing/verification flow to always
pass a 32-byte digest (use crypto.Keccak256Hash output or explicitly
hash/truncate/pad to 32 bytes before calling crypto.VerifySignature) and ensure
any public-key handling still uses crypto.FromECDSAPub; add/adjust tests in
gateway/receipt_test.go to include cases that assert VerifySignature fails for
tampered signatures and for inputs with invalid lengths (e.g., non-32-byte
digests) so the behavior is covered.

---

Nitpick comments:
In `@web/Dockerfile`:
- Line 25: The runtime stage in the Dockerfile currently uses the oven/bun base
as root; create and switch to a non-root user in that stage (e.g., create a
dedicated uid/gid, set ownership on runtime assets, and add a USER directive) so
the container does not run as root at runtime. Locate the runtime stage labeled
"AS runtime" in the Dockerfile, add commands to create a non-privileged
user/group, chown the app/build/static directories and any needed runtime files
to that user, and then add USER <username> (or UID:GID) before the final
CMD/ENTRYPOINT to ensure the process runs unprivileged.

In `@web/package.json`:
- Line 20: Update the "`@next/mdx`" dependency to "16.2.7" in package.json
(replace the older 16.1.1 version), run your package manager to install, and run
the app's build/test suite to catch regressions; after upgrading, read the
Next.js 16.2.7 release notes for breaking changes and verify any code or docs
that reference Next.js 15 (particularly MDX usage) are still correct and
compatible with React 19.2.7.
🪄 Autofix (Beta)

✅ Autofix completed


ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3e7b1c9d-1f8e-4786-9318-24eed96f7c2a

📥 Commits

Reviewing files that changed from the base of the PR and between 7d10ad6 and 543583f.

⛔ Files ignored due to path filters (5)
  • bun.lock is excluded by !**/*.lock
  • gateway/go.sum is excluded by !**/*.sum
  • sdk/typescript/bun.lock is excluded by !**/*.lock
  • verifier/Cargo.lock is excluded by !**/*.lock
  • web/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (16)
  • .github/workflows/claude.yml
  • .github/workflows/e2e.yml
  • .github/workflows/go-lint.yml
  • .github/workflows/go-tests.yml
  • .github/workflows/sdk-tests.yml
  • .github/workflows/web-lint-build.yml
  • CONTRIBUTING.md
  • README.md
  • gateway/Dockerfile
  • gateway/go.mod
  • package.json
  • sdk/typescript/package.json
  • verifier/Cargo.toml
  • verifier/Dockerfile
  • web/Dockerfile
  • web/package.json

Comment thread .github/workflows/claude.yml Outdated
Comment thread gateway/go.mod
@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 1 file(s) based on 2 unresolved review comments.

Files modified:

  • gateway/receipt_test.go

Commit: 8316e2e988fbb4ad244a2a94bdf169bf2d5bebdf

The changes have been pushed to the codex/refresh-dependency-versions branch.

Time taken: 4m 8s


⚠️ 1 file(s) could not be committed — the agent does not have permission to push to .github/workflows/. Please apply these changes manually:

.github/workflows/claude.yml — 1 change:

Lines 27–33
     timeout-minutes: 20
     steps:
       - name: Checkout repository
-        uses: actions/checkout@v6
+        uses: actions/checkout@f95a4f69e68f4e73b5a20ab655c7f9e98f5bb2c9 # v6
         with:
           fetch-depth: 0

Fixed 1 file(s) based on 2 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 `@gateway/receipt_test.go`:
- Around line 499-500: The code calls json.Marshal on signedReceipt.Receipt and
immediately hashes the result without checking the error; update both
occurrences (where receiptBytes is created and passed to crypto.Keccak256Hash)
to capture the marshal error (err := json.Marshal(...)) and if err != nil fail
the test or return early (e.g. t.Fatalf("json.Marshal(signedReceipt.Receipt)
failed: %v", err)) before computing crypto.Keccak256Hash to avoid misleading
verification failures if serialization fails.
- Around line 465-468: The test currently skips when SERVER_WALLET_PRIVATE_KEY
is missing; instead set a deterministic test key with
t.Setenv("SERVER_WALLET_PRIVATE_KEY", "<deterministic-priv-key>") before calling
getServerPrivateKey() in the receipt tests, then replace the t.Skip path with a
fast failure (t.Fatalf or t.Fatal) if getServerPrivateKey() still returns an
error or nil to ensure the regression test always runs; apply the same change to
the other occurrence around lines 538-541 so both places use t.Setenv and fail
fast rather than silently skipping.
🪄 Autofix (Beta)

✅ Autofix completed


ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 88f55a0d-19c3-4517-9520-525a57fbc864

📥 Commits

Reviewing files that changed from the base of the PR and between 543583f and 8316e2e.

📒 Files selected for processing (3)
  • .github/workflows/go-tests.yml
  • gateway/cache_integration_test.go
  • gateway/receipt_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/go-tests.yml

Comment thread gateway/receipt_test.go
Comment thread gateway/receipt_test.go Outdated
@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 1 file(s) based on 2 unresolved review comments.

Files modified:

  • gateway/receipt_test.go

Commit: c143adfb25e1e66fbca451266dcc308bd29ddfba

The changes have been pushed to the codex/refresh-dependency-versions branch.

Time taken: 4m 11s

Fixed 1 file(s) based on 2 unresolved review comments.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code go Pull requests that update go code rust Pull requests that update rust code type:devops Deployment, observability, operations, CI, or infrastructure work. type:docs Documentation, API docs, examples, or contributor docs. type:testing Tests, coverage, fixtures, or validation-only work. TypeScript TypeScript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant