carlos / platform Public

Merge main into self-serve object storage

358 commits, and the one that matters here is virus scanning: EnsureUser now
takes a DenyTag and storePolicyJSON writes an enforce Deny, which is exactly
the change the scanning plan said "must land before the first member grant,
not after it". It has. The first store this deployment ever provisions will
be created under its final policy rather than migrated into one.

Four conflicts were textual and additive — a usage line, a switch, two
terraform blocks, a struct. One was not:

regrantForScanning calls objstore.Grant, which grew a `source` parameter on
this branch. Scanning's re-grant exists only to converge an app's inline
policy, so it now carries the source from the record rather than restating
"operator". Grant writes that block only when it is absent, so an
account-approval store keeps its provenance either way today; the point is
that toggling scan enforcement can never come to mean "an operator granted
this" if that ever changes.

The closed-door count is 26 + 4: scanning's system and antivirus doors plus
this branch's four store-entitlement doors.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AuiZoEUxEooEfFBAs8XPLB
Paul Campbell pushed by paul@keymail.dev 633384904efbcf906463225d31f63d85bb93fdef parent 6319509parent 16593de
480 files changed, +97948 −1902
  • .amadan/ci.d/30-minio-contract +23 −8
  • .gitignore +2 −0
  • AGENTS.md +90 −0
  • accounts_list_test.go +2 −2
  • analytics_cmd.go +195 −0
  • analytics_cmd_test.go +130 −0
  • apimode.go +796 −50
  • apimode_test.go +15 −9
  • appconfig_cli.go +253 −24
  • appconfig_restart_test.go +142 −0
  • apps.go +13 −1
  • apps_buildprobe.go +97 −0
  • auth.go +10 −1
  • canary.go +588 −0
  • canary_test.go +266 −0
  • cli.go +249 −19
  • cmd/console/main.go +240 −13
  • cmd/console/wiring_test.go +66 −0
  • config.go +39 −0
  • config_test.go +43 −3
  • deploy.go +51 −9
  • deploy_e2e_test.go +16 −2
  • deploy_test.go +47 −6
  • docs/site/cli.md +506 −21
  • docs/superpowers/plans/2026-09-01-carloku-scanning-rollout.md +249 −0
  • docs/superpowers/plans/2026-09-01-object-storage-virus-scanning.md +1680 −0
  • docs/superpowers/plans/2026-09-02-scan-on-demand.md +558 −0
  • docs/superpowers/plans/2026-09-03-path-based-routing.md +1929 −0
  • docs/superpowers/plans/2026-09-04-carlos-canary.md +108 −0
  • docs/superpowers/plans/2026-09-04-scanning-to-deployable.md +425 −0
  • docs/superpowers/plans/2026-09-06-carlos-system-update-pinfra.md +17 −0
  • docs/superpowers/plans/2026-09-06-carlos-system-update.md +5934 −0
  • docs/superpowers/plans/2026-09-07-analytics-step2-edge-counting.md +2224 −0
  • docs/superpowers/plans/2026-09-07-errors-step1-log-and-edge.md +3287 −0
  • docs/superpowers/plans/2026-09-07-password-gate.md +2130 −0
  • docs/superpowers/plans/2026-09-07-relay-stun-turn.md +2048 −0
  • docs/superpowers/specs/2026-09-01-object-storage-virus-scanning-design.md +696 −0
  • docs/superpowers/specs/2026-09-02-path-based-routing-design.md +610 −0
  • docs/superpowers/specs/2026-09-02-scan-on-demand-design.md +1005 −0
  • docs/superpowers/specs/2026-09-06-carlos-system-update-design.md +946 −0
  • docs/superpowers/specs/2026-09-07-errors-and-analytics-design.md +843 −0
  • docs/superpowers/specs/2026-09-07-media-platform-roadmap-design.md +1000 −0
  • docs/superpowers/specs/2026-09-07-password-gate-design.md +445 −0
  • docs/superpowers/specs/2026-09-07-relay-stun-turn-design.md +725 −0
  • docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R2.md +169 −0
  • docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R3.md +106 −0
  • docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R4.md +96 −0
  • docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R5.md +36 −0
  • docs/superpowers/specs/CODEX-FINDINGS-MEDIA.md +196 −0
  • docs/superpowers/specs/CODEX-FINDINGS-RELAY-R2.md +205 −0
  • docs/superpowers/specs/CODEX-FINDINGS-RELAY-R3.md +156 −0
  • docs/superpowers/specs/CODEX-FINDINGS-RELAY-R4.md +61 −0
  • docs/superpowers/specs/CODEX-FINDINGS-RELAY-R5.md +31 −0
  • docs/superpowers/specs/CODEX-FINDINGS-RELAY-R6.md +15 −0
  • docs/superpowers/specs/CODEX-FINDINGS-RELAY.md +237 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEDIA.md +96 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-RELAY.md +69 −0
  • domains_cli.go +69 −1
  • domains_cli_test.go +95 −0
  • errors_cmd.go +146 −0
  • errors_cmd_test.go +25 −0
  • features_cli.go +6 −1
  • gate_cli.go +232 −0
  • gate_cli_test.go +273 −0
  • go.mod +10 −2
  • go.sum +18 −2
  • implementation/always-awake-consumers.json +682 −0
  • implementation/always-awake-exec.md +224 −0
  • implementation/maintenance-checker-launch.md +54 −0
  • implementation/maintenance-checker-launch.schema.json +154 −0
  • implementation/maintenance-exec.md +113 −0
  • implementation/maintenance-launch.md +49 −0
  • implementation/maintenance-protocol/proposal.json +348 −0
  • implementation/maintenance-protocol/schemas.json +1214 −0
  • implementation/runtime-contract-signing.md +76 −0
  • infra/modules/README.md +133 −9
  • infra/modules/region-host/README.md +113 −0
  • infra/modules/region-host/main.tf +127 −2
  • infra/modules/region-host/outputs.tf +5 −0
  • infra/modules/region-host/variables.tf +80 −1
  • instances_cli.go +114 −9
  • instances_cli_test.go +20 −0
  • instances_environment_test.go +98 −0
  • internal/activator/activator.go +226 −40
  • internal/activator/admission_ordering_test.go +70 −0
  • internal/activator/maintenance.go +188 −0
  • internal/activator/maintenance_test.go +618 −0
  • internal/activator/scheduled_token.go +36 −0
  • internal/activator/scheduled_token_test.go +96 −0
  • internal/activator/waketiming_test.go +74 −0
  • internal/analytics/bots.go +32 −0
  • internal/analytics/bots_test.go +27 −0
  • internal/analytics/day.go +174 −0
  • internal/analytics/day_test.go +94 −0
  • internal/analytics/hll.go +116 −0
  • internal/analytics/hll_test.go +71 −0
  • internal/analytics/meter.go +265 −0
  • internal/analytics/meter_test.go +239 −0
  • internal/analytics/read.go +127 −0
  • internal/analytics/read_test.go +46 −0
  • internal/analytics/salt.go +98 −0
  • internal/analytics/salt_test.go +64 −0
  • internal/analytics/topk.go +106 −0
  • internal/analytics/topk_test.go +57 −0
  • internal/appconfig/appconfig.go +1 −1
  • internal/appconfig/awaitingrestart_test.go +263 −0
  • internal/appconfig/configack.go +173 −0
  • internal/appconfig/configack_test.go +229 −0
  • internal/appconfig/crypto.go +31 −0
  • internal/appconfig/crypto_test.go +58 −5
  • internal/appconfig/sync.go +49 −8
  • internal/appconfig/sync_test.go +28 −28
  • internal/appconfig/syncexec.go +335 −53
  • internal/appconfig/syncexec_test.go +182 −42
  • internal/apperr/fingerprint.go +76 −0
  • internal/apperr/fingerprint_test.go +62 −0
  • internal/apperr/group.go +80 −0
  • internal/apperr/group_test.go +33 −0
  • internal/apperr/read.go +122 −0
  • internal/apperr/read_test.go +87 −0
  • internal/apperr/record.go +77 −0
  • internal/apperr/sanitize.go +130 −0
  • internal/apperr/sanitize_test.go +53 −0
  • internal/apperr/sink.go +158 −0
  • internal/apperr/sink_test.go +172 −0
  • internal/applog/chunk.go +57 −16
  • internal/applog/chunk_test.go +58 −0
  • internal/applog/read.go +35 −19
  • internal/applog/read_test.go +29 −0
  • internal/awsinv/ec2.go +19 −0
  • internal/cgroup/strict.go +10 −0
  • internal/cgroup/strict_kernel_linux_test.go +343 −0
  • internal/cgroup/strict_linux.go +356 −0
  • internal/cgroup/strict_linux_test.go +246 −0
  • internal/cgroup/strict_other.go +17 −0
  • internal/clamd/clamd.go +296 −0
  • internal/clamd/clamd_test.go +308 −0
  • internal/console/accountreview.go +99 −0
  • internal/console/accountreview_test.go +283 −0
  • internal/console/activity.go +45 −0
  • internal/console/activity_test.go +111 −0
  • internal/console/analyticsview.go +409 −0
  • internal/console/apianalytics.go +94 −0
  • internal/console/apianalytics_test.go +184 −0
  • internal/console/apibuildprobe.go +77 −0
  • internal/console/apibuildprobe_test.go +88 −0
  • internal/console/apicli.go +55 −13
  • internal/console/apiconfig.go +94 −3
  • internal/console/apiconfigrestart_test.go +208 −0
  • internal/console/apidomainpaths_test.go +348 −0
  • internal/console/apidomains.go +179 −11
  • internal/console/apidomains_test.go +40 −1
  • internal/console/apierrors.go +155 −0
  • internal/console/apierrors_test.go +242 −0
  • internal/console/apifeatures.go +11 −3
  • internal/console/apifeatures_test.go +11 −7
  • internal/console/apiinstancemove.go +37 −4
  • internal/console/apiinstancemove_test.go +6 −3
  • internal/console/apiinstances.go +160 −26
  • internal/console/apiinstances_test.go +153 −6
  • internal/console/apiinstancesenvironment_test.go +196 −0
  • internal/console/apilogs_test.go +169 −0
  • internal/console/apiregions.go +3 −1
  • internal/console/apirelay.go +747 −0
  • internal/console/apirelay_test.go +743 −0
  • internal/console/apirestartscope.go +405 −0
  • internal/console/apirestartscope_test.go +453 −0
  • internal/console/apiroutes.go +63 −1
  • internal/console/apiroutes_test.go +113 −1
  • internal/console/apiscan.go +633 −0
  • internal/console/apiscan_test.go +549 −0
  • internal/console/apiservices.go +6 −0
  • internal/console/apiservices_test.go +35 −0
  • internal/console/apistatusinstances.go +162 −0
  • internal/console/apistatusinstances_test.go +198 −0
  • internal/console/apistore.go +8 −0
  • internal/console/apisystem.go +194 −0
  • internal/console/apisystem_test.go +165 −0
  • internal/console/apisystemupdate.go +739 −0
  • internal/console/apisystemupdate_test.go +492 −0
  • internal/console/appdomains.go +8 −3
  • internal/console/appdomains_test.go +4 −4
  • internal/console/appsettings.go +216 −47
  • internal/console/appsettings_gate_test.go +132 −0
  • internal/console/appsettings_sections_test.go +120 −0
  • internal/console/appsettings_test.go +33 −29
  • internal/console/archestate.go +248 −0
  • internal/console/archestate_test.go +285 −0
  • internal/console/archfits_test.go +108 −0
  • internal/console/archgraph.go +288 −44
  • internal/console/archgraph_test.go +125 −37
  • internal/console/archlayout.go +150 −80
  • internal/console/archlayout_test.go +118 −56
  • internal/console/archlegibility_test.go +112 −17
  • internal/console/archpage.go +6 −1
  • internal/console/archpage_test.go +48 −0
  • internal/console/archregion.go +179 −0
  • internal/console/archregion_test.go +343 −0
  • internal/console/authcli.go +148 −1
  • internal/console/browserrestart.go +148 −0
  • internal/console/browserrestart_test.go +88 −0
  • internal/console/channelmove.go +5 −5
  • internal/console/confirm.go +2 −2
  • internal/console/controlplane.go +3 −4
  • internal/console/controlplane_test.go +107 −12
  • internal/console/deletion_test.go +1 −1
  • internal/console/deployments.go +92 −0
  • internal/console/deployments_test.go +83 −0
  • internal/console/deploymentstatus.go +70 −0
  • internal/console/deploymentstatus_test.go +49 −0
  • internal/console/domainattach.go +17 −4
  • internal/console/economicspage_test.go +2 −2
  • internal/console/economicspass.go +16 −3
  • internal/console/errorsview.go +301 −0
  • internal/console/icons.go +2 −0
  • internal/console/instancecopy.go +28 −0
  • internal/console/instancepage.go +164 −0
  • internal/console/instancepage_test.go +221 −0
  • internal/console/instancesplacement.go +130 −20
  • internal/console/instancesplacement_test.go +103 −0
  • internal/console/listquery.go +58 −17
  • internal/console/listquery_test.go +27 −0
  • internal/console/logsview_test.go +31 −0
  • internal/console/metricsview.go +9 −6
  • internal/console/mismatchcopy.go +23 −0
  • internal/console/overview.go +30 −56
  • internal/console/overview_test.go +98 −63
  • internal/console/ownership.go +16 −1
  • internal/console/pendinghandlers.go +4 −4
  • internal/console/pipelinepage.go +7 −2
  • internal/console/pipelinepage_test.go +4 −4
  • internal/console/placementdoors_test.go +137 −0
  • internal/console/relayops.go +1527 −0
  • internal/console/relayops_test.go +711 −0
  • internal/console/releasesummary.go +12 −27
  • internal/console/releasesummary_test.go +10 −11
  • internal/console/scanpass.go +290 −0
  • internal/console/scanpass_test.go +508 −0
  • internal/console/server.go +610 −59
  • internal/console/server_account_test.go +5 −8
  • internal/console/server_test.go +50 −16
  • internal/console/statuscopy.go +40 −0
  • internal/console/statuscopy_test.go +70 −0
  • internal/console/store.go +32 −9
  • internal/console/store_test.go +25 −0
  • internal/console/svcpage.go +22 −0
  • internal/console/svcpage_test.go +26 −0
  • internal/console/svcprincipal.go +19 −0
  • internal/console/svcroutes_test.go +83 −6
  • internal/console/templates/account_review.html +24 −0
  • internal/console/templates/account_settings.html +44 −0
  • internal/console/templates/app_activity.html +6 −3
  • internal/console/templates/app_analytics.html +46 −0
  • internal/console/templates/app_deployments.html +35 −0
  • internal/console/templates/app_errors.html +80 −0
  • internal/console/templates/app_instance.html +27 −0
  • internal/console/templates/app_instances.html +39 −19
  • internal/console/templates/app_logs.html +160 −13
  • internal/console/templates/app_overview.html +16 −34
  • internal/console/templates/app_releases.html +18 −29
  • internal/console/templates/app_settings.html +129 −8
  • internal/console/templates/appnav.html +10 −2
  • internal/console/templates/apps.html +2 −2
  • internal/console/templates/architecture.html +78 −13
  • internal/console/templates/economics_accounts.html +1 −2
  • internal/console/templates/layout.html +58 −3
  • internal/console/templates/pipeline.html +7 −0
  • internal/console/view.go +18 −66
  • internal/console/view_test.go +6 −12
  • internal/controlname/names.go +28 −0
  • internal/domains/aliases.go +158 −14
  • internal/domains/aliases_paths_test.go +269 −0
  • internal/domains/claimcache_test.go +2 −1
  • internal/domains/claims.go +145 −0
  • internal/domains/claims_test.go +3 −2
  • internal/domains/paths_test.go +254 −0
  • internal/edge/analytics.go +127 −0
  • internal/edge/analytics_test.go +111 −0
  • internal/edge/answered.go +37 −0
  • internal/edge/answered_test.go +19 −0
  • internal/edge/edge.go +458 −24
  • internal/edge/edgeerrors_test.go +172 −0
  • internal/edge/gate_test.go +508 −0
  • internal/edge/noactivator_test.go +97 −0
  • internal/edge/path_e2e_test.go +117 −0
  • internal/edge/path_test.go +471 −0
  • internal/edge/purge_header.go +55 −2
  • internal/edge/purge_path_test.go +156 −0
  • internal/edge/storedoor.go +55 −21
  • internal/edge/storedoor_test.go +30 −2
  • internal/edge/usagemeter.go +34 −5
  • internal/edge/usagemeter_test.go +26 −0
  • internal/fleetapi/fleetapi.go +26 −0
  • internal/fleetapi/fleetapi_test.go +27 −0
  • internal/gate/cookie.go +61 −0
  • internal/gate/gate.go +259 −0
  • internal/gate/gate_test.go +399 −0
  • internal/gate/limiter.go +64 −0
  • internal/gate/login.html +55 −0
  • internal/gate/page.go +41 −0
  • internal/host/adoptlock.go +66 −0
  • internal/host/agent.go +175 −12
  • internal/host/bootstrap.go +183 −16
  • internal/host/edgesfile.go +56 −7
  • internal/host/edgesfile_test.go +62 −11
  • internal/host/errship.go +109 −0
  • internal/host/errship_test.go +37 −0
  • internal/host/fileowner_other.go +10 −0
  • internal/host/fileowner_unix.go +20 −0
  • internal/host/host_test.go +166 −3
  • internal/host/logship.go +7 −22
  • internal/host/logship_test.go +2 −9
  • internal/host/metrics_loop.go +7 −0
  • internal/host/probes.go +14 −0
  • internal/host/registryowner.go +237 −0
  • internal/host/registryowner_test.go +368 −0
  • internal/host/restart.go +168 −33
  • internal/host/restart_test.go +34 −13
  • internal/host/restartscope.go +289 −0
  • internal/host/restartscope_test.go +577 −0
  • internal/host/schedule_token_fence_test.go +102 −0
  • internal/host/schedule_wake_test.go +2 −2
  • internal/host/schedule_wiring.go +11 −3
  • internal/host/schedule_wiring_test.go +3 −3
  • internal/host/systemapply.go +1086 −0
  • internal/host/systemapply_other.go +20 −0
  • internal/host/systemapply_test.go +1255 −0
  • internal/host/systemapply_unix.go +55 −0
  • internal/host/systemapply_unix_test.go +63 −0
  • internal/host/systemleg.go +305 −0
  • internal/host/systemleg_test.go +365 −0
  • internal/host/systemprobe.go +48 −0
  • internal/host/systemprobe_test.go +83 −0
  • internal/host/systemstate.go +253 −0
  • internal/host/systemstate_test.go +131 −0
  • internal/host/systemunits.go +138 −0
  • internal/host/systemunits_test.go +203 −0
  • internal/host/telemetry_pass.go +69 −0
  • internal/host/telemetry_pass_test.go +38 −0
  • internal/host/units/carlos-relay.service +50 −0
  • internal/host/units/carlos-system-recover.service +36 −0
  • internal/host/units/carlos-system-update.path +13 −0
  • internal/host/units/carlos-system-update.service +42 −0
  • internal/host/usage_loop.go +31 −6
  • internal/host/usage_loop_test.go +31 −3
  • internal/host/versionsweep.go +94 −0
  • internal/host/versionsweep_test.go +187 −0
  • internal/lease/checkpoint.go +56 −0
  • internal/lease/checkpoint_test.go +691 −0
  • internal/lease/health.go +170 −0
  • internal/lease/lease.go +129 −104
  • internal/maintenance/envelope.go +196 −0
  • internal/maintenance/envelope_test.go +235 −0
  • internal/maintenance/input.go +127 −0
  • internal/maintenance/input_test.go +118 −0
  • internal/maintenance/result.go +90 −0
  • internal/maintenance/result_test.go +195 −0
  • internal/maintenance/testdata/envelope-vector.json +19 −0
  • internal/maintenance/testdata/generate-vector.mjs +18 −0
  • internal/maintenanceguard/guard.go +174 −0
  • internal/maintenanceguard/guard_test.go +337 −0
  • internal/maintenanceguard/json.go +106 −0
  • internal/maintenanceguard/lifecycle.go +213 −0
  • internal/maintenanceguard/store.go +89 −0
  • internal/maintenanceguard/types.go +241 −0
  • internal/maintenanceguard/wire_test.go +282 −0
  • internal/objstore/aws.go +93 −5
  • internal/objstore/aws_test.go +21 −8
  • internal/objstore/clamav.go +568 −0
  • internal/objstore/clamav_test.go +1251 −0
  • internal/objstore/contract_test.go +465 −0
  • internal/objstore/enforce_test.go +237 −0
  • internal/objstore/memprovisioner.go +24 −2
  • internal/objstore/memprovisioner_test.go +1 −1
  • internal/objstore/memscanner.go +252 −0
  • internal/objstore/objstore.go +48 −0
  • internal/objstore/provisioner.go +5 −1
  • internal/objstore/queue.go +550 −0
  • internal/objstore/queue_test.go +897 −0
  • internal/objstore/scanblock_test.go +153 −0
  • internal/objstore/scanner.go +144 −0
  • internal/objstore/scanner_contract_test.go +141 −0
  • internal/objstore/scanresult.go +221 −0
  • internal/objstore/scanresult_test.go +216 −0
  • internal/objstore/scantag.go +163 −0
  • internal/objstore/scantag_test.go +262 −0
  • internal/objstore/sidecar.go +137 −0
  • internal/objstore/sidecar_test.go +125 −0
  • internal/objstore/sweep.go +421 −0
  • internal/objstore/sweep_test.go +568 −0
  • internal/objstore/teardown_scan_test.go +127 −0
  • internal/objstore/walk.go +55 −7
  • internal/objstore/walk_test.go +14 −14
  • internal/privatefile/io_linux.go +114 −0
  • internal/privatefile/io_linux_test.go +207 −0
  • internal/privatefile/io_other.go +6 −0
  • internal/privatefile/privatefile.go +25 −0
  • internal/provision/maintenance.go +94 −0
  • internal/provision/maintenance_test.go +233 −0
  • internal/provision/provision.go +59 −31
  • internal/provision/provision_test.go +11 −0
  • internal/provision/reconcile.go +68 −6
  • internal/provision/reconcile_test.go +112 −0
  • internal/publicrelease/feed.go +130 −0
  • internal/publicrelease/feed_test.go +87 −0
  • internal/registry/paths_test.go +132 −0
  • internal/registry/registry.go +324 −27
  • internal/registry/registry_test.go +77 −0
  • internal/registry/replication_test.go +219 −0
  • internal/relay/authority.go +123 −0
  • internal/relay/authority_test.go +70 −0
  • internal/relay/config.go +71 −0
  • internal/relay/config_appconfig_test.go +34 −0
  • internal/relay/config_test.go +44 −0
  • internal/relay/conn.go +110 −0
  • internal/relay/conn_test.go +123 −0
  • internal/relay/keys.go +94 −0
  • internal/relay/keys_test.go +18 −0
  • internal/relay/limits.go +241 −0
  • internal/relay/limits_test.go +94 −0
  • internal/relay/masters.go +118 −0
  • internal/relay/masters_test.go +102 −0
  • internal/relay/memstore_test.go +15 −0
  • internal/relay/meter.go +224 −0
  • internal/relay/meter_test.go +238 −0
  • internal/relay/record.go +108 −0
  • internal/relay/record_test.go +36 −0
  • internal/relay/serve.go +478 −0
  • internal/relay/serve_test.go +427 −0
  • internal/relay/server.go +1140 −0
  • internal/relay/server_test.go +659 −0
  • internal/relay/vector_test.go +22 −0
  • internal/release/adopt.go +11 −4
  • internal/release/conditional_delete.go +103 −0
  • internal/release/conditional_delete_test.go +187 −0
  • internal/release/fetch.go +70 −0
  • internal/release/fetch_test.go +105 −0
  • internal/release/pagelister_test.go +199 −0
  • internal/release/qualified.go +3 −10
  • internal/release/release.go +2 −6
  • internal/release/restartscope.go +314 −0
  • internal/release/restartscope_test.go +301 −0
  • internal/release/stage_blocked_test.go +72 −0
  • internal/release/store.go +149 −0
  • internal/release/sweep.go +201 −0
  • internal/release/sweep_test.go +256 −0
  • internal/release/system.go +95 −0
  • internal/release/system_test.go +100 −0
  • internal/release/systempointer.go +315 −0
  • internal/release/systempointer_test.go +212 −0
  • internal/status/dryrun.go +45 −8
  • internal/status/dryrun_internal_test.go +27 −0
  • internal/status/snapshot.go +29 −6
  • internal/status/snapshot_test.go +50 −0
  • internal/svcrole/service_role_test.go +51 −0
  • internal/svcrole/svcrole.go +13 −2
  • internal/telemetry/telemetry.go +139 −0
  • internal/telemetry/telemetry_test.go +47 −0
  • mail_cli.go +1 −1
  • main.go +24 −2
  • mutation_message.go +70 −0
  • mutation_message_test.go +234 −0
  • relay.go +453 −0
  • relay_test.go +351 −0
  • restart.go +162 −7
  • restart_test.go +182 −0
  • route_replication_test.go +333 −0
  • routes_cli.go +51 −4
  • routes_cli_test.go +118 −3
  • scan.go +361 −0
  • scan_test.go +198 −0
  • services.go +3 −3
  • status_instances.go +161 −0
  • status_instances_test.go +43 −0
  • store.go +46 −3
  • store_test.go +1 −1
  • storescan_test.go +94 −0
  • system.go +568 −0
  • system_test.go +247 −0
  • update.go +15 −68

CI passed — run details

.amadan/ci.d/30-minio-contract

Loading diff…

.gitignore

Loading diff…

AGENTS.md

Loading diff…

accounts_list_test.go

Loading diff…

analytics_cmd.go

Loading diff…

analytics_cmd_test.go

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

appconfig_restart_test.go

Loading diff…

apps.go

Loading diff…

apps_buildprobe.go

Loading diff…

auth.go

Loading diff…

canary.go

Loading diff…

canary_test.go

Loading diff…

cli.go

Loading diff…

cmd/console/main.go

Loading diff…

cmd/console/wiring_test.go

Loading diff…

config.go

Loading diff…

config_test.go

Loading diff…

deploy.go

Loading diff…

deploy_e2e_test.go

Loading diff…

deploy_test.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/plans/2026-09-01-carloku-scanning-rollout.md

Loading diff…

docs/superpowers/plans/2026-09-01-object-storage-virus-scanning.md

Loading diff…

docs/superpowers/plans/2026-09-02-scan-on-demand.md

Loading diff…

docs/superpowers/plans/2026-09-03-path-based-routing.md

Loading diff…

docs/superpowers/plans/2026-09-04-carlos-canary.md

Loading diff…

docs/superpowers/plans/2026-09-04-scanning-to-deployable.md

