Skip to content

memo(worker): the workers-types pin now sits below the range partyserver declares #252

Description

@liplus-lin-lay

観測

#250 / #251agents を 0.19.0 へ引き上げた際、worker/package-lock.json を実読して以下を確認した。

agents@0.19.0 が nest する partyserver@0.5.10peerDependencies:

"@cloudflare/workers-types": "^4.20260424.1 || ^5.20260703.1"

一方 worker/package.json が pin している版は 4.20260404.1この宣言レンジを満たさない

overrides"@cloudflare/workers-types": "$@cloudflare/workers-types" が勝つため、ツリーには 4.20260404.1 が単一コピーで入る。npm ci は通り、typecheck / wrangler deploy --dry-run / test はすべて green。@cloudflare/workers-types は型専用の devDependency なので runtime への影響も無い。

なぜ memo として残すのか

pin が transitive の宣言レンジを下回っている状態は、lockfile を実読しない限り見えない。今後の保守で次のいずれかが起きたときに、この事実を知らないと判断を誤る:

  • npm のバージョンが上がって override 下の peer 不整合の扱いが厳しくなる
  • partyserver が新しい workers-types の型に実際に依存するコードを出す(現状の型検査は通っているので今は無い)
  • pin を上げようとしたときに「なぜ 4.20260404.1 なのか」の理由が失われている

pin 自体は本 repo family の既知トラップ(toolchain の bump が transitive に workers-types を持ち上げ、厳格化された binding 型が既存 worker source を型レベルで壊す)への対抗として load-bearing であり、外す判断ではない。

想定される選択肢(結論は出していない)

  1. 現状維持。pin は効いており、型検査も build も通っている。lockfile が resolution を押さえている
  2. worker/src を新しい workers-types の binding 型に追従させた上で pin を ^4.20260424.1 系へ引き上げる。トラップの本体(既存 src が型レベルで壊れる)に正面から対処する形
  3. worker/package.json の overrides コメントに partyserver の宣言レンジとの乖離を明記して、観測結果だけ残す

どれを取るかは、worker/src が新しい binding 型でどれだけ壊れるかの実測を見てから決めるのが筋。実測前に方針を決めない。

前提

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    memoissue started as notetips運用ノウハウ・パターン集

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions