Skip to content

Implement lore lifecycle commands (upgrade, decommission, reconcile) #71

Open

Description

@David-Noble-at-work

Summary

Implement the lore lifecycle commands that manage deployed packages over time.

Current State

These commands are stubs that return errors (previously returned success, fixed in #65).

Location: internal/lore/commands.go

Commands

lore upgrade (lines 317-326)

Upgrade previously deployed packages to newer versions.

lore decommission (lines 329-342)

Remove packages and clean up their resources.

lore reconcile (lines 345-358)

Compare deployment receipts against actual system state and report drift.

Requirements

  1. upgrade: Read receipt, check registry for newer versions, generate upgrade graph, execute
  2. decommission: Read receipt or package list, generate removal graph, execute cleanup phases
  3. reconcile: Compare receipt state against actual system state, report drift

Documentation References

Acceptance Criteria

  • lore upgrade upgrades packages from a receipt
  • lore decommission removes packages and cleans up
  • lore reconcile reports drift between receipt and system state
  • All commands produce appropriate receipts
  • Tests verify correct behavior

Activity

  1. David-Noble-at-work commented on Sep 10, 2026

    @David-Noble-at-work
    ContributorAuthor

    Finding, 2026-09-09, from the #814 review: buildPackage in cmd/lore/lore/builder.go walks
    PhaseOrder(lorepackage.Deploy) unconditionally. The upgrade, decommission and reconcile orders are
    declared in lorepackage/lifecycle.go and no planner path builds them; addNativeSoftwarePackages maps
    PMRemove and PMUpgrade to pkg.remove and pkg.upgrade, and nothing reaches those cases. When this
    feature's plan opens, buildPackage takes the action as a parameter and the three orders become reachable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area:CLICommand-line interfaceClaudeJudgmentError:FalseSuccessCode returns success when operation not performedEpic:LorePackaginglore packaging and the registryfeatureDeliverable unit within an epic

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions