carlos / platform Public

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

Plain git — no account needed to clone.

Download

Download this file

1{
2 "schema_version": 1,
3 "source_revision": "11a303996d5503d29ede77598243ddc66f735279",
4 "status": "Design checklist, not implementation or coverage proof. All production functions branching on Hibernate at base classified; additional indirect/serializer/control families listed separately.",
5 "policy_branch_consumers": [
6 {
7 "file": "cli.go",
8 "function": "func runInstances(args []string)",
9 "current_policy_reads_or_writes": [
10 {
11 "line": 340,
12 "source": "if t.Hibernate {"
13 }
14 ],
15 "required_integration": "Instance listing must distinguish management and sleep; hibernate control refuses opted-in policy; replication rail uses exec replication ownership.",
16 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
17 },
18 {
19 "file": "cli.go",
20 "function": "func runRouteHibernate(r *registry.Registry, rt registry.Route, on, dryRun bool)",
21 "current_policy_reads_or_writes": [
22 {
23 "line": 1341,
24 "source": "if rt.Hibernate == on {"
25 },
26 {
27 "line": 1346,
28 "source": "if err := r.SetHibernate(rt.Host, on); err != nil {"
29 },
30 {
31 "line": 1350,
32 "source": "fmt.Printf(\"%s%s: hibernate %v -> %v\\n\", prefix, rt.Host, rt.Hibernate, on)"
33 }
34 ],
35 "required_integration": "Instance listing must distinguish management and sleep; hibernate control refuses opted-in policy; replication rail uses exec replication ownership.",
36 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
37 },
38 {
39 "file": "cli.go",
40 "function": "func replicationRail(rt registry.Route) error",
41 "current_policy_reads_or_writes": [
42 {
43 "line": 1604,
44 "source": "if !rt.Hibernate {"
45 },
46 {
47 "line": 1623,
48 "source": "return fmt.Errorf(\"route hibernates but its row names no database (db_path is empty) \u2014 box-wide litestream excludes a hibernating route only when it knows WHERE its database is (`r.Hibernate && r.DBPath != \\\"\\\"`, ops.FleetDBs), \"+"
49 }
50 ],
51 "required_integration": "Instance listing must distinguish management and sleep; hibernate control refuses opted-in policy; replication rail uses exec replication ownership.",
52 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
53 },
54 {
55 "file": "internal/activator/activator.go",
56 "function": "func (a *Service) sweepOnce()",
57 "current_policy_reads_or_writes": [
58 {
59 "line": 1228,
60 "source": "if !rt.Hibernate || rt.Status != \"ready\" {"
61 }
62 ],
63 "required_integration": "Shared managed predicate in serve/due admission; idle predicate only for idle stop; proactive desired reconciliation and fence precedence across begin/wake/restart/sweep.",
64 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
65 },
66 {
67 "file": "internal/activator/activator.go",
68 "function": "func (a *Service) serve(w http.ResponseWriter, r *http.Request, rt registry.Route, proxy http.Handler, stamp bool) bool",
69 "current_policy_reads_or_writes": [
70 {
71 "line": 1382,
72 "source": "if rt.Kind != \"instance\" || !rt.Hibernate {"
73 }
74 ],
75 "required_integration": "Shared managed predicate in serve/due admission; idle predicate only for idle stop; proactive desired reconciliation and fence precedence across begin/wake/restart/sweep.",
76 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
77 },
78 {
79 "file": "internal/appconfig/sync.go",
80 "function": "func syncHost(rt registry.Route, m *Manifest, defaultMissing bool, priv *ecdh.PrivateKey, envDir string, restart func(host string) error, ack func(ConfigAck))",
81 "current_policy_reads_or_writes": [
82 {
83 "line": 472,
84 "source": "case rt.Hibernate:"
85 }
86 ],
87 "required_integration": "Unit config path keeps ordinary behavior; new mode cannot be mistaken for unit merely because Hibernate=false. Exec config materialization uses its own path and respects active pins.",
88 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
89 },
90 {
91 "file": "internal/caps/converge.go",
92 "function": "func Converge(o Ops, p Plan) (Result, error)",
93 "current_policy_reads_or_writes": [
94 {
95 "line": 221,
96 "source": "if p.Set.Daemon && p.Hibernate {"
97 },
98 {
99 "line": 237,
100 "source": "if p.Hibernate {"
101 }
102 ],
103 "required_integration": "Unit-only capabilities remain excluded from new exec policy; regression proves no unit startup fallback. Explicit ManagedByActivator in Plan; reject Daemon before writes even with Hibernate=false.",
104 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
105 },
106 {
107 "file": "internal/console/apiinstancemove.go",
108 "function": "func (s *Server) moveGate(w http.ResponseWriter, r *http.Request) (acct *Account, app, host string, rec *provision.Record, ok bool)",
109 "current_policy_reads_or_writes": [
110 {
111 "line": 69,
112 "source": "if !rec.HibernateOrDefault() {"
113 }
114 ],
115 "required_integration": "Opted-in resident exec refuses old move API even though Hibernate=false; it cannot enter unit/external migration.",
116 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
117 },
118 {
119 "file": "internal/console/apiinstances.go",
120 "function": "func (s *Server) healthByHost(ctx context.Context, routeFor map[string]registry.Route) map[string]string",
121 "current_policy_reads_or_writes": [
122 {
123 "line": 296,
124 "source": "out[h] = healthWord(rt.Kind, status, rt.Hibernate, rep[h],"
125 }
126 ],
127 "required_integration": "New dedicated policy door and field reporting; health reports managed residency correctly; ordinary PATCH preserves policy without bypass.",
128 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
129 },
130 {
131 "file": "internal/console/apirestartscope.go",
132 "function": "func restartRouteRows(routes []registry.Route) []apiRestartRoute",
133 "current_policy_reads_or_writes": [
134 {
135 "line": 385,
136 "source": "Host: rt.Host, Environment: rt.Environment, Unit: rt.Unit, Hibernate: rt.Hibernate,"
137 }
138 ],
139 "required_integration": "Restart UI/API classification identifies activator ownership independently of sleep.",
140 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
141 },
142 {
143 "file": "internal/console/apiroutes.go",
144 "function": "func (s *Server) handleAPIRoutes(w http.ResponseWriter, r *http.Request)",
145 "current_policy_reads_or_writes": [
146 {
147 "line": 152,
148 "source": "Health: health[rt.Host], Hibernate: rt.Hibernate, Unit: rt.Unit,"
149 }
150 ],
151 "required_integration": "Include lifecycle policy in route response; Hibernate remains false.",
152 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
153 },
154 {
155 "file": "internal/console/instances.go",
156 "function": "func (f *instanceFetcher) Report(ctx context.Context, routes []RouteView) *InstanceReport",
157 "current_policy_reads_or_writes": [
158 {
159 "line": 90,
160 "source": "if rt.Host == \"\" || rt.Kind == \"static\" || rt.Status != \"ready\" || rt.Hibernate {"
161 }
162 ],
163 "required_integration": "Instance status collection includes resident activator instances.",
164 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
165 },
166 {
167 "file": "internal/console/overview.go",
168 "function": "func assembleOverview(view *AppView, acct string, metrics []InstanceMetrics, versions []VersionView) OverviewStats",
169 "current_policy_reads_or_writes": [
170 {
171 "line": 138,
172 "source": "} else if rt.Hibernate {"
173 }
174 ],
175 "required_integration": "Report desired residency and actual health accurately; do not infer externally owned from Hibernate=false.",
176 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
177 },
178 {
179 "file": "internal/console/overview.go",
180 "function": "func assembleInstanceRows(view *AppView, acct *Account, metrics []InstanceMetrics) []InstanceRow",
181 "current_policy_reads_or_writes": [
182 {
183 "line": 257,
184 "source": "Hibernate: rt.Hibernate,"
185 },
186 {
187 "line": 259,
188 "source": "HealthWord: healthWord(rt.Kind, status, rt.Hibernate, byHost[rt.Host].Reporting(),"
189 }
190 ],
191 "required_integration": "Report desired residency and actual health accurately; do not infer externally owned from Hibernate=false.",
192 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
193 },
194 {
195 "file": "internal/console/server.go",
196 "function": "func (s *Server) appResourceMetrics(ctx context.Context, view *AppView, acct *Account) []InstanceMetrics",
197 "current_policy_reads_or_writes": [
198 {
199 "line": 2643,
200 "source": "hib[rt.Host] = rt.Hibernate"
201 },
202 {
203 "line": 2654,
204 "source": "am[i].Hibernate = hib[am[i].Host]"
205 }
206 ],
207 "required_integration": "Resident exec metrics remain included despite Hibernate=false.",
208 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
209 },
210 {
211 "file": "internal/console/view.go",
212 "function": "func Assemble(regPath string, s release.Store, pub ed25519.PublicKey, acct string, apps []string, dns DNSTargets) ([]AppView, error)",
213 "current_policy_reads_or_writes": [
214 {
215 "line": 609,
216 "source": "Version: rt.Version, Channel: ch, Hibernate: rt.Hibernate,"
217 }
218 ],
219 "required_integration": "Carry lifecycle field into view projections; preserve ownership and health classification.",
220 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
221 },
222 {
223 "file": "internal/edge/edge.go",
224 "function": "func (e *Edge) Reload() error",
225 "current_policy_reads_or_writes": [
226 {
227 "line": 650,
228 "source": "hib := e.act != nil && t.Kind == \"instance\" && t.Hibernate && !viaTunnel"
229 },
230 {
231 "line": 677,
232 "source": "if e.act == nil && t.Kind == \"instance\" && t.Hibernate && !viaTunnel {"
233 }
234 ],
235 "required_integration": "Validated shared management predicate drives proxy/manager choice and RetireExcept set; unsupported policy refuses; canonical alias routes never duplicate process.",
236 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
237 },
238 {
239 "file": "internal/host/agent.go",
240 "function": "func makeStartRoute(reg *registry.Registry, startUnit func(unit string) error) func(host string) error",
241 "current_policy_reads_or_writes": [
242 {
243 "line": 2640,
244 "source": "if err != nil || rt == nil || rt.Hibernate || rt.Unit == \"\" {"
245 }
246 ],
247 "required_integration": "Boot/fast/serial/adoption integrate resident desired loop; false Hibernate must not invoke unit fallback; durable fence reconstruction precedes startup.",
248 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
249 },
250 {
251 "file": "internal/host/caps_pass.go",
252 "function": "func buildPlans(routes []registry.Route, load func(rt registry.Route) (*release.Manifest, error)) ([]caps.Plan, []string)",
253 "current_policy_reads_or_writes": [
254 {
255 "line": 192,
256 "source": "p := caps.Plan{Host: rt.Host, App: rt.App, Grants: g, Hibernate: rt.Hibernate}"
257 }
258 ],
259 "required_integration": "Explicit policy rejects unit capability plans; preserve existing unit behavior.",
260 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
261 },
262 {
263 "file": "internal/host/movespass.go",
264 "function": "func movesPass(ctx context.Context, s release.Store, w *movesWorker) error",
265 "current_policy_reads_or_writes": [
266 {
267 "line": 169,
268 "source": "if rec.Pool != \"\" || !rec.HibernateOrDefault() || (rec.Kind != \"\" && rec.Kind != \"instance\") {"
269 }
270 ],
271 "required_integration": "New policy never enters existing mirror/delete/purge move paths; stale record snapshots must refuse before side effects.",
272 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
273 },
274 {
275 "file": "internal/host/restart.go",
276 "function": "func restartPass(ctx context.Context, routes []registry.Route, store release.Store, marksPath string, restart func(host string) error)",
277 "current_policy_reads_or_writes": [
278 {
279 "line": 656,
280 "source": "if rt.Hibernate {"
281 }
282 ],
283 "required_integration": "Ordinary restart routes through managed exec stop then proactive resident restart; never unit fallback.",
284 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
285 },
286 {
287 "file": "internal/host/restartscope.go",
288 "function": "func restartScopeLeg(ctx context.Context, routes []registry.Route, store release.Store, apps [][2]string,",
289 "current_policy_reads_or_writes": [
290 {
291 "line": 256,
292 "source": "if rt.Hibernate {"
293 }
294 ],
295 "required_integration": "Scoped restart applies same manager distinction and cannot clear maintenance fence.",
296 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
297 },
298 {
299 "file": "internal/host/socket_advice.go",
300 "function": "func warnExternalSockets(routes []registry.Route, serving func(socket string) bool, owns func(host string) bool) []registry.Route",
301 "current_policy_reads_or_writes": [
302 {
303 "line": 38,
304 "source": "if rt.Hibernate && owns(rt.Host) {"
305 }
306 ],
307 "required_integration": "Resident exec with false Hibernate is owned, not an external socket warning; live owner proof still separate from listening socket.",
308 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
309 },
310 {
311 "file": "internal/host/socket_advice.go",
312 "function": "func socketAdvisoryLoop(reg *registry.Registry, svc *activator.Service)",
313 "current_policy_reads_or_writes": [
314 {
315 "line": 76,
316 "source": "if rt.Hibernate {"
317 }
318 ],
319 "required_integration": "Resident exec with false Hibernate is owned, not an external socket warning; live owner proof still separate from listening socket.",
320 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
321 },
322 {
323 "file": "internal/ops/hibernate_verify.go",
324 "function": "func HibernatingHosts(reg *registry.Registry) ([]HibernatingRoute, error)",
325 "current_policy_reads_or_writes": [
326 {
327 "line": 58,
328 "source": "if r.Hibernate && r.DBPath != \"\" {"
329 }
330 ],
331 "required_integration": "Include all activator-owned exec replica paths in lease-backed restore probe; reporting name must not misclassify as sleeping.",
332 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
333 },
334 {
335 "file": "internal/ops/litestream.go",
336 "function": "func FleetDBsWithSkipped(reg *registry.Registry, dataDir string) (dbs []string, skipped []string, err error)",
337 "current_policy_reads_or_writes": [
338 {
339 "line": 349,
340 "source": "if r.Hibernate && r.DBPath != \"\" {"
341 }
342 ],
343 "required_integration": "Exclude all activator-owned exec DBs from root replicator, not only Hibernate=true; prove no duplicate WAL replicator.",
344 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
345 },
346 {
347 "file": "internal/provision/provision.go",
348 "function": "func (r Record) HibernateOrDefault() bool",
349 "current_policy_reads_or_writes": [
350 {
351 "line": 320,
352 "source": "func (r Record) HibernateOrDefault() bool {"
353 },
354 {
355 "line": 321,
356 "source": "if r.Hibernate != nil {"
357 },
358 {
359 "line": 322,
360 "source": "return *r.Hibernate"
361 }
362 ],
363 "required_integration": "Additive field/default/validation; no unknown value fallback; preserve field across all serializers and CAS retry.",
364 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
365 },
366 {
367 "file": "internal/provision/provision.go",
368 "function": "func ValidateShape(rec Record) error",
369 "current_policy_reads_or_writes": [
370 {
371 "line": 430,
372 "source": "if rec.Hibernate != nil && *rec.Hibernate {"
373 },
374 {
375 "line": 444,
376 "source": "if len(rec.AddrsOrDefault()) > 0 && rec.Hibernate != nil && *rec.Hibernate {"
377 }
378 ],
379 "required_integration": "Additive field/default/validation; no unknown value fallback; preserve field across all serializers and CAS retry.",
380 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
381 },
382 {
383 "file": "internal/provision/reconcile.go",
384 "function": "func everywhereClass(rec Record) bool",
385 "current_policy_reads_or_writes": [
386 {
387 "line": 156,
388 "source": "if rec.HibernateOrDefault() {"
389 }
390 ],
391 "required_integration": "Transactional projection of lifecycle+false Hibernate with replication preserved; no everywhere/remote ownership widening; raw listing validates policy. Validate row/record lifecycle before convergeOwned; quarantine regression preserving v1 row/root exclusion; checked stop, no external handoff.",
392 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
393 },
394 {
395 "file": "internal/provision/reconcile.go",
396 "function": "func everywhereRoute(rt registry.Route) bool",
397 "current_policy_reads_or_writes": [
398 {
399 "line": 200,
400 "source": "if rt.Unit != \"\" || rt.Hibernate || rt.Backing != \"\" || rt.Tunnel != \"\" || rt.Caps != \"\" {"
401 }
402 ],
403 "required_integration": "Transactional projection of lifecycle+false Hibernate with replication preserved; no everywhere/remote ownership widening; raw listing validates policy. Validate row/record lifecycle before convergeOwned; quarantine regression preserving v1 row/root exclusion; checked stop, no external handoff.",
404 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
405 },
406 {
407 "file": "internal/provision/reconcile.go",
408 "function": "func routeFor(rec Record, dataDir, seed string) registry.Route",
409 "current_policy_reads_or_writes": [
410 {
411 "line": 294,
412 "source": "Hibernate: rec.HibernateOrDefault(), StatusNamed: rec.StatusNamedOrDefault(),"
413 }
414 ],
415 "required_integration": "Transactional projection of lifecycle+false Hibernate with replication preserved; no everywhere/remote ownership widening; raw listing validates policy. Validate row/record lifecycle before convergeOwned; quarantine regression preserving v1 row/root exclusion; checked stop, no external handoff.",
416 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
417 },
418 {
419 "file": "internal/provision/reconcile.go",
420 "function": "func Reconcile(ctx context.Context, s release.Store, reg *registry.Registry, cfg ReconcileConfig) error",
421 "current_policy_reads_or_writes": [
422 {
423 "line": 828,
424 "source": "if rec.Hibernate != nil && existing.Hibernate != *rec.Hibernate {"
425 },
426 {
427 "line": 830,
428 "source": "if !*rec.Hibernate && existing.Replication != \"\" {"
429 },
430 {
431 "line": 834,
432 "source": "log.Printf(\"provision: dry-run: would converge %s hibernate %v -> %v%s\", rec.Host, existing.Hibernate, *rec.Hibernate, dropped)"
433 },
434 {
435 "line": 835,
436 "source": "} else if err := reg.SetHibernate(rec.Host, *rec.Hibernate); err != nil {"
437 },
438 {
439 "line": 838,
440 "source": "log.Printf(\"provision: converged %s hibernate %v -> %v%s\", rec.Host, existing.Hibernate, *rec.Hibernate, dropped)"
441 }
442 ],
443 "required_integration": "Transactional projection of lifecycle+false Hibernate with replication preserved; no everywhere/remote ownership widening; raw listing validates policy. Validate row/record lifecycle before convergeOwned; quarantine regression preserving v1 row/root exclusion; checked stop, no external handoff.",
444 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
445 },
446 {
447 "file": "internal/registry/registry.go",
448 "function": "func scanRoute(scan func(...any) error) (Route, error)",
449 "current_policy_reads_or_writes": [
450 {
451 "line": 709,
452 "source": "t.Hibernate = hib != 0"
453 }
454 ],
455 "required_integration": "Add column, scan/upsert/fingerprint coverage; dedicated atomic lifecycle projection; legacy SetHibernate(false) clears replication and cannot be used for mode installation. Both Upsert INSERT and ON CONFLICT preserve rung iff OwnsExecReplication (including nonempty DBPath); no v1 downgrade.",
456 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
457 },
458 {
459 "file": "internal/registry/registry.go",
460 "function": "func (r *Registry) Upsert(t Route) error",
461 "current_policy_reads_or_writes": [
462 {
463 "line": 890,
464 "source": "if !t.Hibernate {"
465 },
466 {
467 "line": 926,
468 "source": "b2i(t.Hibernate), b2i(t.Canary), t.Replication, t.NextDue, t.Backing,"
469 }
470 ],
471 "required_integration": "Add column, scan/upsert/fingerprint coverage; dedicated atomic lifecycle projection; legacy SetHibernate(false) clears replication and cannot be used for mode installation. Both Upsert INSERT and ON CONFLICT preserve rung iff OwnsExecReplication (including nonempty DBPath); no v1 downgrade.",
472 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
473 },
474 {
475 "file": "internal/registry/registry.go",
476 "function": "func (r *Registry) SetHibernate(host string, on bool) error",
477 "current_policy_reads_or_writes": [
478 {
479 "line": 1565,
480 "source": "func (r *Registry) SetHibernate(host string, on bool) error {"
481 }
482 ],
483 "required_integration": "Add column, scan/upsert/fingerprint coverage; dedicated atomic lifecycle projection; legacy SetHibernate(false) clears replication and cannot be used for mode installation. Both Upsert INSERT and ON CONFLICT preserve rung iff OwnsExecReplication (including nonempty DBPath); no v1 downgrade.",
484 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
485 },
486 {
487 "file": "internal/release/adopt.go",
488 "function": "func PassFilter(ctx context.Context, reg *registry.Registry, s Store, pub ed25519.PublicKey, optDir string, restart func(host string) error, extra func(registry.Route) bool, opts ...PassOption) error",
489 "current_policy_reads_or_writes": [
490 {
491 "line": 772,
492 "source": "if rt.Hibernate {"
493 }
494 ],
495 "required_integration": "New mode is exec-managed despite false Hibernate; defer to proactive restart with pins/fence upheld, preserve unit-only capability paths.",
496 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
497 },
498 {
499 "file": "internal/release/adopt.go",
500 "function": "func adoptHost(ctx context.Context, reg *registry.Registry, s Store, optDir string, bake *FirstSeen, poisoned map[string]bool, rt registry.Route, ptr *ChannelPointer, restart func(host string) error, now time.Time, cfg passConfig, holds map[string]time.Duration, ignore bool)",
501 "current_policy_reads_or_writes": [
502 {
503 "line": 1207,
504 "source": "if rt.Hibernate {"
505 }
506 ],
507 "required_integration": "New mode is exec-managed despite false Hibernate; defer to proactive restart with pins/fence upheld, preserve unit-only capability paths.",
508 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
509 },
510 {
511 "file": "internal/release/adopt.go",
512 "function": "func capabilityPlan(rt registry.Route, m *Manifest, canRestart bool) (caps.Plan, error)",
513 "current_policy_reads_or_writes": [
514 {
515 "line": 1276,
516 "source": "Hibernate: rt.Hibernate,"
517 }
518 ],
519 "required_integration": "New mode is exec-managed despite false Hibernate; defer to proactive restart with pins/fence upheld, preserve unit-only capability paths.",
520 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
521 },
522 {
523 "file": "internal/schedule/converge.go",
524 "function": "func StatusFor(reg *registry.Registry, rt registry.Route, box string, now time.Time, idle time.Duration) (Status, error)",
525 "current_policy_reads_or_writes": [
526 {
527 "line": 329,
528 "source": "if !rt.Hibernate {"
529 }
530 ],
531 "required_integration": "Status describes no idle sleep while retaining actual scheduled-work behavior; timer frequency is never the residency mechanism.",
532 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
533 },
534 {
535 "file": "internal/status/snapshot.go",
536 "function": "func CollectBox(routes []registry.Route, p Probes, now time.Time) Box",
537 "current_policy_reads_or_writes": [
538 {
539 "line": 481,
540 "source": "case r.Hibernate:"
541 }
542 ],
543 "required_integration": "Report actual resident process/health/version; false Hibernate does not imply absence of activator-managed status.",
544 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
545 },
546 {
547 "file": "restart.go",
548 "function": "func runRestartScoped(sess *apiSession, acct apiAcct, app, host, environment string, dryRun bool)",
549 "current_policy_reads_or_writes": [
550 {
551 "line": 173,
552 "source": "if rt.Hibernate {"
553 }
554 ],
555 "required_integration": "CLI restart output correctly distinguishes resident managed lifecycle and does not promise unit start.",
556 "classification": "production consumer; requires regression or explicit unchanged-behavior assertion"
557 }
558 ],
559 "additional_consumers": [
560 {
561 "file_or_family": "internal/provision/provision.go",
562 "functions": "GetRecordETag/ListRecords/CreateRecord/UpdateRecord/updateRecord",
563 "required_integration": "All Record JSON serialization and decode preserves/validates lifecycle; record identity/projection stable."
564 },
565 {
566 "file_or_family": "internal/provision/reconcile.go",
567 "functions": "ListAllRecords/convergeOwned/routeFor",
568 "required_integration": "Raw listed records and projected Routes include same validated lifecycle; no hand-built second default."
569 },
570 {
571 "file_or_family": "internal/host/steering_loop.go",
572 "functions": "steeredRoutesFromRecords/steeringPass",
573 "required_integration": "Nonlocal owners do not start residents; record-to-route projections preserve lifecycle; empty region is not single-owner proof."
574 },
575 {
576 "file_or_family": "internal/appconfig/syncexec.go",
577 "functions": "SyncExec/syncExecHost/reapConfigEnv",
578 "required_integration": "Existing socket-based sync remains applicable; pin/fence checks prevent writes/reap while maintenance owns environment."
579 },
580 {
581 "file_or_family": "internal/host/schedule_wiring.go",
582 "functions": "newScheduleDeps/scheduleToken/activatorDeliverer",
583 "required_integration": "Preserve actual scheduling; local token preparation synchronized with fence from b6e5c2f; no frequency workaround."
584 },
585 {
586 "file_or_family": "internal/activator/backend_exec.go",
587 "functions": "Acquire/Restore/Seed/Start/instanceEnv",
588 "required_integration": "Preserve process user, DB/socket/lease/replica paths; resident recovery never calls Seed; handle returned resources on errors."
589 },
590 {
591 "file_or_family": "internal/activator/backend_unit.go",
592 "functions": "SplitBackend.pick/UnitBackend",
593 "required_integration": "New policy must select exec; unit Lease/Rep are inert and never satisfy exec maintenance proof."
594 },
595 {
596 "file_or_family": "internal/registry/registry.go",
597 "functions": "Fingerprint/SnapshotFingerprint/routeColumns",
598 "required_integration": "Field must reach fingerprints, persistent snapshots, SQL column order and migration; unknown policy fails closed."
599 },
600 {
601 "file_or_family": "internal/console/channelmove.go",
602 "functions": "executePendingRouteChannel",
603 "required_integration": "Delayed writes preserve field; active maintenance rechecked at execution."
604 },
605 {
606 "file_or_family": "internal/console/fleets.go",
607 "functions": "placeAppTarget",
608 "required_integration": "Refuse conflicting placement before console SQL/registry mutations, not only final record CAS."
609 },
610 {
611 "file_or_family": "internal/console/domainattach.go",
612 "functions": "attachDomain/detachDomain/rollbackAttach",
613 "required_integration": "Lifecycle/guard identity continuity survives aliases and failed cleanup; no host reuse bypass."
614 },
615 {
616 "file_or_family": "internal/release/trash.go",
617 "functions": "TrashApp/RestoreApp/PurgeApp",
618 "required_integration": "Reviewed lifecycle claims and guarded deletion remain mandatory; this mode adds no general claim kind."
619 },
620 {
621 "file_or_family": "internal/host/systemapply.go",
622 "functions": "systemApplier.Run and rollback paths",
623 "required_integration": "Enforced policy-aware binary floor before activation; signed-floor design is a separate review dependency."
624 },
625 {
626 "file_or_family": "internal/edge/storedoor.go",
627 "functions": "aclWrite",
628 "required_integration": "Keep policy records and control guards unwritable through app/fleet arbitrary store door."
629 },
630 {
631 "file_or_family": "instances_cli.go / apimode.go",
632 "functions": "new lifecycle command/API DTO and instance record response DTO",
633 "required_integration": "Supported proposed human-owner lifecycle operation; no raw box instructions. Clean-install mode remains separate."
634 },
635 {
636 "file_or_family": "internal/maintenanceguard / internal/activator/maintenance.go",
637 "functions": "guard reconstruction/FenceAndStop/resume integration",
638 "required_integration": "Guard/claim/fence primitives are merged in base11a; worker/resume integration remains unimplemented. Resident loop cannot override denial or synthesize resume."
639 },
640 {
641 "file_or_family": "internal/activator/activator.go",
642 "functions": "Shutdown/actWaking/wake publication",
643 "required_integration": "Close admission, cancel/join wake, checked cleanup of late Start resources, replica close before lease close; deadline means uncertainty, never acceptable orphan."
644 },
645 {
646 "file_or_family": "cli.go",
647 "functions": "runAdd/replicationRail",
648 "required_integration": "Use OwnsExecReplication including nonempty DBPath; retain legacy refusal/default behavior elsewhere."
649 }
650 ],
651 "source_hashes": {
652 "cli.go": "1b35d1d2f6cc61443a15221f5d70fc37e6d52c73faa8af3f9a141f52cb51b124",
653 "internal/activator/activator.go": "9848bb1b316449ca84ba846b2b41a2a1e5ba6b72f2c8e1c0d475d97d2b9fb1d4",
654 "internal/appconfig/sync.go": "a1641154ca3bbecf04165fc2108c758ec34c551d50bafe3eacbc640a59e3f08a",
655 "internal/caps/converge.go": "553b01bb2c152f5775eb3651718524b5bfef988ee96ca44655192f71feb36579",
656 "internal/console/apiinstancemove.go": "a8ffa0a75d5a12e53687157de95218cef483b7ee701789b9d56fe6a5bc8c102b",
657 "internal/console/apiinstances.go": "58f44f23b6395e40d156556c1105df7d7b26fc940f3ada4700ec4d4f95442159",
658 "internal/console/apirestartscope.go": "35547f8eb23c29956ce9ca09d60fbbc5548a686ce0d6a5a3cce80c2ece0e8031",
659 "internal/console/apiroutes.go": "153f6fd2e2134e7ee60beed4019513c5aa10340c99dc26fd8e9ae0e530475114",
660 "internal/console/instances.go": "d45c3b846b1f6764570c8fa3650d8d2297221045e9213359937b661a0ebe1ede",
661 "internal/console/overview.go": "e6fcf46d481660f9196f602596825bfbcd11fd0e8c835d26dc4c09ae73de03aa",
662 "internal/console/server.go": "107e5f4a7d287e689f3e88a2f5e5373f9613439f2018ed865ca105b4b6a586e8",
663 "internal/console/view.go": "715c3a0889c3437404ec81d3a80db7d780302baf6f6bc0f366d6854a132d37a9",
664 "internal/edge/edge.go": "f16eaf5ca39ed4994c323154f407f772eec09e817d6b95b804ef5191cb7c40eb",
665 "internal/host/agent.go": "e2f60e1b9e13be7a56a60b49ec8c596ee1b9f53a2e346d4a9623dc630336f290",
666 "internal/host/caps_pass.go": "24911bef47f0284da4c4702936c908ceafc0c4d118349453a2b15801602a1f32",
667 "internal/host/movespass.go": "9e55d771299270b5f1ef99fe783ffc10385661dd5c5047e0d14441ea846646bb",
668 "internal/host/restart.go": "b452c93bd3782555e572aeb000d92347d71d6322dbf8b784caf60e85c1e31e45",
669 "internal/host/restartscope.go": "27131be84fe7390ac6fcc9f248fcc212cf66ba6e101b6d176f3db70ca7d6a522",
670 "internal/host/socket_advice.go": "2d7c48b2990414552dec032efdbdad5aade83b3d731d6553224c36042bff307b",
671 "internal/ops/hibernate_verify.go": "47cf2718eea93528666ec52620c2999cd4e1d142aab85bae168a4d5d339b4178",
672 "internal/ops/litestream.go": "860481a660b07d64307611f0770ab350af8cf92eaf8fa6fe3600b36986ba5534",
673 "internal/provision/provision.go": "81f55646a25ec95428123bbc6b3ddb1a64fe333ba6f390ade90e52e7f5420d55",
674 "internal/provision/reconcile.go": "4bcd285f0096136a8f8d903b47d0aadc15a66d28e0139e63b44e786300ed39b1",
675 "internal/registry/registry.go": "e00d18720b8fcb93e23ec63cfa8be87cb2357ec76e891d1cd1b725f25272b824",
676 "internal/release/adopt.go": "c8baa3a48780125e6961d82b76457ddeb4c38819e097a9bac2ab34db8ebb9f74",
677 "internal/schedule/converge.go": "7f98ff1a89e733fd4766107a16776c4a5934075a7992e876cf264e96cfc7e4dd",
678 "internal/status/snapshot.go": "b0fa884b322025a6b7f78d135841647d9f7d9932d3d52d28e3ec948f4c087dcd",
679 "restart.go": "b75bacbc12ae85e48ceca42d890d0364de9455d2a0e5175cb74c2568bd445247"
680 },
681 "test_requirement": "Each family must have behavioral regression or explicit unchanged-case test. Mutation controls target manager-vs-idle, root replication exclusion, rung preservation, startup coalescing, no seed, and maintenance retry refusal."
682}
683