AltimateAI / AltimateAI/altimate-code
config: harden config-load failure handling after Zod→Effect Schema migration
- Langage dominant
- TypeScript
- Étoiles
- 811
- Forks
- 134
- Merge moyen
- 3 j 2 h
- PR mergées (30 j)
- 50
Description
Found during v0.9.1 release review (Chaos-Gremlin + others). Two inconsistent, risky failure modes when a pre-existing config trips the new strict Effect Schema (`topLevelExtraKeys` throws on any unrecognized top-level key):
- **Global config** (`packages/opencode/src/config/config.ts:~389`): `loadGlobal().pipe(Effect.orElseSucceed(() => ({})))` — a parse failure silently resets the ENTIRE global config (providers, models, permissions, agents, MCP) to `{}`, with only an `Effect.logError` most users never see. Silent config loss on upgrade.
- **Project-local config** (`config.ts:~757`): `loadInstanceState(...).pipe(Effect.orDie)` — hard crash on a stale/removed top-level key, killing session start in that directory.
Fix: (1) surface a user-visible warning when global config falls back to defaults; (2) reconcile the asymmetry so both name the offending key and fail gracefully (ignore only the malformed source, don't nuke all config or crash). Low probability (fork shipped 0.9.0-beta.2 on this code) but high impact when it fires.
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.