AltimateAI / AltimateAI/altimate-code

config: harden config-load failure handling after Zod→Effect Schema migration

オープン
#995 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
TypeScript
スター
811
フォーク
134
平均マージ
3日 2時間
マージ済み PR(30日)
50

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。