I3302 — An installed plugin or mod that differs from what the repository generated is a doctor finding
Extend the existing installed-versus-source comparisons with each generated extension's digest, version and declared permissions, and report an unknown or drifted active extension in doctor and /ui.
BLOKOVÁNO wave 2 · p3 · implementation profile · parallel safe
Blocked. This issue cannot start until I3300 is done. The status is derived from that, not declared.
Cíl
Extend the existing installed-versus-source comparisons with each generated extension's digest, version and declared permissions, and report an unknown or drifted active extension in doctor and /ui.
Proč
Mods run unsandboxed (dated vendor claim 2026-10-02), so provenance and trust are the value; federating discovery is preferred to owning a marketplace. current_state is corrected: installed mods and shims are already compared with their sources (lib/capture.sh mj_capture_mod_same, mj_capture_shim_body) and the hooks' wiring is reported (mj_lifecycle_state); this issue extends those checks. Proposed in ADR 0214 (A provider's native extension points carry the contract as generated projections; Majordomus neither embeds nor patches the worker's runtime) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c174#18.
Aktuální stav
Installed mods and shims are compared with their sources (lib/capture.sh mj_capture_mod_same, mj_capture_shim_body) and capture install rewrites a drifted copy; mj_lifecycle_state reports each provider's hook wiring; doctor fails a hand-edited projection. Nothing records digests, versions or declared permissions, and an unknown active mod is not reported.
Cílový stav
doctor names each drifted or unknown extension with the remedy.
Rozsah
- apps/majordomus-cli/src/editors
- lib/doctor.sh
- lib/capture.sh
- apps/majordomus-cli/src/ui/skills.rs
- apps/majordomus-cli/src/capability/builtin/editors.rs
- apps/majordomus-cli/tests/skills.rs
Závislosti
Kritéria přijetí
- A modified installed mod is reported with both digests
- An unknown active mod is a finding, not an error
- The comparison extends mj_capture_mod_same, mj_capture_shim_body, mj_lifecycle_state and doctor's projection check with digests, versions and declared permissions; no second comparison is built
- The edit-guard shim and any unknown active mod are reported
- The provenance report is shown on /ui and proven by a case
Validace
- bin/majordomus doctor
- majordomus generate --check
Požadované důkazy
- case_extension_drift_is_reported
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3302.yaml. Read it back with majordomus plan show I3302.