Repository navigation
build(deps): update effect monorepo to v4 - #262
renovate[bot] wants to merge 1 commit into
Conversation
|
There was a problem hiding this comment.
Effect v4へのメジャー更新ですが、package.jsonの2パッケージだけを上げており、このままマージするとビルドとテストが壊れます。
@effect/cliと@effect/platformはv3系のままで、peer依存(effect: ^3.22.2)がv4と衝突しますpackage-lock.jsonが更新されておらず、npm ciやNixビルドで不整合になります- v4ではAPIが大きく変わっていて(
NodeContext→NodeServices、Either→Result、CLI/platformの本体統合など)、src/testの移行が必要です
コードを移行するか、このPRを保留してRenovateでv4を抑止するかのどちらかを推奨します。
Review metadata
- Reviewed commit: 5eac6cce8a690e54440063fd9491166aecfbce45
- PR: #262
- kyosei: 3.6.0
- kyosei-action: 2.4.1
- Claude Code: 2.1.283
- Model: claude-opus-5-5
- Execution: GitHub Actions (run)
| "@effect/platform-node": "^4.0.0", | ||
| "effect": "^4.0.0", |
There was a problem hiding this comment.
Caution
📦 Dependency 🧹 Code Quality 🧪 Test 🔒 Security
effectと@effect/platform-nodeだけを^4.0.0に上げているため、このままではビルドが壊れます。
- peer依存の衝突: 27-28行目の
@effect/cli@^0.77.0と@effect/platform@^0.97.0は据え置きです。これらはpeerDependenciesでeffect: ^3.22.2を要求しています。そのためnpm installはERESOLVEで失敗するか、v3とv4が混在した依存ツリーになります。 - lockfile未更新:
package-lock.jsonはeffect3.22.2、@effect/platform-node0.108.2のままです。npm ciやNixビルドで不整合になります。v4パッケージのresolved/integrityも未レビューのままになります。 - API非互換: v4では
NodeContextがNodeServicesに、EitherがResultに置き換わりました。@effect/cli/@effect/platformの機能もeffect本体に統合されています。このためsrc/hooks/*.ts、src/delete-merged-branch.ts、src/git-lfs.ts、vite.config.ts、test/*.test.tsの書き換えが必要です。
対応方法は2通りです。
- 移行する場合:
@effect/cli/@effect/platformを外してimportとAPIをv4向けに書き換えます。lockfileを再生成し、npm ls effectで単一メジャーに揃ったことを確認してからvitest runを通してください。@effect/language-serviceがv4に対応しているかも確認が必要です。 - 今は移行しない場合: このPRはクローズし、Renovateでeffect系のv4を抑止してください。
| @@ -26,8 +26,8 @@ | |||
| "@commitlint/types": "^21.0.0", | |||
| "@effect/cli": "^0.77.0", | |||
There was a problem hiding this comment.
Warning
🧪 Test
@effect/cliでCommand/Argsを組み立ててNodeRuntime.runMainで動かすhookエントリポイント(src/hooks/commit-msg.ts, post-checkout.ts, post-commit.ts, post-merge.ts, pre-push.ts)にはテストがありません。そのため、今回のようなメジャー更新で引数パースやLayer構築が壊れてもCIで検出できません。移行時に、各エントリポイントのスモークテスト(テストLayerでhandlerを実行する、またはビルド成果物を子プロセスで起動して終了コードを確認する等)を追加することを推奨します。
This PR contains the following updates:
^0.108.0→^4.0.0^3.22.0→^4.0.0Release Notes
Effect-TS/effect (@effect/platform-node)
v4.0.2Compare Source
Patch Changes
#8770
540ecd1Thanks @fubhy! - Tag every module and directly importable export with an explicit@stability.@stability stablefollows strict semver, and@stability unstablemay receive breaking changes in minor releases.#8852
7d8d497Thanks @effect-bot! - Report the101status of a successful WebSocket upgrade to server middleware such asHttpMiddleware.loggerandHttpMiddleware.tracer, instead of the handler's discarded response status.#8846
48a373bThanks @tim-smart! - Fix keep-alive requests hanging during graceful HTTP server shutdown.Updated dependencies [
26c1089,6c59de7,467d3ac,375c1b0,45a70ce,fb757e3,716e358,af114e6,d0b3862,7064da9,eee0eeb,b9d6581,7a721ce,a0cb4c2,3cb395e,540ecd1,aefe05a,c381fbc,c6f2179,0aeb7fd,2fbecc8,7095539,46b75b1,99b6b45,e4cb9f1,2e03688,b817ebe,4153144,2b3c63c,bd00773,146e86a,44defad,22d6f4d,7d8d497,98a5ed7,d350f8e,bd96be0,f6af4b6,7234786,1f74b62,42763ce,5630677,a0e1b87,f5716ad,26931d0,972c80f,efebfa9,a3b4cf3,3ed997b,7b396bd,c07c144,8903b68,a84aa4e,88917eb,50a5686,c419a0e,d85a309,7e7ede6,1803500,495740d,985860d,e36abbb,c6086ee,0ac6ac8,90a1bae,b1d200c,1ba8521,1b35732,763b445,00f1cc7,d4f4bc8,f11526a,8781388,5326527,8409eb4,c5cf8ce,684ccdc,33303ea,b79fcb8,888a189,9b8200d,82303c1,76fcd89,f31e6b7,332d363,a6c7dcb,ec54070]:v4.0.1Compare Source
Patch Changes
#8678
f79b231Thanks @tim-smart! - Fix duplex socket readers throwing when a pull is interrupted or its scope closes during a read. Preserve consumed bytes in order across pull interruption and normal EOF, while discarding them when the reader scope closes.#8705
43416c4Thanks @tim-smart! - Create Node HTTP file response streams lazily and destroy them when body consumption ends, avoiding unused open streams when conditional or range handling discards a response.#8738
0f64715Thanks @tim-smart! - Fail refused WebSocket upgrades withSocketErrorinstead of hanging the request fiber, and skip HTTP response writes on destroyed sockets.Updated dependencies [
ed2cc2f,58a2ee8,bc44526,073bb47,2ec021e,cad1118,1672d9c,a81e4e6,f5c2a91,f79b231,498e72b,cabf123,a5b1d4e,878cb33,5e6f756,18dfb98,04706ef,f157482,f1aedb0,b5a2d4c,1c18c68,43416c4,d6ac8f9,1d9fb8c,20dcd50,42e5750,888e326,0b52bb4,e823e69,962647b,43fdcdc,1f89b8e,e1a521a]:v4.0.0Compare Source
Patch Changes
#8598
988c467Thanks @tim-smart! - Close server WebSockets with 1000 on success, 1001 on interruption, or 1011 on failure, while preserving explicit close codes. HTTP request scopes retain the handler's failure exit through response handling and middleware.#8633
2c552f2Thanks @IMax153! - Effect 4.0 is the first stable release of Effect v4. It replaces the 4.0.0 beta and release-candidate series, whose per-release notes remain below under the4.0.0-beta.*and4.0.0-rc.*headings. To upgrade from Effect 3, follow the migration guide.Packaging and versioning
effectand every@effect/*package.@effect/platform,@effect/rpc,@effect/cluster,@effect/cli,@effect/ai,@effect/sql,@effect/workflow,@effect/experimentaland similar packages are merged intoeffect. Separate packages remain only for platforms (@effect/platform-*), SQL drivers (@effect/sql-*), AI providers (@effect/ai-*), framework bindings (@effect/atom-*), OpenTelemetry, Vitest and tooling.effect/http,effect/http-api,effect/rpc,effect/cluster,effect/workflow,effect/ai,effect/cli,effect/sqlandeffect/schemaimport fromeffect/<area>. APIs tagged@stability unstablemay have breaking changes in minor releases. APIs without a stability tag follow semver.@stability unstable, because that dependency's releases can change them. This coversNodeRedis,DenoRedis,BunRedis,@effect/platform-node/Undiciand the undici dispatcher APIs, thewsoptions and re-exports in the platform packages, driver-specific options and clients in@effect/sql-clickhouse,@effect/sql-d1,@effect/sql-libsql,@effect/sql-mssql,@effect/sql-mysql2,@effect/sql-pgliteand@effect/sql-sqlite-do, the provider clients, models and generated schemas in the@effect/ai-*packages,@effect/opentelemetry, and thevitestre-export in@effect/vitest.effecthas no runtime dependencies.@effect/platform-deno,@effect/sql-pglite,@effect/ai-openai-compat,@effect/ai-typesafe,@effect/atom-react,@effect/atom-solid,@effect/atom-vue,@effect/openapi-generatorand@effect/doctest.@effect/docgennow lives in this repository.Core
Context.Service,FiberRefis replaced byContext.Reference,Causehas a flat structure, and many combinators were renamed. See the migration guide for the full list.Effect.tx, withTxRef,TxQueue,TxHashMap,TxPubSub,TxSemaphoreand relatedTx*data types.Clockseparates wall-clock time from monotonic time.Semaphore,Latch,LayerRef,ErrorReporter,ByteSize,NewtypeandCrypto.Arbitraryis now a native property-based testing module and no longer depends on fast-check.Schema
makeconstructors on every schema, and effectful decoding with services.SchemaRepresentationpowers JSON Schema (Draft-04, Draft-07, 2020-12 and OpenAPI 3.0/3.1) import and export, TypeScript code generation, and AI structured output.SchemaBinaryprovides a compact binary codec and is the default wire format for cluster transports.Platform, HTTP and RPC
HttpApisupports typed response headers, streaming and SSE responses, the HTTPQUERYmethod,HttpApiTestfor in-memory testing, and much faster type checking for large APIs.Sockethas a pull-based reader with backpressure and STARTTLS support. Network addresses are modeled byeffect/net.@effect/platform-denoadds full Deno support. The Node, Bun, Deno and browser packages all provide the platformCryptoservice, and the browser package adds IndexedDB support.Cluster and Workflow
DurableQueueand an in-memoryWorkflowEngineare available.ShardingConfiglimits. Shutdown, entity movement and persisted replies are more reliable.SQL
@effect/sql-pguses a built-in PostgreSQL client with pipelining, prepared statements and binary codecs, and no longer depends onpg.@effect/sql-sqlite-nodeuses Node's built-innode:sqliteand requires Node 22.16 or newer.SqlErrorexposes structured reasons such asUniqueViolation.AI
effect/aiaddsEmbeddingModel, theDecisionModelclassification and rating API, dynamic tools and tool approvals.CLI, Atom, observability and testing
effect/cliadds global flags, command aliases and examples, an interactive wizard mode, and shell completions for Bash, Zsh and Fish.effect/reactivityand the@effect/atom-*bindings add SSR hydration, stale-while-revalidate atoms and serializable RPC and HttpApi queries.@effect/opentelemetryaligns logs and spans with the OpenTelemetry specification.@effect/vitestruns property tests with the nativeArbitrarymodule and supports Vitest fixtures.Requirements
@effect/vitestand@effect/doctestrequire Vitest 5.@effect/atom-reactrequires React 19.@effect/platform-denorequires Deno 2.8.3 or newer.Updated dependencies [
cbfc7b4,5a81a6f,68b6394,5250ca6,5f9c9d1,3278821,83429b4,0af6d0c,927e01e,10d8524,35ac25a,29e0aa7,8783536,df77fff,ef7d77f,035e369,f72790c,aa19472,988c467,735b77b,e5f7d12,2c552f2]:Effect-TS/effect (effect)
v4.0.2Compare Source
Patch Changes
#8870
26c1089Thanks @Makisuo! - Update AI tracing to use current OpenTelemetry GenAI conventions:gen_ai.systemwithgen_ai.provider.name. Thesystemoption,BaseAttributesandWellKnownSystemare removed in favor ofprovider: { name },ProviderAttributesandWellKnownProviderName.gen_ai.token.type, which is not a span attribute in the current conventions, along with thetokenoption,TokenAttributesand theAllAttributestypes.LanguageModelspans are client spans and recordgen_ai.output.type(textorjson) for every provider. The OpenAIresponseFormattelemetry option andWellKnownResponseFormatare removed.gen_ai.openai.*toopenai.*.concurrency,toolChoiceandobjectNamespan attributes toeffect.ai.concurrency,effect.ai.tool_choiceandeffect.ai.object_name. Tool choices record the resolved value, defaulting to"auto"; object choices are JSON-encoded.gen_ai.usage.input_tokensand report cache reads and writes asgen_ai.usage.cache_read.input_tokensandgen_ai.usage.cache_write.input_tokens. The duplicate AnthropiccacheCreationInputTokensandcacheReadInputTokensresponse options are removed.#8849
6c59de7Thanks @gcanti! - Fix Arbitrary property checks, schema generation, and shrinking swallowing defects or interruption when they accompany typed failures. Propagate the defect and interruption reasons with their annotations, removing typed failures from mixed causes to preserve the existing error types.#8760
467d3acThanks @fubhy! - Include runtime layer errors in the result type ofAtomRuntime.subscriptionRef.#8820
375c1b0Thanks @jarrednorrisdev! - Preserve the URL hash and omit empty query strings when writingAtom.searchParam.#8771
45a70ceThanks @jarrednorrisdev! - PreventAtom.windowFocusSignalandAtom.refreshOnWindowFocusfrom throwing whenwindowis undefined.#8837
fb757e3Thanks @tim-smart! - Fix a Cache.get interruption race that could leave an abandoned lookup running and its key stuck in the cache.#8778
716e358Thanks @fubhy! - Fix a stack overflow when many consecutive failure handlers throw synchronously. The thrown defect is now captured as the fiber's exit and pending finalizers still run.#8838
af114e6Thanks @tim-smart! - DeriveChannel.decodeTextoptions from theTextDecoderconstructor so declarations work with Node-only types without requiring the DOM library.#8758
d0b3862Thanks @fubhy! - FixChannel.mapInputdata-last overload to preserve channel requirements and add the mapping function's requirements.#8757
7064da9Thanks @fubhy! - FixChannel.runIntoPubSubto include the channel's error type in the returnedEffect.#8810
eee0eebThanks @fubhy! - Fix compiled Struct parsers sharing mutable output when the same suspended Effect is executed more than once.#8808
b9d6581Thanks @fubhy! - Preserve provider defects and interruption reasons during Config parsing, and prevent Config.orElse from recovering mixed causes.#8877
7a721ceThanks @jayhemnani9910! - Preserve separators insideConfig.Recordvalues, including base64 padding in OTLP headers.#8832
a0cb4c2Thanks @tim-smart! - Add image input toDecisionModel.decide. Providers opt in withsupportsImages: trueand receive images throughProviderOptions.images. Models without image support reject nonempty image input withInvalidUserInputError.#8765
3cb395eThanks @fubhy! - FixExecutionPlanto preserve errors and service requirements from layers, predicates, and schedules across fallback steps. Provide captured services to schedules when usingcaptureRequirements.#8770
540ecd1Thanks @fubhy! - Tag every module and directly importable export with an explicit@stability.@stability stablefollows strict semver, and@stability unstablemay receive breaking changes in minor releases.#8814
aefe05aThanks @fubhy! - Fix Map and Set schema equivalences incorrectly treating proper subsets as equal.#8804
c381fbcThanks @fubhy! - Fix stack overflow when many equal requests share a pendingRequestResolver.withCacheentry.#8805
c6f2179Thanks @fubhy! - Allow interruption while waiting for permits or locks in TxSemaphore and TxReentrantLock helpers, while preserving automatic release after acquisition.#8586
0aeb7fdThanks @Marve10s! - Allow spans without an Effect parent to inherit active OpenTelemetry spans created outside Effect.#8799
2fbecc8Thanks @fubhy! - Preserve finalizer defects inEffect.repeatandEffect.schedule. PreventEffect.retryfrom retrying failures containing defects or interruptions.#8753
7095539Thanks @jayhemnani9910! - FixToml.parseto trim an immediate opening CRLF in basic and literal multiline strings, matching its existing LF handling.#8752
46b75b1Thanks @jayhemnani9910! - FixYaml.parseblock scalar chomping to preserve trailing line breaks with keep (|+,>+) and avoid adding line breaks to empty or unterminated scalars.#8815
99b6b45Thanks @fubhy! - Fix Array concatenation reducers sharing mutable empty results across calls and reducer instances.#8811
e4cb9f1Thanks @fubhy! - Fix Standard Schema and Standard JSON Schema adapters to use the child schema rather than an inherited parent adapter.#8792
2e03688Thanks @fubhy! - FixStream.peeldropping the sink's unconsumed elements from a partially consumed chunk.#8809
b817ebeThanks @fubhy! - Fix suspended Schema union parsers reusing successes and issues when the same decode or encode effect is run again.#8742
4153144Thanks @wouter173! - Fix the data-last overload ofAsyncResult.flatMapto correctly infer a changed success type.#8830
2b3c63cThanks @devangpratap! - FixHttpClientretaining unread responses on runtimes withoutFinalizationRegistry, such as Hermes.#8772
bd00773Thanks @juliusmarminge! - ReadHttpClientResponse.cookieson platforms whoseHeadershas nogetSetCookie, such as React Native, instead of throwing.#8873
146e86aThanks @tim-smart! - Align HTTP tracing span names, response error status, server addresses and ports with OpenTelemetry conventions. Make header capture opt-in and export homogeneous primitive arrays as array attributes in@effect/opentelemetry.#8759
44defadThanks @fubhy! - FixHttpServerserviceserveto infer required services from the middleware-transformed app.#8821
22d6f4dThanks @Makisuo! - MarkHttpMiddleware.tracerserver spans as failed for 5xx responses, including rendered errors, without changing the application exit or existing span failure causes.#8852
7d8d497Thanks @effect-bot! - Report the101status of a successful WebSocket upgrade to server middleware such asHttpMiddleware.loggerandHttpMiddleware.tracer, instead of the handler's discarded response status.#8767
98a5ed7Thanks @fubhy! - FixHttpApiClientandAtomHttpApiresult types for union response modes while preserving decoded-only results when the mode is omitted.#8858
d350f8eThanks @jayhemnani9910! - FixHttpApirejecting single-value array fields in form-urlencoded and GET payloads.#8834
bd96be0Thanks @tim-smart! - Return 500 and report HTTP API response encoding failures to ErrorReporter, while keeping request decoding failures at 400 and unreported. Preserve response failures as HttpApiSchemaError values for schema-error middleware.#8875
f6af4b6Thanks @tim-smart! - expose more of the atom registry apis#8836
7234786Thanks @tim-smart! - Cache the Kubernetes service-account token for one minute so K8sHttpClient picks up rotated credentials without reading the token file on every request.#8773
1f74b62Thanks @juliusmarminge! - Add opt-inallowSessionTerminationtoMcpServer.layerHttp. DELETE ends the session and interrupts its active requests; later requests with that session id return404.Fix an RPC cancellation race by registering request fibers before their handlers run.
#8775
42763ceThanks @RhysSullivan! -McpServer.layerHttpuses the negotiated protocol version when a session request omitsMCP-Protocol-Version. Unsupported or mismatched protocol versions, missing requiredMCP-Session-Idheaders, andinitializerequests with a session header now return JSON-RPC error bodies.#8842
5630677Thanks @brandon-julio-t! - Fix MCP toolkit registration to require tool handler and schema services.#8864
a0e1b87Thanks @Makisuo! - Leave interrupt-only spansUnsetwith aneffect.fiber.interrupted: trueattribute instead ofOkwith an "Interrupted" description and thespan.label/status.interruptedattributes. Successful spans keepOk; failures keepErrorand their exception events.Cause.prettyErrorsno longer captures an internal stack frame for non-object failures such asEffect.fail("boom"); the stack is now the message plus the span frame, when available. This affects theexception.stacktraceexported by both tracers and the output ofCause.pretty.#8868
f5716adThanks @Makisuo! - Align OTLP and@effect/opentelemetrylogs, traces, and resources with OpenTelemetry conventions.#8869
26931d0Thanks @Makisuo! - OtlpMetrics exports each summary as one OTLP Summary metric named<id>instead of<id>_quantiles,<id>_countand<id>_sumSum metrics. Summaries are always cumulative. Common unit names such asmillisecondsare mapped to UCUM, and bigint values beyond 2^53 keep their precision.#8756
972c80fThanks @creatifcoding! - Fix PostgreSQLSqlEventJournalwrites by storing entry and remote IDs asBYTEA, and decodeBIGINTtimestamps returned as strings or bigints.Existing tables with
UUIDcolumns are not migrated automatically. Recreate both journal tables only after confirming they are empty, or externally migrateid,remote_id, andentry_idtoBYTEAwhile preserving existing data.#8762
efebfa9Thanks @fubhy! - Include completion-handler services in the requirements ofMcpServer.registerPromptandMcpServer.prompt, including optional handlers.#8819
a3b4cf3Thanks @mikearnaldi! - Prevent message loss whenQueue.take,takeAll,takeN,takeBetween,poll, andclearare interrupted at a scheduler yield.#8816
3ed997bThanks @fubhy! - FixChannel.mergehanging or succeeding when a side finalizer fails, preserving both usage and finalizer failures.#8798
7b396bdThanks @fubhy! - FixChannel.mergeAlland concurrentChannel.flatMapdropping inner scope finalizer defects, preserving both usage and release failures.#8800
c07c144Thanks @fubhy! - FixCron.nextreturning past occurrences or exhausting its search limit when starting in a repeated DST interval.#8777
8903b68Thanks @fubhy! - Fix child fibers reusing completed transaction journals so later transactions commit their writes.#8784
a84aa4eThanks @fubhy! - Fix FiberHandle losing ownership of fibers started by a synchronous replacement finalizer.#8782
88917ebThanks @fubhy! - FixFormatter.formatJsonredaction of getter-returned values withtoJSONwithout invoking getters twice.#8776
50a5686Thanks @fubhy! - FixEffect.effectifyso throwing error mappers become defects instead of escaping asynchronous callbacks and leaving fibers suspended.#8789
c419a0eThanks @fubhy! - Fix stack overflows when PartitionedSemaphore hands permits through long queues of synchronous tasks.#8791
d85a309Thanks @fubhy! - FixQueue.clearswallowing failures combined withCause.Done.#8785
7e7ede6Thanks @fubhy! - Fix Queue consumers defecting and messages being buffered after reentrant shutdown while resuming blocked producers.#8779
1803500Thanks @fubhy! - Mask interruption before invoking scope finalizer callbacks so singleton cleanup completes when its callback interrupts the closing fiber.#8795
495740dThanks @fubhy! - FixStream.zipLatest,zipLatestWith, andzipLatestAllhanging when an input completes without emitting.#8780
985860dThanks @fubhy! - Preserve failures raised while a transaction is retrying instead of rerunning the transaction.#8833
e36abbbThanks @tim-smart! - Return HTTP 200 with an empty body for empty RPC POST requests using framed serialization.#8867
c6086eeThanks @Makisuo! - RPC client and server spans now set span kindclient/serverand record the OpenTelemetryrpc.system.name(effect_rpc) andrpc.methodattributes. UserspanAttributesstill override them.Default span names are now the RPC method, for example
Echo.Pinginstead ofRpcClient.Echo.Ping. Update dashboards, alerts or samplers that match the old names, or passspanPrefix: "RpcClient"/spanPrefix: "RpcServer"to keep them. Spans with an explicitspanPrefixkeep their existing names.#8835
0ac6ac8Thanks @tim-smart! - Fix RPC request defects breaking subsequent SchemaBinary calls after an unknown request tag or payload decoding failure.#8825
90a1baeThanks @tim-smart! - Add configurablepingIntervalandpingTimeoutto RPC socket clients, counting any decoded server frame as liveness. ForwardretryPolicythroughlayerProtocolSocket. The default ping interval and timeout remain 5 seconds.#8748
b1d200cThanks @gcanti! - Expose the selected tag property key throughtagon schemas returned bySchema.toTaggedUnionandSchema.TaggedUnion, closes #8681.#8764
1ba8521Thanks @fubhy! - Fix the data-lastSink.catchCauseoverload to return the handler's error type instead of the original error type.#8878
1b35732Thanks @jayhemnani9910! - FixStream.slidingSizedropping elements from the final partial window when windows overlap.#8855
763b445Thanks @tim-smart! - Fix SQL unencrypted event-log notifications to publish in sequence order after commit, without missing startup rows or publishing rolled-back writes.#8866
00f1cc7Thanks @Makisuo! - Align SQL tracing with OpenTelemetry database conventions:db.namespace,server.address[:server.port]ordb.system.name, falling back tosql.execute. The rules are exported asStatement.spanNameandStatement.spanTarget.effect.sql.methodinstead ofdb.operation.name.effect.sql.transaction.commit|savepoint|rollbackevents.BATCH, orBATCH {target}when a target is set, withdb.operation.nameset toBATCHanddb.operation.batch.size.#8857
d4f4bc8Thanks @jayhemnani9910! - FixStream.groupBy,Stream.groupByKey,Stream.partition, andStream.partitionEffecthanging when a substream consumer stops early by shuConfiguration
📅 Schedule: (in timezone Asia/Tokyo)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.