refactor(upgrade): full Effect-native rewrite of the upgrade train
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- TypeScript
- Stelle
- 5
- Fork
- 3
- Merge medio
- 9h 50m
- PR unite (30g)
- 146
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NEARBuilders/everything-dev
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
NEARBuilders/everything-dev#400 ·
I maintainer di solito rispondono entro 1 giorno
-
Pinnable dev host slot for child CI — versioned host bundle URLs or a first-class local-host runnerApertaenhancement ready-for-agent
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
NEARBuilders/everything-dev#613 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation ready-for-agent
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
NEARBuilders/everything-dev#608 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
NEARBuilders/everything-dev#595 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
NEARBuilders/everything-dev#593 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di NEARBuilders/everything-dev
Issue simili
-
[good first issue, hacktoberfest] 🏯 Hacktoberfest Task - Add new Japan Fact 898 (good-first-issue)Apertacommunity first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
lingdojo/kana-dojo#33145 · 1 commento · 5 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
code-yeongyu/senpi#4278 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Activity | The activity list ignores taskIds and returns the activities of every taskForse già presa @NdekoCode l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ever-co/ever-gauzy#11469 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
griffinwork40/agent-afk#4408 ·
I maintainer di solito rispondono entro 1 giorno