refactor(upgrade): full Effect-native rewrite of the upgrade train
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- リファクタリング
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
Start by locating upgradeTemplate and the syncTemplate release scoped path, then read the PlatformManifestService and ResolutionSessionService seams and the orchestrator's Effect.timeoutOrElse patterns. Run the targeted upgrade and CLI error suites plus pnpm run lint:effect; done means the paths use Effect with typed errors and service fakes, all checks pass, and the platform upgrade e2e confirms unchanged behavior.
索引モデルが issue の本文から書いたものです。
説明
Summary
Second half of the seam-pattern decision (the PlatformManifestService seam lands first): rewrite the upgrade train itself as Effect-native pipelines.
PR-level context: PlatformManifestService (the seam) wraps the platform-release-manifest cluster while the core stays plain async functions — the repo's "module is the implementation, the tag is the seam" shape (FastKVRegistryService, DeployTrainService precedents). This ticket rewrites the orchestration layer.
Scope
upgradeTemplatephases →Effect.genpipelines: read-source / diff / preflight / package-apply / re-exec boundary / migration phases become effects with typed errors (a discriminatedUpgradePhaseErrorreplacing string-errorUpgradeResultshapes where callers need them).- Typed error channel —
PublishTrainError-style: handlers map failures to the wire shape mechanically instead of string matching. - Effect-lint parity — the cluster passes
pnpm run lint:effect(floating effects, tag Self mismatches) under the type-aware oxlint preset. - Service-in-context throughout —
upgradeTemplateconsumesPlatformManifestService+ResolutionSessionServiceviayield*instead of direct plain-function imports. - Timeouts / interruption — the spawn-heavy phases (
pnpm install,bos types gen, the re-exec boundary) get fiber-based timeouts instead of ad-hoc exit-code checks, matching the orchestrator'sEffect.timeoutOrElsepatterns.
Non-goals
- No behavior change: the upgrade plot, pin semantics, drift alarms, and output shapes stay byte-identical (the platform-upgrade e2e is the guard).
- Plain function exports stay as the pure core — a rewrite of the orchestration layer, not a deletion of the seams.
Acceptance
upgradeTemplate(andsyncTemplate's release-scoped path) are Effect-native with typed errors.- Targeted suites (upgrade-migration, upgrade-template-sync-gating, upgrade-catalog-drift, cli-error-format) pass with service fakes, no
vi.mockon the scaffold modules. pnpm run lint:effectreports zero findings for the cluster.
- 主要言語
- TypeScript
- スター
- 5
- フォーク
- 3
- 平均マージ
- 10時間 38分
- マージ済み PR(30日)
- 119
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NEARBuilders/everything-dev のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NEARBuilders/everything-dev#557 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NEARBuilders/everything-dev#550 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NEARBuilders/everything-dev#400 ·
メンテナーはふだん 1 日以内に返信
-
configInputToDescriptor drops a remote-only `api` slot (same guard class as the fixed auth drop)オープン
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
NEARBuilders/everything-dev#566 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
NEARBuilders/everything-dev#565 ·
メンテナーはふだん 1 日以内に返信
NEARBuilders/everything-dev の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
braintrustdata/braintrust-sdk-javascript#2659 ·
メンテナーはふだん 1 日以内に返信
-
body-parser 2.3.0 in the published ai-dial-chat-bff image is vulnerable (CVE-2026-111181, HIGH)対応中かも @illya-havsiyevych が今日担当しました。 オープンbug
難易度 1/5 1〜3時間 初心者へのやさしさ 87/100
epam/ai-dial-chat#9566 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
はさみアイコンを修正するオープンbug
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
-
area: core
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信