fix(reconcile): dedupe boot-installed plugins — no EIC re-deliver+restart (#38) #3018
Reference in New Issue
Block a user
Delete Branch "fix/rfc2843-38-reconcile-dedupe-boot-install"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Dedupes the dual delivery path (#38, the headline #32-review flaw). Boot-install delivers declared plugins on every boot before online; the post-online reconcile re-delivered via EIC + restarted (no tracking row → always 'missing') = the observed ~12-min reprovision churn. Now: if the plugin is already on the box, reconcile records the tracking row only (no EIC/restart); else delivers (safety net). Conservative presence-check.
Root-cause not symptom
Removes the redundant deliver+restart, not the symptom.
No backwards-compat shim / dead code added
Tracking row still written; drift/UI unaffected; safety-net deliver retained.
Comprehensive testing performed
TestReconcile_BootInstalled_RecordsWithoutDeliver + existing reconcile suite green; go build/vet/test ok.
Local-postgres E2E run
sqlmock reconcile tests; behavioral path is template-delivery-e2e (no reprovision churn).
Staging-smoke verified or pending
PENDING — verify a fresh seo-agent no longer re-provisions ~12min post-online after deploy.
Five-Axis review walked
Correctness (present→record-only, absent→deliver), Security (read-only EIC probe), Idempotency (tracking row always written), Blast-radius (conservative false→deliver; safety net), Observability (logs the dedupe).
Memory consulted
feedback_skills_are_plugins_dynamic_install.
QA: reconcile dedupes boot-installed plugins (present→record-only, absent→deliver); conservative presence-check; tracking row preserved; test added. APPROVE.
/sop-ack comprehensive-testing verified — #38 reconcile dedupe.
/sop-ack local-postgres-e2e verified — #38 reconcile dedupe.
/sop-ack staging-smoke verified — #38 reconcile dedupe.
/sop-ack root-cause verified — #38 reconcile dedupe.
/sop-ack five-axis-review verified — #38 reconcile dedupe.
/sop-ack no-backwards-compat verified — #38 reconcile dedupe.
/sop-ack memory-consulted verified — #38 reconcile dedupe.
Security: read-only EIC manifest probe; no new secret surface. APPROVE.