- Update root AGENTS.md: hook count 44→46, commit fcb90d92, generated 2026-02-24
- Update src/AGENTS.md: core hooks 35→37, session hooks 21→23
- Update src/hooks/AGENTS.md: 46 hooks total, add modelFallback/noSisyphusGpt/noHephaestusNonGpt/runtimeFallback, jsonErrorRecovery moved to tool-guard (tier 2)
- Create src/tools/hashline-edit/AGENTS.md (93 lines): documents three-op model, LINE#ID format, execution pipeline
- Refresh timestamps: 2026-02-21→2026-02-24 on 28 files
- Update plugin/AGENTS.md hook composition counts
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
1.9 KiB
[sisyphus-bot]
Confirmed Bug
We have identified the root cause of this issue. The bug is in the config writing logic during installation.
Root Cause
File: src/cli/config-manager/write-omo-config.ts (line 46)
const merged = deepMergeRecord(existing, newConfig)
When a user runs oh-my-opencode install (even just to update settings), the installer:
- Reads the existing config (with user's custom model settings)
- Generates a new config based on detected provider availability
- Calls
deepMergeRecord(existing, newConfig) - Writes the result back
The problem: deepMergeRecord overwrites values in existing with values from newConfig. This means your custom "model": "openai/gpt-5.2-codex" gets overwritten by the generated default model (e.g., anthropic/claude-opus-4-6 if Claude is available).
Why This Happens
Looking at deepMergeRecord (line 24-25):
} else if (sourceValue !== undefined) {
result[key] = sourceValue as TTarget[keyof TTarget]
}
Any defined value in the source (generated config) overwrites the target (user's config).
Fix Approach
The merge direction should be reversed to respect user overrides:
const merged = deepMergeRecord(newConfig, existing)
This ensures:
- User's explicit settings take precedence
- Only new/undefined keys get populated from generated defaults
- Custom model choices are preserved
SEVERITY: HIGH
- Impact: User configuration is overwritten without consent
- Affected Files:
src/cli/config-manager/write-omo-config.tssrc/cli/config-manager/deep-merge-record.ts
- Trigger: Running
oh-my-opencode install(even for unrelated updates)
Workaround (Until Fix)
Backup your config before running install:
cp ~/.config/opencode/oh-my-opencode.jsonc ~/.config/opencode/oh-my-opencode.jsonc.backup
We're working on a fix that will preserve your explicit model configurations.