Summary
Design-level improvements needed in the install/remove/update workflows.
Findings
1. Scriptlet failure recovery
- No recovery mechanism when a post-install scriptlet fails. The package remains in a half-configured state.
- Improvement: Implement scriptlet failure rollback or mark package as "unconfigured".
2. Changeset status tracking
- Changeset objects lack fine-grained status tracking (pending/applying/applied/failed).
- Improvement: Add status field to changeset model for better observability.
3. Adopted package dependency tracking
- Dependencies of adopted (foreign) packages not tracked, leading to potential removal of needed libraries.
- Improvement: Infer and record dependencies during adoption.