Loading diff…

docs/superpowers/plans/2026-09-06-carlos-system-update-pinfra.md

Loading diff…

docs/superpowers/plans/2026-09-06-carlos-system-update.md

Loading diff…

docs/superpowers/plans/2026-09-07-analytics-step2-edge-counting.md

Loading diff…

docs/superpowers/plans/2026-09-07-errors-step1-log-and-edge.md

Loading diff…

docs/superpowers/plans/2026-09-07-password-gate.md

Loading diff…

docs/superpowers/plans/2026-09-07-relay-stun-turn.md

Loading diff…

docs/superpowers/specs/2026-09-01-object-storage-virus-scanning-design.md

Loading diff…

docs/superpowers/specs/2026-09-02-path-based-routing-design.md

Loading diff…

docs/superpowers/specs/2026-09-02-scan-on-demand-design.md

Loading diff…

docs/superpowers/specs/2026-09-06-carlos-system-update-design.md

Loading diff…

docs/superpowers/specs/2026-09-07-errors-and-analytics-design.md

Loading diff…

docs/superpowers/specs/2026-09-07-media-platform-roadmap-design.md

Loading diff…

docs/superpowers/specs/2026-09-07-password-gate-design.md

Loading diff…

docs/superpowers/specs/2026-09-07-relay-stun-turn-design.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R2.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R3.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R4.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-MEDIA-R5.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-MEDIA.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-RELAY-R2.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-RELAY-R3.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-RELAY-R4.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-RELAY-R5.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-RELAY-R6.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-RELAY.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEDIA.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-RELAY.md

