| 1 | package provision |
| 2 | |
| 3 | // plan14MovesOfflineWriteCensusOverlay is the offline operator move's |
| 4 | // record-write sites (docs/superpowers/plans/2026-10-20-offline-operator-move.md), |
| 5 | // census-ruling-moves-offline: RULED by the census owner (platform-1c, |
| 6 | // 2026-10-20), accepted as classified |
| 7 | // (docs/superpowers/notes/census-proposal-moves-offline.md). |
| 8 | // |
| 9 | // The three record writers reach the store only through the typed |
| 10 | // provision.SetRecordMove: the console's door (offlineApply, user |
| 11 | // carlos-console) and the agent's sealer and landing (offlineKeepStop, |
| 12 | // offlineLand, user carlos). The five Put sites write no record key: the |
| 13 | // console's one-move lock (control/offline-moves/active.json, create-only, |
| 14 | // released at its etag), the boxes' reports under control/offline-moves/ |
| 15 | // (writeOfflineReport, putOfflineCreateOnly), and the sealed archive, its |
| 16 | // manifest, the timers snapshot and the env report under the move's |
| 17 | // moves/@offline/ prefix in the target data bucket (offlineArchive, |
| 18 | // offlineTakeSeal). Hence nonrecord. OfflineManifest names record paths in |
| 19 | // prose and builds no key: reference. The four changed sites keep main's |
| 20 | // class; their changes add the offline verb, route and name, and no write. |
| 21 | var plan14MovesOfflineWriteCensusOverlay = []censusEntry{ |
| 22 | {"internal/console/authcli.go", "Server.registerCLIRoutes", "key-site", "lit:instances,lit:sidecars", "2d415897086483fbedf03497573c2a659c21099c1aecb285b3a8dafd208d0b2c"}, |
| 23 | {"internal/layout/extras.go", "var platformNames", "key-site", "lit:instances", "5e7d7b72d9c70c3c5eef748e7af90c8e0c960fba0fd544d95268644e9acaa05b"}, |
| 24 | {"internal/provision/provision.go", "updateRecordSeeding", "record-writer", "key:RecordKey,key:WriteRecord", "0b9146b53aaa29b7436f9dc165c3c15cf1cddd6f8994b3c8657533a5c469c51e"}, |
| 25 | {"move.go", "moveMain", "key-site", "lit:instances", "df49e358a39d3b4a212282231eb5ef3599e0c7befc14a31342c5e63997437941"}, |
| 26 | {"internal/console/apiinstancemove_offline.go", "Server.offlineApply", "record-writer", "key:SetRecordMove", "0ee1115f8dcac6cb69280e7f5d9f931e262e24d9ae5e0d43439f6fc2b4bc8d77"}, |
| 27 | {"internal/console/apiinstancemove_offline.go", "Server.offlineTakeLock", "nonrecord", "sel:Put", "3afefdbb0a0584e0b3addcc0974a2fb18b6b7f1f15ed3d75837a77ddb62a646f"}, |
| 28 | {"internal/host/movesoffline.go", "putOfflineCreateOnly", "nonrecord", "sel:Put", "303094d7293045486936215263bf4ea28a1967488424fe8cf27bebd66b960b14"}, |
| 29 | {"internal/host/movesoffline.go", "writeOfflineReport", "nonrecord", "sel:PutReplace", "37502f0f956b65609b6704f5df00824043d9f324367924598643362ba8a4d70e"}, |
| 30 | {"internal/host/movesoffline_land.go", "movesWorker.offlineLand", "record-writer", "key:SetRecordMove", "55f5aaa04c83ad343ab44d477274b89f3e1a8efe29fc7ccb60251fef4ac7fe87"}, |
| 31 | {"internal/host/movesoffline_seal.go", "movesWorker.offlineArchive", "nonrecord", "sel:Put", "58b241315fc036eb41593a7685fba1dcc091960d0583bfaabd3833917d5f27ef"}, |
| 32 | {"internal/host/movesoffline_seal.go", "movesWorker.offlineKeepStop", "record-writer", "key:SetRecordMove", "c6d413dda550eabb77274227613a33cdcde5923003aff77034a852e5b4175f32"}, |
| 33 | {"internal/host/movesoffline_seal.go", "movesWorker.offlineTakeSeal", "nonrecord", "sel:Put", "efe8259f5e704fbc7c1aed79c8d6934ae9d74de8aae2e88dd169736e98a67dad"}, |
| 34 | {"internal/moves/offline.go", "var OfflineManifest", "reference", "lit:instances", "507fd6615d9d38be634644f9313ef2195742c8696889dc8cd0ad664528b75e83"}, |
| 35 | } |
| 36 | |
| 37 | // plan14MovesOfflineWriteCensusInventory is claim-step6-artifacts' inventory |
| 38 | // with the moves-offline overlay: a changed site replaces its entry, a new |
| 39 | // one is added. |
| 40 | func plan14MovesOfflineWriteCensusInventory() []censusEntry { |
| 41 | entries := append([]censusEntry(nil), plan14ClaimStep6ArtifactsWriteCensusInventory()...) |
| 42 | for _, replacement := range plan14MovesOfflineWriteCensusOverlay { |
| 43 | found := false |
| 44 | for i, entry := range entries { |
| 45 | if entry.File == replacement.File && entry.Unit == replacement.Unit { |
| 46 | entries[i], found = replacement, true |
| 47 | break |
| 48 | } |
| 49 | } |
| 50 | if !found { |
| 51 | entries = append(entries, replacement) |
| 52 | } |
| 53 | } |
| 54 | return entries |
| 55 | } |
| 56 | |