Documentation
¶
Overview ¶
Package migrate ports a project's awf config across schema generations. It is the sole reader of the legacy single-file .claude/awf.yaml (ADR-0010 inv: legacy-read-isolation, the named exemption to ADR-0009 inv: config-root) and is imported by nothing on the render/sync/check load path.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Current ¶
func Current() int
Current is the current schema generation (the highest registered To).
func Generation ¶
Generation reports the project's schema generation. Detection is by layout: a .awf/ tree reports its lock's SchemaVersion (or Current() when no lock yet — fresh init / just-upgraded); a pre-relocation .claude/awf/ tree reports its lock's schema, or 1 when no lock — such a tree is the tree-layout port's output (the port deletes the legacy lock), so every later migration up to and including the To:3 relocation must still apply; the legacy single file reports 0; nothing present reports Current().
func Upgrade ¶
Upgrade applies every registered migration with To > Generation(root), in ascending To order, and returns the applied migration names. Idempotent: at the current generation it applies nothing and returns an empty slice, nil error. After applying any migration it restamps an existing tree lock to Current() so Generation reflects the new state and the terminal sync's schema gate passes (a tree→tree upgrade keeps its lock, unlike the legacy 0→1 port which drops it).