Loading diff…

domains_cli.go

Loading diff…

domains_cli_test.go

Loading diff…

errors_cmd.go

Loading diff…

errors_cmd_test.go

Loading diff…

features_cli.go

Loading diff…

gate_cli.go

Loading diff…

gate_cli_test.go

Loading diff…

go.mod

Loading diff…

go.sum

Loading diff…

implementation/always-awake-consumers.json

Loading diff…

implementation/always-awake-exec.md

Loading diff…

implementation/maintenance-checker-launch.md

Loading diff…

implementation/maintenance-checker-launch.schema.json

Loading diff…

implementation/maintenance-exec.md

Loading diff…

implementation/maintenance-launch.md

Loading diff…

implementation/maintenance-protocol/proposal.json

Loading diff…

implementation/maintenance-protocol/schemas.json

Loading diff…

implementation/runtime-contract-signing.md

Loading diff…

infra/modules/README.md

Loading diff…

infra/modules/region-host/README.md

Loading diff…

infra/modules/region-host/main.tf

Loading diff…

infra/modules/region-host/outputs.tf

Loading diff…

infra/modules/region-host/variables.tf

Loading diff…

instances_cli.go

Loading diff…

instances_cli_test.go

Loading diff…

instances_environment_test.go

Loading diff…

internal/activator/activator.go

