refactor(host): explicit host for configuration reads and one entered runtime store

Geschlossen
#3,794 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Refactoring
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
node.js, typescript
Bereich
backend, devtools

Rechercherichtung

Start with the root platform-runtime-* files, platform packages, and defineRuntimeSlots modules; trace the remaining commandHostEnvironment() calls and runtime slot handles. Read the follow-ups #3763 and #3772 and the holistic review on #3747 for decisions already made. Done means configuration reads use the runtime's explicit host, one runtime-owned store is entered and disposed, and the daemon host test plus two-runtime isolation tests pass.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

in-progress ready-for-agent refactor

Part of #3747. Follow-up to #3763 and #3772, which leave two pieces deferred in their PR bodies.

1. Narrow commandHostEnvironment() to command execution

About 60 call sites remain in the root platform-runtime-* files and the platform packages. They read configuration (toolchain and SDK paths, caches, path resolution) through the ambient, AsyncLocalStorage-bound commandHostEnvironment(). The holistic review on the stack decided:

  • Configuration reads take the host explicitly. Pass it as a parameter, through the runtime deps, or through a port bound at construction.
  • The ambient lookup is only for host-kit command execution and diagnostics.

Done when:

  • Every non-test call of commandHostEnvironment() outside host-kit's command execution and diagnostics is replaced by an explicit host.
  • A test on the daemon route proves configuration is read from the runtime's host and not from the process, when the two differ.

2. One entered runtime store

#3772 moved per-runtime state onto defineRuntimeSlots. Each module still exposes its own handle, collected into runtimeStates.

Required:

  • Collapse them into one store, entered once per runtime.
  • Modules declare slots; the runtime owns entry and disposal.

Done when:

  • No module-level handle or runtimeStates aggregation remains.
  • The two-runtime isolation tests (Apple runner, Android helper, PNG worker, daemon modules) still pass.

Ordering

  • #3757 (agent-device/host) does not depend on this issue.
  • #3753 (lint gate) should land after part 1, so the gate can also forbid commandHostEnvironment() outside the command-execution boundary.
Vorherrschende Sprache
TypeScript
Sterne
5.2k
Forks
359
Ø Merge
13 Std. 31 Min.
Gemergte PRs (30 T.)
664

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus callstack/agent-device

Alle Issues in callstack/agent-device

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.