chore: dependency refresh — ioredis 6, mikro-orm 7.1.11, stripe 22.4 - #245
Conversation
- framework: pnpm up:packages across the workspace; notably ioredis ^5.11.1 -> ^6.0.0 (needed by @forklaunch/testing), @mikro-orm/* 7.1.8 -> 7.1.11; bun.serve shim gains the newly required Response.writeInformation. Published all 12 packages ([email protected], express/[email protected], [email protected], ...) - blueprint: same refresh against the new framework versions; stripe 22.4 type fixes (PlanCreateParams.Interval round-trip cast, apiVersion 2026-07-29.dahlia). Published all 12 interface/ implementation packages - cli: check_blueprint_deps --fix synced 37 scaffold version constants (ioredis ^6.0.0, mikro-orm 7.1.11, all @forklaunch floors) Co-Authored-By: Claude Fable 5 <[email protected]>
📝 WalkthroughWalkthroughThis pull request updates package versions and dependency ranges across framework and blueprint packages. It also updates CLI dependency constants, Stripe API versions, a Stripe plan interval cast, and an Express-compatible response stub. ChangesRelease and dependency updates
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
blueprint/ecommerce-stripe/package.json (1)
66-66: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove the deprecated standalone type stubs.
uuidandioredisprovide their own declarations. Their separate@typespackages are deprecated stubs. (npmjs.com)
blueprint/ecommerce-stripe/package.json#L66-L66: remove@types/uuid.blueprint/iam-base/package.json#L54-L54: remove@types/uuidfrom runtime dependencies.blueprint/iam-better-auth/package.json#L67-L67: remove@types/uuid.blueprint/sample-worker/package.json#L78-L78: remove@types/ioredis.🤖 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 `@blueprint/ecommerce-stripe/package.json` at line 66, Remove the deprecated standalone type packages from the listed dependency manifests: delete `@types/uuid` from blueprint/ecommerce-stripe/package.json (lines 66-66), blueprint/iam-base/package.json (lines 54-54), and blueprint/iam-better-auth/package.json (lines 67-67), and delete `@types/ioredis` from blueprint/sample-worker/package.json (lines 78-78), preserving all other dependencies.Source: MCP tools
🤖 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 `@framework/core/package.json`:
- Line 116: Update the jose dependency declarations in
framework/core/package.json so dependencies and devDependencies are consistently
aligned at 6.2.8, or remove the duplicate devDependencies.jose entry; then
regenerate framework/pnpm-lock.yaml to reflect the manifest.
In `@framework/express/src/cluster/bun.serve.shim.ts`:
- Line 365: Update the writeInformation implementation on the ServerResponse
shim to stop silently discarding calls: invoke the optional callback with an
explicit unsupported-operation error indicating that Bun cannot emit 1xx
responses, while preserving the API’s optional callback handling.
---
Nitpick comments:
In `@blueprint/ecommerce-stripe/package.json`:
- Line 66: Remove the deprecated standalone type packages from the listed
dependency manifests: delete `@types/uuid` from
blueprint/ecommerce-stripe/package.json (lines 66-66),
blueprint/iam-base/package.json (lines 54-54), and
blueprint/iam-better-auth/package.json (lines 67-67), and delete `@types/ioredis`
from blueprint/sample-worker/package.json (lines 78-78), preserving all other
dependencies.
🪄 Autofix
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: cc9ff9a3-4ae7-4ee7-9918-f68939b3c487
⛔ Files ignored due to path filters (2)
blueprint/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlframework/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (42)
blueprint/billing-base/package.jsonblueprint/billing-stripe/package.jsonblueprint/billing-stripe/scripts/seed-plans-from-stripe.tsblueprint/billing-stripe/scripts/sync-stripe-plans.tsblueprint/client-sdk/package.jsonblueprint/core/package.jsonblueprint/ecommerce-stripe/package.jsonblueprint/iam-base/package.jsonblueprint/iam-better-auth/package.jsonblueprint/implementations/billing/base/package.jsonblueprint/implementations/billing/stripe/package.jsonblueprint/implementations/billing/stripe/services/plan.service.tsblueprint/implementations/ecommerce/base/package.jsonblueprint/implementations/iam/base/package.jsonblueprint/implementations/worker/bullmq/package.jsonblueprint/implementations/worker/database/package.jsonblueprint/implementations/worker/kafka/package.jsonblueprint/implementations/worker/redis/package.jsonblueprint/interfaces/billing/package.jsonblueprint/interfaces/ecommerce/package.jsonblueprint/interfaces/iam/package.jsonblueprint/interfaces/worker/package.jsonblueprint/monitoring/package.jsonblueprint/package.jsonblueprint/pnpm-workspace.yamlblueprint/sample-worker/package.jsoncli/src/core/package_json/package_json_constants.rsframework/bunrun/package.jsonframework/common/package.jsonframework/core/package.jsonframework/e2e-tests/package.jsonframework/express/package.jsonframework/express/src/cluster/bun.serve.shim.tsframework/hyper-express/package.jsonframework/infrastructure/S3/package.jsonframework/infrastructure/redis/package.jsonframework/internal/package.jsonframework/package.jsonframework/testing/package.jsonframework/universal-sdk/package.jsonframework/validator/package.jsonframework/ws/package.json
| "fastmcp": "^4.12.1", | ||
| "jose": "6.2.4", | ||
| "fastmcp": "^4.14.1", | ||
| "jose": "6.2.8", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
python - <<'PY'
import json
from pathlib import Path
manifest = json.loads(Path("framework/core/package.json").read_text())
runtime = manifest.get("dependencies", {}).get("jose")
development = manifest.get("devDependencies", {}).get("jose")
print({"dependencies": runtime, "devDependencies": development})
if runtime and development and runtime != development:
raise SystemExit("framework/core/package.json has mismatched jose requirements")
PYRepository: forklaunch/forklaunch
Length of output: 274
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- manifest context ---'
sed -n '100,145p' framework/core/package.json
printf '%s\n' '--- lockfiles and package-manager metadata ---'
find . -maxdepth 3 -type f \( -name 'package-lock.json' -o -name 'yarn.lock' -o -name 'pnpm-lock.yaml' -o -name 'bun.lockb' -o -name 'bun.lock' \) -print
sed -n '1,120p' package.json 2>/dev/null || true
printf '%s\n' '--- jose references ---'
rg -n --glob '!node_modules/**' --glob '!dist/**' --glob '!build/**' '"jose"|from ['"'"']jose|require\(['"'"']jose' framework/core .github 2>/dev/null || trueRepository: forklaunch/forklaunch
Length of output: 3036
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
python3 - <<'PY'
import json
from pathlib import Path
p = Path("framework/core/package.json")
m = json.loads(p.read_text())
print("name:", m.get("name"))
print("version:", m.get("version"))
print("dependencies.jose:", m.get("dependencies", {}).get("jose"))
print("devDependencies.jose:", m.get("devDependencies", {}).get("jose"))
print("scripts:", json.dumps(m.get("scripts", {}), indent=2))
PY
printf '%s\n' '--- workspace/package-manager files ---'
find . -maxdepth 4 -type f \( -name 'package.json' -o -name 'pnpm-workspace.yaml' -o -name 'lerna.json' \) -print | sort
printf '%s\n' '--- lockfile jose entries ---'
rg -n -C 3 '(^|[/@"'\''])jose([@"'\'']|:)|jose@|node_modules/jose' \
--glob 'package-lock.json' --glob 'yarn.lock' --glob 'pnpm-lock.yaml' --glob 'bun.lock' --glob 'bun.lockb' . 2>/dev/null || trueRepository: forklaunch/forklaunch
Length of output: 17212
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- framework/core importer ---'
python3 - <<'PY'
from pathlib import Path
lines = Path("framework/pnpm-lock.yaml").read_text().splitlines()
start = next((i for i, line in enumerate(lines) if line == " framework/core:"), None)
if start is None:
start = next((i for i, line in enumerate(lines) if line == " core:"), None)
if start is None:
print("No exact framework/core or core importer found")
else:
end = next((i for i in range(start + 1, len(lines)) if lines[i] and not lines[i].startswith(" ") and not lines[i].startswith(" ")), len(lines))
print("\n".join(f"{i+1}:{lines[i]}" for i in range(start, min(end, start + 180))))
PY
printf '%s\n' '--- all jose specifiers and resolved versions in framework lockfile ---'
rg -n -C 2 'jose:' framework/pnpm-lock.yaml
rg -n '^ jose@' framework/pnpm-lock.yaml
printf '%s\n' '--- relevant repository diff summary ---'
git diff --stat
git status --shortRepository: forklaunch/forklaunch
Length of output: 6972
Align the jose requirements and regenerate the lockfile.
framework/pnpm-lock.yaml records jose 6.2.8 for core but does not record the manifest’s devDependencies.jose entry. Align both manifest entries to 6.2.8, or remove the duplicate development entry, then regenerate the lockfile.
🤖 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 `@framework/core/package.json` at line 116, Update the jose dependency
declarations in framework/core/package.json so dependencies and devDependencies
are consistently aligned at 6.2.8, or remove the duplicate devDependencies.jose
entry; then regenerate framework/pnpm-lock.yaml to reflect the manifest.
|
|
||
| strictContentLength: false, | ||
| writeProcessing: () => {}, | ||
| writeInformation: () => {}, |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
rg -n -P '\bwriteInformation\s*\(' \
--glob '*.{ts,tsx}' \
framework cli blueprintRepository: forklaunch/forklaunch
Length of output: 159
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- target context ---'
sed -n '320,390p' framework/express/src/cluster/bun.serve.shim.ts
printf '%s\n' '--- all repository references ---'
rg -n -i '\bwriteInformation\b|writeEarlyHints|writeProcessing' . \
--glob '!node_modules/**' \
--glob '!dist/**' \
--glob '!build/**' || true
printf '%s\n' '--- relevant response methods and type declarations ---'
rg -n 'writeHead|writeContinue|writeEarlyHints|writeInformation|interface.*Response|class.*Response' \
framework/express/src/cluster framework/express \
--glob '*.{ts,tsx,js,mjs,cjs,d.ts}' || trueRepository: forklaunch/forklaunch
Length of output: 3267
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- imports and response type ---'
sed -n '1,80p' framework/express/src/cluster/bun.serve.shim.ts
rg -n 'type ExpressResponse|interface ExpressResponse|ExpressResponse' framework/express/src --glob '*.{ts,tsx}'
printf '%s\n' '--- response method implementations ---'
sed -n '430,500p' framework/express/src/cluster/bun.serve.shim.ts
sed -n '1025,1075p' framework/express/src/cluster/bun.serve.shim.ts
printf '%s\n' '--- package metadata and TypeScript configuration ---'
fd -i 'package.json|tsconfig*.json' framework/express framework | head -40 | xargs -r -n1 sh -c 'echo "--- $0"; sed -n "1,180p" "$0"'Repository: forklaunch/forklaunch
Length of output: 44840
🌐 Web query:
Node.js v24 http.ServerResponse writeInformation(statusCode headers callback)
💡 Result:
In Node.js, response.writeInformation(statusCode[, headers]) is a method available on the http.ServerResponse class designed to send arbitrary 1xx informational status codes [1][2]. This method was introduced to provide a standardized, generic API for sending 1xx responses, serving as an alternative to using private methods like res._writeRaw [1][3]. It supports any 1xx status code except for 101 (Switching Protocols), as 101 necessitates a protocol change that cannot be unilaterally handled through this API [1]. Key details regarding the method: - Parameters: The method accepts a status code (number) and an optional headers object [1][2]. - Usage: It is intended for use in scenarios such as supporting custom 1xx values or proxies that need to pass through informational data [1]. - Compatibility: The method is available in modern Node.js versions (such as v26+ and backported to v24.x releases) [1][3][4]. If a final status code has already been sent, the method will throw an error in HTTP/1.1 to prevent invalid response sequences [1]. Note that while the method name appears in documentation for recent versions [5][6][2], users should verify the specific minor version of Node.js v24 they are using, as it was added via a minor release (v26.2.0, with backports to v24.x) [1][3][4].
Citations:
- 1: http: add writeInformation to send arbitrary 1xx status codes nodejs/node#63155
- 2: https://nodejs.org/api/all.html
- 3: nodejs/node@0cbb3895df
- 4: https://nodejs.org/en/blog/release/v26.2.0
- 5: https://beta.docs.nodejs.org/http.html
- 6: https://nodejs-api-docs-tooling.vercel.app/http.html
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- exact Node v24 documentation text ---'
curl -fsSL https://nodejs.org/download/release/latest-v24.x/docs/api/http.html |
sed 's/<[^>]*>/ /g; s/[[:space:]]\+/ /g' |
grep -o -E '.{0,220}response\.writeInformation.{0,500}' || true
printf '%s\n' '--- current Node documentation text ---'
curl -fsSL https://nodejs.org/api/http.html |
sed 's/<[^>]*>/ /g; s/[[:space:]]\+/ /g' |
grep -o -E '.{0,220}response\.writeInformation.{0,500}' || true
printf '%s\n' '--- local runtime and declarations, if available ---'
node --version 2>/dev/null || true
fd -i 'http.d.ts' . --hidden --exclude node_modules --exclude dist --exclude build | head -20Repository: forklaunch/forklaunch
Length of output: 703
Do not silently discard writeInformation calls.
response.writeInformation(statusCode[, headers][, callback]) is part of Node’s ServerResponse API. If Bun cannot emit 1xx responses, report an explicit unsupported error through the callback instead of silently dropping the status and headers.
🤖 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 `@framework/express/src/cluster/bun.serve.shim.ts` at line 365, Update the
writeInformation implementation on the ServerResponse shim to stop silently
discarding calls: invoke the optional callback with an explicit
unsupported-operation error indicating that Bun cannot emit 1xx responses, while
preserving the API’s optional callback handling.
Summary
Workspace-wide dependency refresh (
pnpm up:packages) driven by @forklaunch/testing needing the ioredis 6 major.^6.0.0,@mikro-orm/*7.1.11, stripe/types bumps; bun.serve shim gains the newly requiredResponse.writeInformation. All 12 packages published ([email protected],express/[email protected],[email protected], …). Full build sweep green; suites: common 79, validator 350, core 371, ws 70, express 32, redis 15, S3 7 (hyper-express has its known local GET flake only).PlanCreateParams.Intervalround-trip cast,apiVersion→2026-07-29.dahlia). Full workspace builds green. All 12 interface/implementation packages published.check_blueprint_deps --fixsynced 37 scaffold version constants (ioredis^6.0.0, mikro-orm7.1.11, all@forklaunchfloors). 333 tests pass.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Improvements