Loading diff…

internal/activator/admission_ordering_test.go

Loading diff…

internal/activator/maintenance.go

Loading diff…

internal/activator/maintenance_test.go

Loading diff…

internal/activator/scheduled_token.go

Loading diff…

internal/activator/scheduled_token_test.go

Loading diff…

internal/activator/waketiming_test.go

Loading diff…

internal/analytics/bots.go

Loading diff…

internal/analytics/bots_test.go

Loading diff…

internal/analytics/day.go

Loading diff…

internal/analytics/day_test.go

Loading diff…

internal/analytics/hll.go

Loading diff…

internal/analytics/hll_test.go

Loading diff…

internal/analytics/meter.go

Loading diff…

internal/analytics/meter_test.go

Loading diff…

internal/analytics/read.go

Loading diff…

internal/analytics/read_test.go

Loading diff…

internal/analytics/salt.go

Loading diff…

internal/analytics/salt_test.go

Loading diff…

internal/analytics/topk.go

Loading diff…

internal/analytics/topk_test.go

Loading diff…

internal/appconfig/appconfig.go

Loading diff…

internal/appconfig/awaitingrestart_test.go

Loading diff…

internal/appconfig/configack.go

Loading diff…

internal/appconfig/configack_test.go

Loading diff…

internal/appconfig/crypto.go

