carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package 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.
21var 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.
40func 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