BigPizzaV3/CodexPlusPlus · warning · anyhow::Error
Codex enhancements are disabled
Error message
Codex enhancements are disabled
What it means
The tray menu action "apply Dream Skin" first loads settings and refuses to proceed when the global enhancements_enabled master switch is off. This guard ensures Dream Skin cannot be toggled on while all Codex++ enhancements are disabled.
Solutions
- Enable the master 'enhancements' switch in manager settings, then retry the tray action
- Set enhancementsEnabled=true via the settings UI before applying Dream Skin
- If settings were reset unintentionally, restore them or flip the switch back on
Example fix
// before
trayApplyDreamSkin();
// after
if (!settings.enhancementsEnabled) { await settings.update({ enhancements_enabled: true }); }
trayApplyDreamSkin(); Defensive patterns
Strategy: validation
Validate before calling
const settings = await loadSettings(); if (!settings.enhancementsEnabled) return; // skip tray action
Try / catch
try { await trayApplyDreamSkin() } catch (e) { if (String(e).includes('enhancements are disabled')) openEnhancementsSettings(); } Prevention
- Disable the tray Dream Skin item when the master switch is off
- Sync tray menu state with settings changes
- Show the switch state in the tray tooltip
When it happens
Trigger: Choosing the Dream Skin apply item from the tray menu (apply_dream_skin_from_tray, lib.rs ~400, invoked from install_tray) while current.enhancements_enabled == false.
Common situations: User disabled all enhancements in settings but still clicks the tray Dream Skin option; settings file reset to defaults with enhancements_enabled=false; another feature toggled the master switch off programmatically.
Related errors
- Dream Skin is not enabled
- 供应商配置总开关已关闭,未写入 config.toml / auth.json。
- Dream Skin image is not managed by Codex++
- Dream Skin is paused
- {}
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@b1ed92e5e4 (2026-09-19).
Data as JSON: /api/errors/bd33cd11b35eb767.
Report an issue: GitHub.
Appendix: source
Thrown at apps/codex-plus-manager/src-tauri/src/lib.rs:400
None::<&str>,
);
let quit_item = MenuItem::with_id(&app, TRAY_MENU_QUIT, &quit_label, true, None::<&str>);
if let (Ok(show), Ok(apply_skin), Ok(quit)) = (show_item, apply_skin_item, quit_item) {
if let Ok(menu) = Menu::with_items(&app, &[&show, &apply_skin, &quit]) {
let _ = tray.set_menu(Some(menu));
}
}
}
if let Some(window) = app.get_webview_window("main") {
let _ = window.set_title(&window_title);
}
}
async fn apply_dream_skin_from_tray() -> anyhow::Result<()> {
let store = codex_plus_core::settings::SettingsStore::default();
let current = store.load()?;
if !current.enhancements_enabled {
anyhow::bail!("Codex enhancements are disabled");
}
let settings = store.update(serde_json::json!({
"codexAppDreamSkinEnabled": true,
"codexAppDreamSkinPaused": false
}))?;
debug_assert!(settings.enhancements_enabled);
codex_plus_core::dream_skin::sync_default_dream_skin_base_theme(
true,
&settings.codex_app_dream_skin_theme_config,
)?;
codex_plus_core::dream_skin_runtime::apply_dream_skin_live(
DREAM_SKIN_DEBUG_PORT,
codex_plus_core::protocol_proxy::protocol_proxy_port(),
)
.await?;
Ok(())
}
View on GitHub (pinned to b1ed92e5e4)