descriptors.ts selectors ignore their `env` arg — silent wrong-descriptor risk if a second env is wired
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- cli
Línea de trabajo
Comienza en src/utils/descriptors.ts leyendo los tres selectores y sus imports de descriptores de paseo; después, sigue la env pasada desde src/utils/connection.ts. Asegúrate de que los entornos inesperados fallen de forma explícita, mientras que el entorno paseo conectado siga siendo válido, y ejecuta tsc junto con la comprobación de divergencias de config.test.ts para verificar el cambio.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Since #465, the three descriptor selectors in src/utils/descriptors.ts
(getAssetHubDescriptor / getBulletinDescriptor / getIndividualityDescriptor)
ignore their env parameter and unconditionally return the paseo-* descriptor.
This is safe today, but it is a latent footgun: the correctness of the selectors
depends on an implicit invariant enforced in a different file.
Background
@parity/[email protected] dropped the summit-* descriptor
subpaths (and summit was retired), so the selectors no longer branch per env —
they return the fixed paseo constants and discard the env arg:
export function getAssetHubDescriptor(_env: Env | undefined): AssetHubDescriptor {
return paseo_asset_hub;
}
export function getBulletinDescriptor(_env: Env | undefined): BulletinDescriptor { … }
export function getIndividualityDescriptor(_env: Env | undefined): IndividualityDescriptor { … }
The risk
getConnection() (src/utils/connection.ts) builds the direct PAPI clients from
getAssetHubDescriptor(getChainConfig().env) (and the bulletin/individuality
equivalents). Because the env arg is discarded, "always return paseo" is only
correct while paseo-next-v2 is the sole env wired in CONFIGS.
If someone later wires a second env into CONFIGS (e.g. polkadot, which is
already present in ENV_IDS) without also editing descriptors.ts, direct
reads would decode that chain's state with the paseo descriptor — silently
wrong metadata, with no error raised. The only thing preventing this today is
getChainConfig() throwing for any env not in CONFIGS — an implicit safety net
one file away from the code that relies on it.
Proposed fix
Make the selectors fail loud instead of silently returning paseo for an
unexpected env: assert the requested env resolves to a paseo-family descriptor
(or that it is the wired default) and throw otherwise. ~3 lines; converts the
latent footgun into an immediate, obvious error the moment a second env is wired.
Restore real per-env selection here if/when another env ships dedicated
descriptors upstream.
Context
Surfaced by the #465 code review (altitude / latent-correctness finding).
Not a live bug — only paseo-next-v2 is wired today, and tsc + the
config.test.ts divergence guard both hold. Filed as hardening / tech-debt.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5
- Forks
- 12
- Merge medio
- 7 d 6 h
- PR fusionados (30 d)
- 3
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de paritytech/playground-cli
-
Nightly E2E failure: 2026-08-30Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
paritytech/playground-cli#518 ·
-
Nightly E2E failure: 2026-08-07Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
paritytech/playground-cli#489 ·
-
Nightly E2E failure: 2026-09-29Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
paritytech/playground-cli#555 ·
-
Nightly E2E failure: 2026-09-28Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
paritytech/playground-cli#554 ·
-
Nightly E2E failure: 2026-09-27Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
paritytech/playground-cli#553 ·
Todos los issues de paritytech/playground-cli
Issues similares
-
needs:triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
ai-discovered
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
jessepollak/home#1627 ·
Los mantenedores suelen responder en 1 día
-
agent-canvas bug llm priority:low ready-for-dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
OpenHands/OpenHands#17806 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
radius-project/ai-extensions#923 ·
Los mantenedores suelen responder en 1 día