Loading diff…

internal/appconfig/crypto_test.go

Loading diff…

internal/appconfig/sync.go

Loading diff…

internal/appconfig/sync_test.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/appconfig/syncexec_test.go

Loading diff…

internal/apperr/fingerprint.go

Loading diff…

internal/apperr/fingerprint_test.go

Loading diff…

internal/apperr/group.go

Loading diff…

internal/apperr/group_test.go

Loading diff…

internal/apperr/read.go

Loading diff…

internal/apperr/read_test.go

Loading diff…

internal/apperr/record.go

Loading diff…

internal/apperr/sanitize.go

Loading diff…

internal/apperr/sanitize_test.go

Loading diff…

internal/apperr/sink.go

Loading diff…

internal/apperr/sink_test.go

Loading diff…

internal/applog/chunk.go

Loading diff…

internal/applog/chunk_test.go

Loading diff…

internal/applog/read.go

Loading diff…

internal/applog/read_test.go

Loading diff…

internal/awsinv/ec2.go

Loading diff…

internal/cgroup/strict.go

Loading diff…

internal/cgroup/strict_kernel_linux_test.go

Loading diff…

internal/cgroup/strict_linux.go

Loading diff…

internal/cgroup/strict_linux_test.go

Loading diff…

internal/cgroup/strict_other.go

Loading diff…

internal/clamd/clamd.go

Loading diff…

internal/clamd/clamd_test.go

Loading diff…

internal/console/accountreview.go

Loading diff…

internal/console/accountreview_test.go

Loading diff…

internal/console/activity.go

Loading diff…

internal/console/activity_test.go

Loading diff…

internal/console/analyticsview.go

Loading diff…

internal/console/apianalytics.go

Loading diff…

internal/console/apianalytics_test.go

Loading diff…

internal/console/apibuildprobe.go

Loading diff…

internal/console/apibuildprobe_test.go

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apiconfig.go

Loading diff…

internal/console/apiconfigrestart_test.go

Loading diff…

internal/console/apidomainpaths_test.go

Loading diff…

internal/console/apidomains.go

Loading diff…

internal/console/apidomains_test.go

Loading diff…

internal/console/apierrors.go

Loading diff…

internal/console/apierrors_test.go

Loading diff…

internal/console/apifeatures.go

Loading diff…

internal/console/apifeatures_test.go

Loading diff…

internal/console/apiinstancemove.go

Loading diff…

internal/console/apiinstancemove_test.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstances_test.go

Loading diff…

internal/console/apiinstancesenvironment_test.go

Loading diff…

internal/console/apilogs_test.go

Loading diff…

internal/console/apiregions.go

Loading diff…

internal/console/apirelay.go

Loading diff…

internal/console/apirelay_test.go

Loading diff…

internal/console/apirestartscope.go

Loading diff…

internal/console/apirestartscope_test.go

Loading diff…

internal/console/apiroutes.go

Loading diff…

internal/console/apiroutes_test.go

Loading diff…

internal/console/apiscan.go

Loading diff…

internal/console/apiscan_test.go

Loading diff…

internal/console/apiservices.go

Loading diff…

internal/console/apiservices_test.go

Loading diff…

internal/console/apistatusinstances.go

Loading diff…

internal/console/apistatusinstances_test.go

Loading diff…

internal/console/apistore.go

Loading diff…

internal/console/apisystem.go

Loading diff…

internal/console/apisystem_test.go

Loading diff…

internal/console/apisystemupdate.go

Loading diff…

internal/console/apisystemupdate_test.go

Loading diff…

internal/console/appdomains.go

Loading diff…

internal/console/appdomains_test.go

Loading diff…

internal/console/appsettings.go

Loading diff…

internal/console/appsettings_gate_test.go

Loading diff…

internal/console/appsettings_sections_test.go

Loading diff…

internal/console/appsettings_test.go

Loading diff…

internal/console/archestate.go

Loading diff…

internal/console/archestate_test.go

Loading diff…

internal/console/archfits_test.go

Loading diff…

internal/console/archgraph.go

Loading diff…

internal/console/archgraph_test.go

Loading diff…

internal/console/archlayout.go

Loading diff…

internal/console/archlayout_test.go

Loading diff…

internal/console/archlegibility_test.go

Loading diff…

internal/console/archpage.go

Loading diff…

internal/console/archpage_test.go

Loading diff…

internal/console/archregion.go

Loading diff…

internal/console/archregion_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/browserrestart.go

Loading diff…

internal/console/browserrestart_test.go

Loading diff…

internal/console/channelmove.go

Loading diff…

internal/console/confirm.go

Loading diff…

internal/console/controlplane.go

Loading diff…

internal/console/controlplane_test.go

Loading diff…

internal/console/deletion_test.go

Loading diff…

internal/console/deployments.go

Loading diff…

internal/console/deployments_test.go

Loading diff…

internal/console/deploymentstatus.go

Loading diff…

internal/console/deploymentstatus_test.go

Loading diff…

internal/console/domainattach.go

Loading diff…

internal/console/economicspage_test.go

Loading diff…

internal/console/economicspass.go

Loading diff…

internal/console/errorsview.go

Loading diff…

internal/console/icons.go

Loading diff…

internal/console/instancecopy.go

Loading diff…

internal/console/instancepage.go

Loading diff…

internal/console/instancepage_test.go

Loading diff…

internal/console/instancesplacement.go

Loading diff…

internal/console/instancesplacement_test.go

Loading diff…

