(dc: &mut DoctorCounters, home: &Path)
| 1266 | // --------------------------------------------------------------------------- |
| 1267 | |
| 1268 | fn doctor_check_plugin(dc: &mut DoctorCounters, home: &Path) { |
| 1269 | let global_policy = CodexBundlePolicy::for_scope(InstallScope::Global); |
| 1270 | let cached_dirs = codex_plugin_cached_install_dirs(home); |
| 1271 | if !cached_dirs.is_empty() { |
| 1272 | for plugin_dir in cached_dirs { |
| 1273 | doctor_check_plugin_dir(dc, &plugin_dir, global_policy, home); |
| 1274 | } |
| 1275 | return; |
| 1276 | } |
| 1277 | |
| 1278 | let plugin_dir = codex_plugin_install_dir(home); |
| 1279 | let manifest_path = plugin_dir.join(".codex-plugin/plugin.json"); |
| 1280 | if !manifest_path.exists() { |
| 1281 | dc.warn(&format!( |
| 1282 | "{} not found — run `tracedecay install --agent codex` or `tracedecay update-plugin` to install the Codex plugin bundle", |
| 1283 | manifest_path.display() |
| 1284 | )); |
| 1285 | return; |
| 1286 | } |
| 1287 | |
| 1288 | doctor_check_plugin_dir(dc, &plugin_dir, global_policy, home); |
| 1289 | doctor_check_marketplace_entry( |
| 1290 | dc, |
| 1291 | &codex_personal_marketplace_path(home), |
| 1292 | "personal marketplace", |
| 1293 | "./plugins/tracedecay", |
| 1294 | "tracedecay install --agent codex", |
| 1295 | ); |
| 1296 | } |
| 1297 | |
| 1298 | fn doctor_check_marketplace_entry( |
| 1299 | dc: &mut DoctorCounters, |
no test coverage detected