Merge remote-tracking branch 'origin/main' into worktree-pricing-plans-spec
.gitignore+2 −0apimode.go+340 −23appconfig_cli.go+18 −3canary.go+1 −1cli.go+21 −5cmd/console/main.go+92 −4config.go+8 −0deploy.go+18 −8deploy_test.go+47 −6docs/site/cli.md+131 −9docs/superpowers/plans/2026-09-07-relay-stun-turn.md+2048 −0docs/superpowers/specs/2026-09-02-object-storage-self-serve-design.md+563 −0docs/superpowers/specs/CODEX-BUILD-BRIEF-store-self-serve.md+129 −0features_cli.go+6 −1go.mod+10 −2go.sum+18 −2implementation/always-awake-consumers.json+682 −0implementation/always-awake-exec.md+224 −0implementation/maintenance-checker-launch.md+54 −0implementation/maintenance-checker-launch.schema.json+154 −0implementation/maintenance-exec.md+113 −0implementation/maintenance-launch.md+49 −0implementation/maintenance-protocol/proposal.json+348 −0implementation/maintenance-protocol/schemas.json+1214 −0implementation/runtime-contract-signing.md+76 −0infra/modules/region-host/README.md+27 −1infra/modules/region-host/main.tf+159 −0infra/modules/region-host/outputs.tf+10 −0infra/modules/region-host/variables.tf+31 −8instances_cli.go+12 −2instances_cli_test.go+20 −0internal/activator/activator.go+141 −30internal/activator/admission_ordering_test.go+70 −0internal/activator/maintenance.go+188 −0internal/activator/maintenance_test.go+618 −0internal/activator/scheduled_token.go+36 −0internal/activator/scheduled_token_test.go+96 −0internal/appconfig/configack.go+173 −0internal/appconfig/configack_test.go+229 −0internal/appconfig/sync.go+49 −8internal/appconfig/sync_test.go+28 −28internal/appconfig/syncexec.go+56 −9internal/appconfig/syncexec_test.go+137 −43internal/cgroup/strict.go+10 −0internal/cgroup/strict_kernel_linux_test.go+343 −0internal/cgroup/strict_linux.go+356 −0internal/cgroup/strict_linux_test.go+246 −0internal/cgroup/strict_other.go+17 −0internal/console/accountreview.go+99 −0internal/console/accountreview_test.go+283 −0internal/console/activity.go+45 −0internal/console/activity_test.go+111 −0internal/console/alertwatch.go+13 −0internal/console/analyticsview.go+1 −1internal/console/apicli.go+46 −7internal/console/apiconfig.go+9 −2internal/console/apidomains.go+10 −2internal/console/apidomains_test.go+40 −1internal/console/apifeatures.go+11 −3internal/console/apifeatures_test.go+11 −7internal/console/apiinstancemove.go+37 −4internal/console/apiinstancemove_test.go+6 −3internal/console/apiinstances.go+43 −4internal/console/apiinstances_test.go+28 −1internal/console/apilogs_test.go+169 −0internal/console/apirelay.go+747 −0internal/console/apirelay_test.go+743 −0internal/console/apirestartscope.go+16 −1internal/console/apirestartscope_test.go+31 −0internal/console/apiscan.go+11 −1internal/console/apiservices.go+9 −1internal/console/apistore.go+104 −26internal/console/apistore_entitlement.go+260 −0internal/console/apistore_entitlement_test.go+584 −0internal/console/apistore_provision.go+82 −0internal/console/apistore_provision_test.go+454 −0internal/console/apistore_test.go+7 −8internal/console/appdomains.go+8 −3internal/console/appdomains_test.go+4 −4internal/console/appsettings.go+89 −47internal/console/appsettings_gate_test.go+4 −4internal/console/appsettings_sections_test.go+120 −0internal/console/appsettings_test.go+33 −29internal/console/authcli.go+25 −0internal/console/browserrestart.go+148 −0internal/console/browserrestart_test.go+88 −0internal/console/channelmove.go+3 −3internal/console/confirm.go+2 −2internal/console/controlplane.go+3 −4internal/console/controlplane_test.go+12 −12internal/console/deployments.go+92 −0internal/console/deployments_test.go+83 −0internal/console/deploymentstatus.go+70 −0internal/console/deploymentstatus_test.go+49 −0internal/console/domainattach.go+17 −4internal/console/economicspage_test.go+2 −2internal/console/economicspass.go+1 −0internal/console/economicspass_test.go+40 −0internal/console/errorsview.go+1 −1internal/console/icons.go+2 −0internal/console/instancecopy.go+28 −0internal/console/instancepage.go+164 −0internal/console/instancepage_test.go+221 −0internal/console/instancesplacement.go+119 −60internal/console/instancesplacement_test.go+73 −45internal/console/listquery.go+58 −17internal/console/listquery_test.go+27 −0internal/console/logsview_test.go+31 −0internal/console/metricsview.go+9 −6internal/console/mismatchcopy.go+23 −0internal/console/overview.go+30 −56internal/console/overview_test.go+98 −63internal/console/ownership.go+21 −0internal/console/pendinghandlers.go+4 −4internal/console/pipelinepage.go+7 −2internal/console/pipelinepage_test.go+4 −4internal/console/placementdoors_test.go+137 −0internal/console/relayops.go+1527 −0internal/console/relayops_test.go+711 −0internal/console/releasesummary.go+12 −27internal/console/releasesummary_test.go+10 −11internal/console/server.go+472 −56internal/console/server_account_test.go+5 −8internal/console/server_test.go+50 −16internal/console/statuscopy.go+40 −0internal/console/statuscopy_test.go+70 −0internal/console/store.go+32 −9internal/console/store_test.go+25 −0internal/console/storelock.go+79 −0internal/console/storelock_test.go+111 −0internal/console/storenotify.go+96 −0internal/console/storenotify_test.go+170 −0internal/console/storepage.go+247 −0internal/console/storepage_test.go+215 −0internal/console/svcroutes_test.go+11 −2internal/console/templates/account_review.html+24 −0internal/console/templates/account_settings.html+24 −0internal/console/templates/app_activity.html+6 −3internal/console/templates/app_analytics.html+1 −0internal/console/templates/app_deployments.html+35 −0internal/console/templates/app_errors.html+1 −0internal/console/templates/app_instance.html+27 −0internal/console/templates/app_instances.html+39 −19internal/console/templates/app_logs.html+160 −13internal/console/templates/app_overview.html+16 −34internal/console/templates/app_releases.html+18 −29internal/console/templates/app_settings.html+42 −8internal/console/templates/appnav.html+9 −3internal/console/templates/apps.html+2 −2internal/console/templates/economics_accounts.html+1 −2internal/console/templates/fleet.html+1 −0internal/console/templates/layout.html+37 −1internal/console/templates/pipeline.html+7 −0internal/console/templates/store_approvals.html+27 −0internal/console/view.go+18 −66internal/console/view_test.go+6 −12internal/controlname/names.go+28 −0internal/edge/edge.go+28 −22internal/edge/noactivator_test.go+11 −9internal/edge/storedoor_test.go+36 −0internal/host/adoptlock.go+66 −0internal/host/agent.go+80 −2internal/host/bootstrap.go+92 −9internal/host/edgesfile.go+39 −4internal/host/edgesfile_test.go+4 −4internal/host/host_test.go+95 −4internal/host/metrics_loop.go+7 −0internal/host/restart.go+1 −12internal/host/schedule_token_fence_test.go+102 −0internal/host/schedule_wake_test.go+2 −2internal/host/schedule_wiring.go+11 −3internal/host/schedule_wiring_test.go+3 −3internal/host/systemapply.go+58 −2internal/host/systemapply_test.go+88 −0internal/host/units/carlos-relay.service+50 −0internal/host/versionsweep.go+94 −0internal/host/versionsweep_test.go+187 −0internal/lease/checkpoint.go+56 −0internal/lease/checkpoint_test.go+691 −0internal/lease/health.go+170 −0internal/lease/lease.go+129 −104internal/maintenance/envelope.go+196 −0internal/maintenance/envelope_test.go+235 −0internal/maintenance/input.go+127 −0internal/maintenance/input_test.go+118 −0internal/maintenance/result.go+90 −0internal/maintenance/result_test.go+195 −0internal/maintenance/testdata/envelope-vector.json+19 −0internal/maintenance/testdata/generate-vector.mjs+18 −0internal/maintenanceguard/guard.go+174 −0internal/maintenanceguard/guard_test.go+337 −0internal/maintenanceguard/json.go+106 −0internal/maintenanceguard/lifecycle.go+213 −0internal/maintenanceguard/store.go+89 −0internal/maintenanceguard/types.go+241 −0internal/maintenanceguard/wire_test.go+282 −0internal/objstore/aws.go+28 −4internal/objstore/aws_test.go+59 −3internal/objstore/enforce_test.go+3 −3internal/objstore/entitlement.go+127 −0internal/objstore/entitlement_test.go+160 −0internal/objstore/objstore.go+21 −0internal/objstore/walk.go+59 −4internal/objstore/walk_test.go+188 −24internal/privatefile/io_linux.go+114 −0internal/privatefile/io_linux_test.go+207 −0internal/privatefile/io_other.go+6 −0internal/privatefile/privatefile.go+25 −0internal/provision/maintenance.go+94 −0internal/provision/maintenance_test.go+233 −0internal/provision/provision.go+41 −31internal/provision/reconcile.go+4 −4internal/relay/authority.go+123 −0internal/relay/authority_test.go+70 −0internal/relay/config.go+71 −0internal/relay/config_appconfig_test.go+34 −0internal/relay/config_test.go+44 −0internal/relay/conn.go+110 −0internal/relay/conn_test.go+123 −0internal/relay/keys.go+94 −0internal/relay/keys_test.go+18 −0internal/relay/limits.go+241 −0internal/relay/limits_test.go+94 −0internal/relay/masters.go+118 −0internal/relay/masters_test.go+102 −0internal/relay/memstore_test.go+15 −0internal/relay/meter.go+224 −0internal/relay/meter_test.go+238 −0internal/relay/record.go+108 −0internal/relay/record_test.go+36 −0internal/relay/serve.go+478 −0internal/relay/serve_test.go+427 −0internal/relay/server.go+1140 −0internal/relay/server_test.go+659 −0internal/relay/vector_test.go+22 −0internal/release/conditional_delete.go+103 −0internal/release/conditional_delete_test.go+187 −0internal/release/qualified.go+3 −10internal/release/release.go+2 −6internal/release/sweep.go+201 −0internal/release/sweep_test.go+256 −0internal/status/dryrun.go+45 −8internal/status/dryrun_internal_test.go+27 −0internal/usage/passes_test.go+28 −0internal/usage/storage.go+6 −4mail_cli.go+1 −1main.go+5 −1mutation_message.go+70 −0mutation_message_test.go+234 −0relay.go+453 −0relay_test.go+351 −0restart.go+13 −4store.go+241 −13store_test.go+312 −3
CI passed — run details
.gitignoreLoading diff…
apimode.goLoading diff…
appconfig_cli.goLoading diff…
canary.goLoading diff…
cli.goLoading diff…
cmd/console/main.goLoading diff…
config.goLoading diff…
deploy.goLoading diff…
deploy_test.goLoading diff…
docs/site/cli.mdLoading diff…
docs/superpowers/plans/2026-09-07-relay-stun-turn.mdLoading diff…
docs/superpowers/specs/2026-09-02-object-storage-self-serve-design.mdLoading diff…
docs/superpowers/specs/CODEX-BUILD-BRIEF-store-self-serve.mdLoading diff…
features_cli.goLoading diff…
go.modLoading diff…
go.sumLoading diff…
implementation/always-awake-consumers.jsonLoading diff…
implementation/always-awake-exec.mdLoading diff…
implementation/maintenance-checker-launch.mdLoading diff…
implementation/maintenance-checker-launch.schema.jsonLoading diff…
implementation/maintenance-exec.mdLoading diff…
implementation/maintenance-launch.mdLoading diff…
implementation/maintenance-protocol/proposal.jsonLoading diff…
implementation/maintenance-protocol/schemas.jsonLoading diff…
implementation/runtime-contract-signing.mdLoading diff…
infra/modules/region-host/README.mdLoading diff…
infra/modules/region-host/main.tfLoading diff…
infra/modules/region-host/outputs.tfLoading diff…
infra/modules/region-host/variables.tfLoading diff…
instances_cli.goLoading diff…
instances_cli_test.goLoading diff…
internal/activator/activator.goLoading diff…
internal/activator/admission_ordering_test.goLoading diff…
internal/activator/maintenance.goLoading diff…
internal/activator/maintenance_test.goLoading diff…
internal/activator/scheduled_token.goLoading diff…
internal/activator/scheduled_token_test.goLoading diff…
internal/appconfig/configack.goLoading diff…
internal/appconfig/configack_test.goLoading diff…
internal/appconfig/sync.goLoading diff…
internal/appconfig/sync_test.goLoading diff…
internal/appconfig/syncexec.goLoading diff…
internal/appconfig/syncexec_test.goLoading diff…
internal/cgroup/strict.goLoading diff…
internal/cgroup/strict_kernel_linux_test.goLoading diff…
internal/cgroup/strict_linux.goLoading diff…
internal/cgroup/strict_linux_test.goLoading diff…
internal/cgroup/strict_other.goLoading diff…
internal/console/accountreview.goLoading diff…
internal/console/accountreview_test.goLoading diff…
internal/console/activity.goLoading diff…
internal/console/activity_test.goLoading diff…
internal/console/alertwatch.goLoading diff…
internal/console/analyticsview.goLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apiconfig.goLoading diff…
internal/console/apidomains.goLoading diff…
internal/console/apidomains_test.goLoading diff…
internal/console/apifeatures.goLoading diff…
internal/console/apifeatures_test.goLoading diff…
internal/console/apiinstancemove.goLoading diff…
internal/console/apiinstancemove_test.goLoading diff…
internal/console/apiinstances.goLoading diff…
internal/console/apiinstances_test.goLoading diff…
internal/console/apilogs_test.goLoading diff…
internal/console/apirelay.goLoading diff…
internal/console/apirelay_test.goLoading diff…
internal/console/apirestartscope.goLoading diff…
internal/console/apirestartscope_test.goLoading diff…
internal/console/apiscan.goLoading diff…
internal/console/apiservices.goLoading diff…
internal/console/apistore.goLoading diff…
internal/console/apistore_entitlement.goLoading diff…
internal/console/apistore_entitlement_test.goLoading diff…
internal/console/apistore_provision.goLoading diff…
internal/console/apistore_provision_test.goLoading diff…
internal/console/apistore_test.goLoading diff…
internal/console/appdomains.goLoading diff…
internal/console/appdomains_test.goLoading diff…
internal/console/appsettings.goLoading diff…
internal/console/appsettings_gate_test.goLoading diff…
internal/console/appsettings_sections_test.goLoading diff…
internal/console/appsettings_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/browserrestart.goLoading diff…
internal/console/browserrestart_test.goLoading diff…
internal/console/channelmove.goLoading diff…
internal/console/confirm.goLoading diff…
internal/console/controlplane.goLoading diff…
internal/console/controlplane_test.goLoading diff…
internal/console/deployments.goLoading diff…
internal/console/deployments_test.goLoading diff…
internal/console/deploymentstatus.goLoading diff…
internal/console/deploymentstatus_test.goLoading diff…
internal/console/domainattach.goLoading diff…
internal/console/economicspage_test.goLoading diff…
internal/console/economicspass.goLoading diff…
internal/console/economicspass_test.goLoading diff…
internal/console/errorsview.goLoading diff…
internal/console/icons.goLoading diff…
internal/console/instancecopy.goLoading diff…
internal/console/instancepage.goLoading diff…
internal/console/instancepage_test.goLoading diff…
internal/console/instancesplacement.goLoading diff…
internal/console/instancesplacement_test.goLoading diff…
internal/console/listquery.goLoading diff…
internal/console/listquery_test.goLoading diff…
internal/console/logsview_test.goLoading diff…
internal/console/metricsview.goLoading diff…
internal/console/mismatchcopy.goLoading diff…
internal/console/overview.goLoading diff…
internal/console/overview_test.goLoading diff…
internal/console/ownership.goLoading diff…
internal/console/pendinghandlers.goLoading diff…
internal/console/pipelinepage.goLoading diff…
internal/console/pipelinepage_test.goLoading diff…
internal/console/placementdoors_test.goLoading diff…
internal/console/relayops.goLoading diff…
internal/console/relayops_test.goLoading diff…
internal/console/releasesummary.goLoading diff…
internal/console/releasesummary_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/server_account_test.goLoading diff…
internal/console/server_test.goLoading diff…
internal/console/statuscopy.goLoading diff…
internal/console/statuscopy_test.goLoading diff…
internal/console/store.goLoading diff…
internal/console/store_test.goLoading diff…
internal/console/storelock.goLoading diff…
internal/console/storelock_test.goLoading diff…
internal/console/storenotify.goLoading diff…
internal/console/storenotify_test.goLoading diff…
internal/console/storepage.goLoading diff…
internal/console/storepage_test.goLoading diff…
internal/console/svcroutes_test.goLoading diff…
internal/console/templates/account_review.htmlLoading diff…
internal/console/templates/account_settings.htmlLoading diff…
internal/console/templates/app_activity.htmlLoading diff…
internal/console/templates/app_analytics.htmlLoading diff…
internal/console/templates/app_deployments.htmlLoading diff…
internal/console/templates/app_errors.htmlLoading diff…
internal/console/templates/app_instance.htmlLoading diff…
internal/console/templates/app_instances.htmlLoading diff…
internal/console/templates/app_logs.htmlLoading diff…
internal/console/templates/app_overview.htmlLoading diff…
internal/console/templates/app_releases.htmlLoading diff…
internal/console/templates/app_settings.htmlLoading diff…
internal/console/templates/appnav.htmlLoading diff…
internal/console/templates/apps.htmlLoading diff…
internal/console/templates/economics_accounts.htmlLoading diff…
internal/console/templates/fleet.htmlLoading diff…
internal/console/templates/layout.htmlLoading diff…
internal/console/templates/pipeline.htmlLoading diff…
internal/console/templates/store_approvals.htmlLoading diff…
internal/console/view.goLoading diff…
internal/console/view_test.goLoading diff…
internal/controlname/names.goLoading diff…
internal/edge/edge.goLoading diff…
internal/edge/noactivator_test.goLoading diff…
internal/edge/storedoor_test.goLoading diff…
internal/host/adoptlock.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/bootstrap.goLoading diff…
internal/host/edgesfile.goLoading diff…
internal/host/edgesfile_test.goLoading diff…
internal/host/host_test.goLoading diff…
internal/host/metrics_loop.goLoading diff…
internal/host/restart.goLoading diff…
internal/host/schedule_token_fence_test.goLoading diff…
internal/host/schedule_wake_test.goLoading diff…
internal/host/schedule_wiring.goLoading diff…
internal/host/schedule_wiring_test.goLoading diff…
internal/host/systemapply.goLoading diff…
internal/host/systemapply_test.goLoading diff…
internal/host/units/carlos-relay.serviceLoading diff…
internal/host/versionsweep.goLoading diff…
internal/host/versionsweep_test.goLoading diff…
internal/lease/checkpoint.goLoading diff…
internal/lease/checkpoint_test.goLoading diff…
internal/lease/health.goLoading diff…
internal/lease/lease.goLoading diff…
internal/maintenance/envelope.goLoading diff…
internal/maintenance/envelope_test.goLoading diff…
internal/maintenance/input.goLoading diff…
internal/maintenance/input_test.goLoading diff…
internal/maintenance/result.goLoading diff…
internal/maintenance/result_test.goLoading diff…
internal/maintenance/testdata/envelope-vector.jsonLoading diff…
internal/maintenance/testdata/generate-vector.mjsLoading diff…
internal/maintenanceguard/guard.goLoading diff…
internal/maintenanceguard/guard_test.goLoading diff…
internal/maintenanceguard/json.goLoading diff…
internal/maintenanceguard/lifecycle.goLoading diff…
internal/maintenanceguard/store.goLoading diff…
internal/maintenanceguard/types.goLoading diff…
internal/maintenanceguard/wire_test.goLoading diff…
internal/objstore/aws.goLoading diff…
internal/objstore/aws_test.goLoading diff…
internal/objstore/enforce_test.goLoading diff…
internal/objstore/entitlement.goLoading diff…
internal/objstore/entitlement_test.goLoading diff…
internal/objstore/objstore.goLoading diff…
internal/objstore/walk.goLoading diff…
internal/objstore/walk_test.goLoading diff…
internal/privatefile/io_linux.goLoading diff…
internal/privatefile/io_linux_test.goLoading diff…
internal/privatefile/io_other.goLoading diff…
internal/privatefile/privatefile.goLoading diff…
internal/provision/maintenance.goLoading diff…
internal/provision/maintenance_test.goLoading diff…
internal/provision/provision.goLoading diff…
internal/provision/reconcile.goLoading diff…
internal/relay/authority.goLoading diff…
internal/relay/authority_test.goLoading diff…
internal/relay/config.goLoading diff…
internal/relay/config_appconfig_test.goLoading diff…
internal/relay/config_test.goLoading diff…
internal/relay/conn.goLoading diff…
internal/relay/conn_test.goLoading diff…
internal/relay/keys.goLoading diff…
internal/relay/keys_test.goLoading diff…
internal/relay/limits.goLoading diff…
internal/relay/limits_test.goLoading diff…
internal/relay/masters.goLoading diff…
internal/relay/masters_test.goLoading diff…
internal/relay/memstore_test.goLoading diff…
internal/relay/meter.goLoading diff…
internal/relay/meter_test.goLoading diff…
internal/relay/record.goLoading diff…
internal/relay/record_test.goLoading diff…
internal/relay/serve.goLoading diff…
internal/relay/serve_test.goLoading diff…
internal/relay/server.goLoading diff…
internal/relay/server_test.goLoading diff…
internal/relay/vector_test.goLoading diff…
internal/release/conditional_delete.goLoading diff…
internal/release/conditional_delete_test.goLoading diff…
internal/release/qualified.goLoading diff…
internal/release/release.goLoading diff…
internal/release/sweep.goLoading diff…
internal/release/sweep_test.goLoading diff…
internal/status/dryrun.goLoading diff…
internal/status/dryrun_internal_test.goLoading diff…
internal/usage/passes_test.goLoading diff…
internal/usage/storage.goLoading diff…
mail_cli.goLoading diff…
main.goLoading diff…
mutation_message.goLoading diff…
mutation_message_test.goLoading diff…
relay.goLoading diff…
relay_test.goLoading diff…
restart.goLoading diff…
store.goLoading diff…
store_test.goLoading diff…