internal/console/listquery.go

Loading diff…

internal/console/listquery_test.go

Loading diff…

internal/console/logsview_test.go

Loading diff…

internal/console/metricsview.go

Loading diff…

internal/console/mismatchcopy.go

Loading diff…

internal/console/overview.go

Loading diff…

internal/console/overview_test.go

Loading diff…

internal/console/ownership.go

Loading diff…

internal/console/pendinghandlers.go

Loading diff…

internal/console/pipelinepage.go

Loading diff…

internal/console/pipelinepage_test.go

Loading diff…

internal/console/placementdoors_test.go

Loading diff…

internal/console/relayops.go

Loading diff…

internal/console/relayops_test.go

Loading diff…

internal/console/releasesummary.go

Loading diff…

internal/console/releasesummary_test.go

Loading diff…

internal/console/scanpass.go

Loading diff…

internal/console/scanpass_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_account_test.go

Loading diff…

internal/console/server_test.go

Loading diff…

internal/console/statuscopy.go

Loading diff…

internal/console/statuscopy_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/store_test.go

Loading diff…

internal/console/svcpage.go

Loading diff…

internal/console/svcpage_test.go

Loading diff…

internal/console/svcprincipal.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/console/templates/account_review.html

Loading diff…

internal/console/templates/account_settings.html

Loading diff…

internal/console/templates/app_activity.html

Loading diff…

internal/console/templates/app_analytics.html

Loading diff…

internal/console/templates/app_deployments.html

Loading diff…

internal/console/templates/app_errors.html

Loading diff…

internal/console/templates/app_instance.html

Loading diff…

internal/console/templates/app_instances.html

Loading diff…

internal/console/templates/app_logs.html

Loading diff…

internal/console/templates/app_overview.html

Loading diff…

internal/console/templates/app_releases.html

Loading diff…

internal/console/templates/app_settings.html

Loading diff…

internal/console/templates/appnav.html

Loading diff…

internal/console/templates/apps.html

Loading diff…

internal/console/templates/architecture.html

Loading diff…

internal/console/templates/economics_accounts.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/console/templates/pipeline.html

Loading diff…

internal/console/view.go

Loading diff…

internal/console/view_test.go

Loading diff…

internal/controlname/names.go

Loading diff…

internal/domains/aliases.go

Loading diff…

internal/domains/aliases_paths_test.go

Loading diff…

internal/domains/claimcache_test.go

Loading diff…

internal/domains/claims.go

Loading diff…

internal/domains/claims_test.go

Loading diff…

internal/domains/paths_test.go

Loading diff…

internal/edge/analytics.go

Loading diff…

internal/edge/analytics_test.go

Loading diff…

internal/edge/answered.go

Loading diff…

internal/edge/answered_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/edgeerrors_test.go

Loading diff…

internal/edge/gate_test.go

Loading diff…

internal/edge/noactivator_test.go

Loading diff…

internal/edge/path_e2e_test.go

Loading diff…

internal/edge/path_test.go

Loading diff…

internal/edge/purge_header.go

Loading diff…

internal/edge/purge_path_test.go

Loading diff…

internal/edge/storedoor.go

Loading diff…

internal/edge/storedoor_test.go

Loading diff…

internal/edge/usagemeter.go

Loading diff…

internal/edge/usagemeter_test.go

Loading diff…

internal/fleetapi/fleetapi.go

Loading diff…

internal/fleetapi/fleetapi_test.go

Loading diff…

internal/gate/cookie.go

Loading diff…

internal/gate/gate.go

Loading diff…

internal/gate/gate_test.go

Loading diff…

internal/gate/limiter.go

Loading diff…

internal/gate/login.html

Loading diff…

internal/gate/page.go

Loading diff…

internal/host/adoptlock.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/bootstrap.go

Loading diff…

internal/host/edgesfile.go

Loading diff…

internal/host/edgesfile_test.go

Loading diff…

internal/host/errship.go

Loading diff…

internal/host/errship_test.go

Loading diff…

internal/host/fileowner_other.go

Loading diff…

internal/host/fileowner_unix.go

Loading diff…

internal/host/host_test.go

Loading diff…

internal/host/logship.go

Loading diff…

internal/host/logship_test.go

Loading diff…

internal/host/metrics_loop.go

Loading diff…

internal/host/probes.go

Loading diff…

internal/host/registryowner.go

Loading diff…

internal/host/registryowner_test.go

Loading diff…

internal/host/restart.go

Loading diff…

internal/host/restart_test.go

Loading diff…

internal/host/restartscope.go

Loading diff…

internal/host/restartscope_test.go

Loading diff…

internal/host/schedule_token_fence_test.go

Loading diff…

internal/host/schedule_wake_test.go

Loading diff…

internal/host/schedule_wiring.go

Loading diff…

internal/host/schedule_wiring_test.go

Loading diff…

internal/host/systemapply.go

Loading diff…

internal/host/systemapply_other.go

Loading diff…

internal/host/systemapply_test.go

Loading diff…

internal/host/systemapply_unix.go

Loading diff…

internal/host/systemapply_unix_test.go

Loading diff…

internal/host/systemleg.go

Loading diff…

internal/host/systemleg_test.go

Loading diff…

internal/host/systemprobe.go

Loading diff…

internal/host/systemprobe_test.go

Loading diff…

internal/host/systemstate.go

Loading diff…

internal/host/systemstate_test.go

Loading diff…

internal/host/systemunits.go

Loading diff…

internal/host/systemunits_test.go

Loading diff…

internal/host/telemetry_pass.go

Loading diff…

internal/host/telemetry_pass_test.go

Loading diff…

internal/host/units/carlos-relay.service

Loading diff…

internal/host/units/carlos-system-recover.service

Loading diff…

internal/host/units/carlos-system-update.path

Loading diff…

internal/host/units/carlos-system-update.service

Loading diff…

internal/host/usage_loop.go

Loading diff…

internal/host/usage_loop_test.go

Loading diff…

internal/host/versionsweep.go

Loading diff…

internal/host/versionsweep_test.go

Loading diff…

internal/lease/checkpoint.go

Loading diff…

internal/lease/checkpoint_test.go

Loading diff…

internal/lease/health.go

Loading diff…

internal/lease/lease.go

Loading diff…

internal/maintenance/envelope.go

Loading diff…

internal/maintenance/envelope_test.go

Loading diff…

internal/maintenance/input.go

Loading diff…

internal/maintenance/input_test.go

Loading diff…

internal/maintenance/result.go

Loading diff…

internal/maintenance/result_test.go

Loading diff…

internal/maintenance/testdata/envelope-vector.json

Loading diff…

internal/maintenance/testdata/generate-vector.mjs

Loading diff…

internal/maintenanceguard/guard.go

Loading diff…

internal/maintenanceguard/guard_test.go

Loading diff…

internal/maintenanceguard/json.go

Loading diff…

internal/maintenanceguard/lifecycle.go

Loading diff…

internal/maintenanceguard/store.go

Loading diff…

internal/maintenanceguard/types.go

Loading diff…

internal/maintenanceguard/wire_test.go

Loading diff…

internal/objstore/aws.go

Loading diff…

internal/objstore/aws_test.go

Loading diff…

internal/objstore/clamav.go

Loading diff…

internal/objstore/clamav_test.go

Loading diff…

internal/objstore/contract_test.go

Loading diff…

internal/objstore/enforce_test.go

Loading diff…

internal/objstore/memprovisioner.go

Loading diff…

internal/objstore/memprovisioner_test.go

Loading diff…

internal/objstore/memscanner.go

Loading diff…

internal/objstore/objstore.go

Loading diff…

internal/objstore/provisioner.go

Loading diff…

internal/objstore/queue.go

Loading diff…

internal/objstore/queue_test.go

Loading diff…

internal/objstore/scanblock_test.go

Loading diff…

internal/objstore/scanner.go

Loading diff…

internal/objstore/scanner_contract_test.go

Loading diff…

internal/objstore/scanresult.go

Loading diff…

internal/objstore/scanresult_test.go

Loading diff…

internal/objstore/scantag.go

Loading diff…

internal/objstore/scantag_test.go

Loading diff…

internal/objstore/sidecar.go

Loading diff…

internal/objstore/sidecar_test.go

Loading diff…

internal/objstore/sweep.go

Loading diff…

internal/objstore/sweep_test.go

Loading diff…

internal/objstore/teardown_scan_test.go

Loading diff…

internal/objstore/walk.go

Loading diff…

internal/objstore/walk_test.go

Loading diff…

internal/privatefile/io_linux.go

Loading diff…

internal/privatefile/io_linux_test.go

Loading diff…

internal/privatefile/io_other.go

Loading diff…

internal/privatefile/privatefile.go

Loading diff…

internal/provision/maintenance.go

Loading diff…

internal/provision/maintenance_test.go

Loading diff…

internal/provision/provision.go

Loading diff…

internal/provision/provision_test.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

internal/provision/reconcile_test.go

Loading diff…

internal/publicrelease/feed.go

Loading diff…

internal/publicrelease/feed_test.go

Loading diff…

internal/registry/paths_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/registry_test.go

Loading diff…

internal/registry/replication_test.go

Loading diff…

internal/relay/authority.go

Loading diff…

internal/relay/authority_test.go

Loading diff…

internal/relay/config.go

Loading diff…

internal/relay/config_appconfig_test.go

Loading diff…

internal/relay/config_test.go

Loading diff…

internal/relay/conn.go

Loading diff…

internal/relay/conn_test.go

Loading diff…

internal/relay/keys.go

Loading diff…

internal/relay/keys_test.go

Loading diff…

internal/relay/limits.go

Loading diff…

internal/relay/limits_test.go

Loading diff…

internal/relay/masters.go

Loading diff…

internal/relay/masters_test.go

Loading diff…

internal/relay/memstore_test.go

Loading diff…

internal/relay/meter.go

Loading diff…

internal/relay/meter_test.go

Loading diff…

internal/relay/record.go

Loading diff…

internal/relay/record_test.go

Loading diff…

internal/relay/serve.go

Loading diff…

internal/relay/serve_test.go

Loading diff…

internal/relay/server.go

Loading diff…

internal/relay/server_test.go

Loading diff…

internal/relay/vector_test.go

Loading diff…

internal/release/adopt.go

Loading diff…

internal/release/conditional_delete.go

Loading diff…

internal/release/conditional_delete_test.go

Loading diff…

internal/release/fetch.go

Loading diff…

internal/release/fetch_test.go

Loading diff…

internal/release/pagelister_test.go

Loading diff…

internal/release/qualified.go

Loading diff…

internal/release/release.go

Loading diff…

internal/release/restartscope.go

Loading diff…

internal/release/restartscope_test.go

Loading diff…

internal/release/stage_blocked_test.go

Loading diff…

internal/release/store.go

Loading diff…

internal/release/sweep.go

Loading diff…

internal/release/sweep_test.go

Loading diff…

internal/release/system.go

Loading diff…

internal/release/system_test.go

Loading diff…

internal/release/systempointer.go

Loading diff…

internal/release/systempointer_test.go

Loading diff…

internal/status/dryrun.go

Loading diff…

internal/status/dryrun_internal_test.go

Loading diff…

internal/status/snapshot.go

Loading diff…

internal/status/snapshot_test.go

Loading diff…

internal/svcrole/service_role_test.go

Loading diff…

internal/svcrole/svcrole.go

Loading diff…

internal/telemetry/telemetry.go

Loading diff…

internal/telemetry/telemetry_test.go

Loading diff…

mail_cli.go

Loading diff…

main.go

Loading diff…

mutation_message.go

Loading diff…

mutation_message_test.go

Loading diff…

relay.go

Loading diff…

relay_test.go

Loading diff…

restart.go

Loading diff…

restart_test.go

Loading diff…

route_replication_test.go

Loading diff…

routes_cli.go

Loading diff…

routes_cli_test.go

Loading diff…

scan.go

Loading diff…

scan_test.go

Loading diff…

services.go

Loading diff…

status_instances.go

Loading diff…

status_instances_test.go

Loading diff…

store.go

Loading diff…

store_test.go

Loading diff…

storescan_test.go

Loading diff…

system.go

Loading diff…

system_test.go

Loading diff…

update.go

Loading diff…