carlos / platform Public

Merge main: take the redaction pass's harbourmail fixture

main's open-sourcing redaction (#317) renamed walk_verify_test.go's fixture
domain from seapointish to harbourmail — completely, zero refs left — while
walk_enable_test.go deliberately keeps one seapointish test that declares
its own app. Both fixtures now build harbourmail.

So every conflict here was the same shape: main's redacted domain against
my added Deployment parameter, and the resolution takes both. My new
reconciliation tests then had to follow the fixture rather than the name I
wrote them against, or they would have been verifying a domain the fixture
no longer creates. The one test I added to walk_enable_test.go declares its
own app and stays as it was, matching the seapointish test main kept beside
it.

Gate on the merge result: 36 packages, vet + gofmt clean, GOOS=darwin.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Paul Campbell pushed by paul@keymail.dev 2393da66b2b5ebf6d9f7f3e05e33ed4a653be062 parent c95dbc1parent 0d3cf9d
397 files changed, +27582 −84084
  • .amadan/README.md +40 −18
  • .amadan/ci.d/10-gate +28 −4
  • .amadan/ci.d/30-minio-contract +37 −25
  • .github/workflows/ci.yml +0 −186
  • AGENTS.md +42 −23
  • LICENSE +373 −0
  • README.md +41 −41
  • account_choose.go +6 −6
  • account_choose_test.go +1 −1
  • accounts.go +42 −39
  • accounts_resolve_test.go +8 −8
  • apimode.go +248 −51
  • apimode_test.go +120 −23
  • appconfig_cli.go +69 −60
  • apps.go +45 −41
  • apps_test.go +1 −1
  • auth.go +24 −20
  • auth_e2e_test.go +2 −2
  • auth_test.go +1 −1
  • cli.go +255 −231
  • cli_test.go +27 −27
  • cmd/console/main.go +27 −9
  • config.go +1 −1
  • config_e2e_test.go +1 −1
  • config_test.go +2 −2
  • deploy.go +174 −96
  • deploy_e2e_test.go +167 −0
  • deploy_test.go +177 −18
  • deploy_wizard_test.go +3 −3
  • docs/site/anchors.json +15 −0
  • docs/site/cli.md +723 −0
  • docs/site/index.md +17 −0
  • docs/site/nav.json +14 −0
  • docs/superpowers/plans/2026-08-01-plan-a-platform-core.md +0 −327
  • docs/superpowers/plans/2026-08-01-plan-b-flagship-kass.md +0 −148
  • docs/superpowers/plans/2026-08-01-plan-c-tito-selfhosted.md +0 −78
  • docs/superpowers/plans/2026-08-01-plan-fleet-status-page.md +0 −485
  • docs/superpowers/plans/2026-08-01-roadmap.md +0 −58
  • docs/superpowers/plans/2026-08-02-app-config-secrets.md +0 −1728
  • docs/superpowers/plans/2026-08-02-edge-cache-before-wake-platform.md +0 −1363
  • docs/superpowers/plans/2026-08-02-exec-config-delivery.md +0 −945
  • docs/superpowers/plans/2026-08-02-host-process-monitoring.md +0 −732
  • docs/superpowers/plans/2026-08-02-plan-domains.md +0 −188
  • docs/superpowers/plans/2026-08-02-plan-environments.md +0 −110
  • docs/superpowers/plans/2026-08-02-plan-keymail-flagship.md +0 −420
  • docs/superpowers/plans/2026-08-02-plan-multi-account.md +0 −373
  • docs/superpowers/plans/2026-08-02-plan-pipelines.md +0 −174
  • docs/superpowers/plans/2026-08-02-plan-woodstar-flagship.md +0 −381
  • docs/superpowers/plans/2026-08-02-platform-dev-environment.md +0 −533
  • docs/superpowers/plans/2026-08-02-rastrillo-icon-vendoring.md +0 −227
  • docs/superpowers/plans/2026-08-02-rastrillo-ui-component-library.md +0 −2410
  • docs/superpowers/plans/2026-08-03-app-capabilities.md +0 −902
  • docs/superpowers/plans/2026-08-03-cli-console-api.md +0 −315
  • docs/superpowers/plans/2026-08-03-external-socket-advisory.md +0 −413
  • docs/superpowers/plans/2026-08-03-open-ledgers-primitive.md +0 −1739
  • docs/superpowers/plans/2026-08-03-rastrillo-blog-example.md +0 −3331
  • docs/superpowers/plans/2026-08-04-account-slugs.md +0 −916
  • docs/superpowers/plans/2026-08-04-config-console-api.md +0 −382
  • docs/superpowers/plans/2026-08-04-console-bake-controls.md +0 −1761
  • docs/superpowers/plans/2026-08-04-console-default-resolution.md +0 −939
  • docs/superpowers/plans/2026-08-04-deletion-policy.md +0 −697
  • docs/superpowers/plans/2026-08-04-instance-provisioning.md +0 −661
  • docs/superpowers/plans/2026-08-04-pi-enablement.md +0 −247
  • docs/superpowers/plans/2026-08-04-remote-host-agent.md +0 −1261
  • docs/superpowers/plans/2026-08-05-customer-fleets.md +0 −299
  • docs/superpowers/plans/2026-08-05-wildcard-certs.md +0 −2073
  • docs/superpowers/plans/2026-08-06-console-redesign.md +0 −1342
  • docs/superpowers/plans/2026-08-06-issues-69-70-db-path.md +0 −380
  • docs/superpowers/plans/2026-08-08-carlos-deploy.md +0 −894
  • docs/superpowers/plans/2026-08-08-exec-child-accounting.md +0 −1530
  • docs/superpowers/plans/2026-08-08-release-versioning.md +0 −1592
  • docs/superpowers/plans/2026-08-09-carloku-deploy-story.md +0 −480
  • docs/superpowers/plans/2026-08-09-console-clarity-batch.md +0 −993
  • docs/superpowers/plans/2026-08-10-fleets-console.md +0 −489
  • docs/superpowers/plans/2026-08-10-object-storage-primitive.md +0 −883
  • docs/superpowers/plans/2026-08-10-releases-retention.md +0 −1901
  • docs/superpowers/plans/2026-08-10-route-records-vocabulary.md +0 −1504
  • docs/superpowers/plans/2026-08-11-dashboard-truth-and-scale.md +0 −1328
  • docs/superpowers/plans/2026-08-11-fleet-api-surface.md +0 −97
  • docs/superpowers/plans/2026-08-11-unit-economics.md +0 −2335
  • docs/superpowers/plans/2026-08-12-account-default-resolution.md +0 −122
  • docs/superpowers/plans/2026-08-12-delegated-wildcard-certs.md +0 −427
  • docs/superpowers/plans/2026-08-12-domain-attach.md +0 −757
  • docs/superpowers/plans/2026-08-12-multi-upstream-routes.md +0 −439
  • docs/superpowers/plans/2026-08-12-registry-snapshot-cold-standby.md +0 −718
  • docs/superpowers/plans/2026-08-12-route-extra-hostnames.md +0 −548
  • docs/superpowers/plans/2026-08-12-woodstar-w0-relay-fanout.md +0 −751
  • docs/superpowers/plans/2026-08-15-economics-v2-fleet-pool.md +0 −291
  • docs/superpowers/plans/2026-08-15-flagship-litestream-0.5-upgrade.md +0 −120
  • docs/superpowers/plans/2026-08-16-route-scoped-config-delivery.md +0 −2028
  • docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md +0 −429
  • docs/superpowers/plans/2026-08-18-edge-response-compression.md +0 −1466
  • docs/superpowers/plans/2026-08-18-service-principals.md +0 −2012
  • docs/superpowers/plans/2026-08-19-fleet-architecture-diagram.md +2794 −0
  • docs/superpowers/plans/2026-08-19-tenant-email.md +0 −5505
  • docs/superpowers/plans/2026-08-20-multi-region-writer-map-and-certs.md +0 −777
  • docs/superpowers/plans/2026-08-20-release-pipelines-v2.md +0 −974
  • docs/superpowers/plans/2026-08-22-multi-region-backhaul.md +0 −818
  • docs/superpowers/plans/2026-08-23-multi-region-steering.md +0 −726
  • docs/superpowers/specs/2026-08-01-carlos-framework-design.md +0 −889
  • docs/superpowers/specs/2026-08-01-carlos-platform-design.md +0 −497
  • docs/superpowers/specs/2026-08-01-fleet-status-page-design.md +0 −209
  • docs/superpowers/specs/2026-08-01-tito-production-infra-design.md +0 −372
  • docs/superpowers/specs/2026-08-02-app-config-secrets-design.md +0 −228
  • docs/superpowers/specs/2026-08-02-custom-domains-design.md +0 −184
  • docs/superpowers/specs/2026-08-02-edge-cache-before-wake-design.md +0 −270
  • docs/superpowers/specs/2026-08-02-exec-config-delivery-design.md +0 −200
  • docs/superpowers/specs/2026-08-02-host-process-monitoring-design.md +0 −235
  • docs/superpowers/specs/2026-08-02-multi-account-design.md +0 −440
  • docs/superpowers/specs/2026-08-02-pipelines-design.md +0 −292
  • docs/superpowers/specs/2026-08-02-platform-dev-environment-design.md +0 −104
  • docs/superpowers/specs/2026-08-02-rastrillo-ui-addendum-design.md +0 −207
  • docs/superpowers/specs/2026-08-02-rastrillo-ui-component-library-design.md +0 −416
  • docs/superpowers/specs/2026-08-03-app-capabilities-design.md +0 −960
  • docs/superpowers/specs/2026-08-03-cli-console-api-design.md +0 −207
  • docs/superpowers/specs/2026-08-03-external-socket-advisory-design.md +0 −137
  • docs/superpowers/specs/2026-08-03-open-ledgers-design.md +0 −618
  • docs/superpowers/specs/2026-08-03-rastrillo-blog-example-design.md +0 −936
  • docs/superpowers/specs/2026-08-03-scoped-signing-keys-design.md +0 −165
  • docs/superpowers/specs/2026-08-03-unit-tenant-purge-channel.md +0 −930
  • docs/superpowers/specs/2026-08-04-account-slugs-design.md +0 −187
  • docs/superpowers/specs/2026-08-04-cli-app-create-design.md +0 −104
  • docs/superpowers/specs/2026-08-04-config-console-api-design.md +0 −266
  • docs/superpowers/specs/2026-08-04-console-bake-controls-design.md +0 −277
  • docs/superpowers/specs/2026-08-04-console-default-resolution-design.md +0 −162
  • docs/superpowers/specs/2026-08-04-deletion-policy-design.md +0 −321
  • docs/superpowers/specs/2026-08-04-instance-provisioning-design.md +0 −472
  • docs/superpowers/specs/2026-08-04-remote-host-pi-design.md +0 −267
  • docs/superpowers/specs/2026-08-05-customer-fleets-design.md +0 −208
  • docs/superpowers/specs/2026-08-05-wildcard-certs-design.md +0 −172
  • docs/superpowers/specs/2026-08-06-console-redesign-design.md +0 −184
  • docs/superpowers/specs/2026-08-07-console-app-pages-design.md +0 −144
  • docs/superpowers/specs/2026-08-07-exec-child-accounting-design.md +0 −170
  • docs/superpowers/specs/2026-08-08-carlos-deploy-design.md +0 −310
  • docs/superpowers/specs/2026-08-08-exec-instance-metrics-design.md +0 −163
  • docs/superpowers/specs/2026-08-08-instance-socket-consumers-design.md +0 −161
  • docs/superpowers/specs/2026-08-08-release-versioning-design.md +0 −130
  • docs/superpowers/specs/2026-08-09-carloku-deploy-story-design.md +0 −118
  • docs/superpowers/specs/2026-08-10-carlos-logs-design.md +0 −215
  • docs/superpowers/specs/2026-08-10-dashboard-truth-and-scale-design.md +0 −145
  • docs/superpowers/specs/2026-08-10-fleets-console-design.md +0 −162
  • docs/superpowers/specs/2026-08-10-object-storage-primitive-design.md +0 −404
  • docs/superpowers/specs/2026-08-10-releases-retention-design.md +0 −268
  • docs/superpowers/specs/2026-08-10-route-records-design.md +0 −413
  • docs/superpowers/specs/2026-08-11-fleet-api-surface-design.md +0 −115
  • docs/superpowers/specs/2026-08-11-unit-economics-design.md +0 −282
  • docs/superpowers/specs/2026-08-12-account-default-resolution-design.md +0 −182
  • docs/superpowers/specs/2026-08-12-app-trust-classes-design.md +0 −233
  • docs/superpowers/specs/2026-08-12-domain-attach-design.md +0 −256
  • docs/superpowers/specs/2026-08-12-ha-posture-and-multi-upstream-routes-design.md +0 −251
  • docs/superpowers/specs/2026-08-12-private-instances-design.md +0 −222
  • docs/superpowers/specs/2026-08-12-proactive-cli-design.md +0 −128
  • docs/superpowers/specs/2026-08-12-route-extra-hostnames-design.md +0 −288
  • docs/superpowers/specs/2026-08-12-woodstar-carloku-migration-design.md +0 −424
  • docs/superpowers/specs/2026-08-13-carloku-business-model-design.md +0 −214
  • docs/superpowers/specs/2026-08-13-project-defaults-design.md +0 −141
  • docs/superpowers/specs/2026-08-15-sqlite-corruption-defence-design.md +0 −297
  • docs/superpowers/specs/2026-08-16-route-scoped-config-delivery-design.md +0 −413
  • docs/superpowers/specs/2026-08-18-edge-response-compression-design.md +0 −184
  • docs/superpowers/specs/2026-08-18-service-principals-design.md +0 −469
  • docs/superpowers/specs/2026-08-19-cli-flag-conventions-design.md +0 −211
  • docs/superpowers/specs/2026-08-19-fleet-architecture-diagram-design.md +400 −0
  • docs/superpowers/specs/2026-08-19-tenant-email-design.md +0 −773
  • docs/superpowers/specs/2026-08-20-bucket-writer-audit.md +0 −399
  • docs/superpowers/specs/2026-08-20-multi-region-ingress-design.md +0 −528
  • docs/superpowers/specs/2026-08-20-release-pipelines-v2-design.md +0 −238
  • domains_cli.go +26 −23
  • e2e_test.go +95 −90
  • economics.go +113 −17
  • economics_backhaul_test.go +28 −0
  • economics_test.go +5 −5
  • flags.go +78 −0
  • flags_test.go +184 −0
  • fleets.go +37 −31
  • fleets_cli_test.go +3 −3
  • go.mod +10 −6
  • go.sum +20 −12
  • infra/dev/region-pi.md +0 −90
  • infra/eleven-fleet.md +0 −160
  • infra/modules/region-host/main.tf +34 −0
  • infra/remote-host.md +6 −6
  • instances_cli.go +129 −115
  • instances_e2e_test.go +35 −3
  • internal/activator/activator_test.go +335 −18
  • internal/activator/admintoken.go +214 −0
  • internal/activator/admintoken_test.go +266 −0
  • internal/activator/backend_exec.go +131 −53
  • internal/activator/logsink.go +7 −4
  • internal/activator/logsink_test.go +7 −7
  • internal/appconfig/environments.go +1 −1
  • internal/appconfig/sync.go +2 −2
  • internal/applog/chunk_test.go +5 −5
  • internal/applog/filter_test.go +2 −2
  • internal/applog/read_test.go +5 −5
  • internal/applog/sink_test.go +18 −18
  • internal/awsinv/awsinv.go +219 −0
  • internal/awsinv/awsinv_test.go +203 −0
  • internal/awsinv/clients.go +104 −0
  • internal/awsinv/ec2.go +168 −0
  • internal/awsinv/ec2_test.go +120 −0
  • internal/awsinv/rest.go +282 −0
  • internal/awsinv/rest_test.go +474 −0
  • internal/caps/converge.go +2 −2
  • internal/caps/converge_test.go +2 −2
  • internal/caps/grants.go +1 −1
  • internal/cliflag/cliflag.go +104 −0
  • internal/console/account_test.go +1 −1
  • internal/console/apicli.go +2 −2
  • internal/console/apicli_test.go +39 −3
  • internal/console/apiconfig_test.go +1 −1
  • internal/console/apidomains.go +5 −4
  • internal/console/apidomains_test.go +1 −1
  • internal/console/apiinstances_test.go +50 −0
  • internal/console/apilogs_test.go +1 −1
  • internal/console/apischedule.go +322 −0
  • internal/console/apischedule_test.go +468 −0
  • internal/console/apistore.go +3 −3
  • internal/console/apistore_test.go +5 −5
  • internal/console/appsettings_test.go +8 −8
  • internal/console/archgraph.go +783 −0
  • internal/console/archgraph_test.go +548 −0
  • internal/console/archlayout.go +316 −0
  • internal/console/archlayout_test.go +203 −0
  • internal/console/archlegibility_test.go +149 −0
  • internal/console/archpage.go +139 −0
  • internal/console/archpage_test.go +440 −0
  • internal/console/attachhint_test.go +8 −8
  • internal/console/authcli.go +19 −2
  • internal/console/channelmove.go +229 −0
  • internal/console/channelmove_test.go +343 −0
  • internal/console/domainattach_test.go +2 −2
  • internal/console/economicsbackhaul_test.go +116 −0
  • internal/console/economicspass.go +104 −0
  • internal/console/economicspass_test.go +5 −1
  • internal/console/infrapass.go +182 −0
  • internal/console/infrapass_test.go +142 −0
  • internal/console/mailcounts_test.go +46 −46
  • internal/console/materialize.go +3 −3
  • internal/console/pending.go +52 −3
  • internal/console/pending_test.go +69 −0
  • internal/console/pendingflow_test.go +286 −0
  • internal/console/pendinghandlers.go +195 −20
  • internal/console/pipelinepage.go +14 −2
  • internal/console/pipelinepage_test.go +114 −4
  • internal/console/server.go +93 −40
  • internal/console/server_test.go +5 −5
  • internal/console/sesevents_test.go +16 −16
  • internal/console/store.go +2 −2
  • internal/console/svcpage.go +1 −1
  • internal/console/svcroutes_test.go +9 −2
  • internal/console/templates/app_logs.html +1 −1
  • internal/console/templates/app_releases.html +50 −15
  • internal/console/templates/app_settings.html +8 −8
  • internal/console/templates/architecture.html +96 −0
  • internal/console/templates/economics.html +13 −3
  • internal/console/templates/economics_accounts.html +2 −0
  • internal/console/templates/fleet.html +1 −0
  • internal/console/templates/layout.html +37 −0
  • internal/console/templates/settings.html +1 −1
  • internal/console/view.go +29 −0
  • internal/docsite/cli_test.go +77 −0
  • internal/docsite/cliscan.go +92 −0
  • internal/docsite/docsite.go +331 −0
  • internal/docsite/fences_test.go +187 −0
  • internal/docsite/links_test.go +125 −0
  • internal/docsite/nav_test.go +80 −0
  • internal/docsite/parse_test.go +74 −0
  • internal/docsite/testdata/corpus/getting-started.md +14 −0
  • internal/docsite/testdata/corpus/index.md +4 −0
  • internal/docsite/testdata/corpus/nav.json +16 −0
  • internal/docsite/testdata/corpus/reference/cli.md +9 −0
  • internal/docsite/testdata/missing/index.md +1 −0
  • internal/docsite/testdata/missing/nav.json +1 −0
  • internal/docsite/testdata/orphan/index.md +1 −0
  • internal/docsite/testdata/orphan/kept.md +1 −0
  • internal/docsite/testdata/orphan/nav.json +1 −0
  • internal/docsite/testdata/orphan/stranded.md +1 −0
  • internal/domains/aliases.go +6 −0
  • internal/domains/reconcile.go +51 −0
  • internal/domains/reconcile_test.go +109 −0
  • internal/economics/compute.go +7 −1
  • internal/economics/scenario.go +10 −1
  • internal/edge/backhaul_e2e_test.go +50 −0
  • internal/edge/certbackfill_test.go +602 −0
  • internal/edge/certsync.go +382 −27
  • internal/edge/certsync_e2e_test.go +141 −0
  • internal/edge/certsync_test.go +192 −10
  • internal/edge/edge.go +227 −18
  • internal/edge/homemap.go +225 −7
  • internal/edge/homemap_test.go +388 −0
  • internal/edge/purge.go +83 −25
  • internal/edge/purge_listen_windows.go +5 −3
  • internal/edge/steeringprobe_test.go +1 −1
  • internal/edge/usagemeter.go +12 −2
  • internal/edge/usagemeter_test.go +30 −4
  • internal/edge/wildcard.go +90 −11
  • internal/edge/wildcard_parents_test.go +462 −0
  • internal/edge/wildcard_test.go +24 −10
  • internal/host/agent.go +129 −7
  • internal/host/bootstrap.go +5 −2
  • internal/host/caps_pass.go +5 −5
  • internal/host/caps_pass_test.go +7 −7
  • internal/host/domains_duty_test.go +54 −0
  • internal/host/edgesfile.go +124 −2
  • internal/host/edgesfile_test.go +214 −12
  • internal/host/host_test.go +3 −3
  • internal/host/housekeeper.go +14 −0
  • internal/host/logship_test.go +9 −9
  • internal/host/schedule_wake_test.go +532 −0
  • internal/host/schedule_wiring.go +436 −0
  • internal/host/schedule_wiring_test.go +160 −0
  • internal/host/statfs_unix.go +1 −1
  • internal/host/units/carlos-config-sync.service +1 −1
  • internal/host/units/carlos-restore-verify.service +8 −8
  • internal/host/units/carlos-stage.path +1 −1
  • internal/host/units/carlos-stage.service +1 −1
  • internal/infraview/infraview.go +118 −0
  • internal/infraview/infraview_test.go +65 −0
  • internal/mail/dnsrecords_test.go +10 −10
  • internal/mail/domain_test.go +12 −12
  • internal/mail/events_test.go +3 −3
  • internal/mail/mail.go +1 −1
  • internal/mail/mail_test.go +18 −18
  • internal/mail/policy_test.go +8 −8
  • internal/mail/smtppass_test.go +3 −0
  • internal/mail/walk.go +3 −3
  • internal/mail/walk_domain_test.go +25 −25
  • internal/mail/walk_domainclaim_test.go +5 −5
  • internal/mail/walk_enable_test.go +68 −68
  • internal/mail/walk_grant_test.go +13 −13
  • internal/mail/walk_lifecycle_test.go +70 −70
  • internal/mail/walk_verify_test.go +31 −31
  • internal/objstore/contract_test.go +6 −5
  • internal/ops/hibernate_verify.go +1 −1
  • internal/ops/hibernate_verify_test.go +2 −2
  • internal/ops/litestream.go +4 −4
  • internal/ops/ops.go +8 −3
  • internal/ops/ops_test.go +3 −3
  • internal/registry/registry.go +50 −1
  • internal/registry/registry_test.go +54 −0
  • internal/registry/timers.go +216 −0
  • internal/registry/timers_test.go +251 −0
  • internal/release/adopt.go +85 −23
  • internal/release/adopt_test.go +378 −0
  • internal/release/bake.go +141 −7
  • internal/release/bake_test.go +90 −5
  • internal/release/canarystable_test.go +1 −1
  • internal/release/golden_test.go +3 −3
  • internal/release/ladder.go +3 −3
  • internal/release/ladder_test.go +1 −1
  • internal/release/laddercheck_test.go +1 −1
  • internal/release/pipeline.go +14 −4
  • internal/release/pipeline_test.go +84 −4
  • internal/release/qualified.go +1 −1
  • internal/release/qualified_test.go +5 −5
  • internal/release/release.go +23 −7
  • internal/release/release_test.go +3 −3
  • internal/release/scopedpromote_test.go +1 −1
  • internal/schedule/control.go +171 −0
  • internal/schedule/control_test.go +195 −0
  • internal/schedule/converge.go +334 −0
  • internal/schedule/converge_test.go +543 −0
  • internal/schedule/cron.go +169 −0
  • internal/schedule/cron_test.go +85 −0
  • internal/schedule/declaration.go +303 −0
  • internal/schedule/declaration_test.go +181 −0
  • internal/schedule/envfile.go +32 −0
  • internal/schedule/runner.go +469 −0
  • internal/schedule/runner_test.go +674 −0
  • internal/schedule/spec.go +134 −0
  • internal/schedule/spec_test.go +86 −0
  • internal/schedule/status.go +116 −0
  • internal/schedule/status_test.go +37 −0
  • internal/usage/edge.go +16 −0
  • internal/usage/edge_test.go +76 −0
  • internal/usage/usage.go +13 −0
  • internal/vet/vet.go +7 −3
  • logs.go +5 −23
  • logs_e2e_test.go +1 −1
  • mail_cli.go +67 −58
  • mail_cli_test.go +41 −41
  • main.go +15 −9
  • pipeline.go +35 −36
  • restart.go +4 −3
  • restart_test.go +1 −1
  • retention.go +11 −10
  • retention_cli_test.go +2 −2
  • routes_cli.go +4 −3
  • schedule.go +371 −0
  • schedule_test.go +402 −0
  • scopedkeys_e2e_test.go +4 −4
  • scripts/seed-pi-demo.sh +2 −2
  • services.go +32 −28
  • services_cli_test.go +29 −19
  • store.go +30 −26
  • store_test.go +7 −7
  • update.go +3 −2
.amadan/README.md

Loading diff…

.amadan/ci.d/10-gate

Loading diff…

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

Loading diff…

.github/workflows/ci.yml

Loading diff…

AGENTS.md

Loading diff…

LICENSE

Loading diff…

README.md

Loading diff…

account_choose.go

Loading diff…

account_choose_test.go

Loading diff…

accounts.go

Loading diff…

accounts_resolve_test.go

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

apps.go

Loading diff…

apps_test.go

Loading diff…

auth.go

Loading diff…

auth_e2e_test.go

Loading diff…

auth_test.go

Loading diff…

cli.go

Loading diff…

cli_test.go

Loading diff…

cmd/console/main.go

Loading diff…

config.go

Loading diff…

config_e2e_test.go

Loading diff…

config_test.go

Loading diff…

deploy.go

Loading diff…

deploy_e2e_test.go

Loading diff…

deploy_test.go

Loading diff…

deploy_wizard_test.go

Loading diff…

docs/site/anchors.json

Loading diff…

docs/site/cli.md

Loading diff…

docs/site/index.md

Loading diff…

docs/site/nav.json

Loading diff…

docs/superpowers/plans/2026-08-01-plan-a-platform-core.md

Loading diff…

docs/superpowers/plans/2026-08-01-plan-b-flagship-kass.md

Loading diff…

docs/superpowers/plans/2026-08-01-plan-c-tito-selfhosted.md

Loading diff…

docs/superpowers/plans/2026-08-01-plan-fleet-status-page.md

Loading diff…

docs/superpowers/plans/2026-08-01-roadmap.md

Loading diff…

docs/superpowers/plans/2026-08-02-app-config-secrets.md

Loading diff…

docs/superpowers/plans/2026-08-02-edge-cache-before-wake-platform.md

Loading diff…

docs/superpowers/plans/2026-08-02-exec-config-delivery.md

Loading diff…

docs/superpowers/plans/2026-08-02-host-process-monitoring.md

Loading diff…

docs/superpowers/plans/2026-08-02-plan-domains.md

Loading diff…

docs/superpowers/plans/2026-08-02-plan-environments.md

Loading diff…

docs/superpowers/plans/2026-08-02-plan-keymail-flagship.md

Loading diff…

docs/superpowers/plans/2026-08-02-plan-multi-account.md

Loading diff…

docs/superpowers/plans/2026-08-02-plan-pipelines.md

Loading diff…

docs/superpowers/plans/2026-08-02-plan-woodstar-flagship.md

Loading diff…

docs/superpowers/plans/2026-08-02-platform-dev-environment.md

Loading diff…

docs/superpowers/plans/2026-08-02-rastrillo-icon-vendoring.md

Loading diff…

docs/superpowers/plans/2026-08-02-rastrillo-ui-component-library.md

Loading diff…

docs/superpowers/plans/2026-08-03-app-capabilities.md

Loading diff…

docs/superpowers/plans/2026-08-03-cli-console-api.md

Loading diff…

docs/superpowers/plans/2026-08-03-external-socket-advisory.md

Loading diff…

docs/superpowers/plans/2026-08-03-open-ledgers-primitive.md

Loading diff…

docs/superpowers/plans/2026-08-03-rastrillo-blog-example.md

Loading diff…

docs/superpowers/plans/2026-08-04-account-slugs.md

Loading diff…

docs/superpowers/plans/2026-08-04-config-console-api.md

Loading diff…

docs/superpowers/plans/2026-08-04-console-bake-controls.md

Loading diff…

docs/superpowers/plans/2026-08-04-console-default-resolution.md

Loading diff…

docs/superpowers/plans/2026-08-04-deletion-policy.md

Loading diff…

docs/superpowers/plans/2026-08-04-instance-provisioning.md

Loading diff…

docs/superpowers/plans/2026-08-04-pi-enablement.md

Loading diff…

docs/superpowers/plans/2026-08-04-remote-host-agent.md

Loading diff…

docs/superpowers/plans/2026-08-05-customer-fleets.md

Loading diff…

docs/superpowers/plans/2026-08-05-wildcard-certs.md

Loading diff…

docs/superpowers/plans/2026-08-06-console-redesign.md

Loading diff…

docs/superpowers/plans/2026-08-06-issues-69-70-db-path.md

Loading diff…

docs/superpowers/plans/2026-08-08-carlos-deploy.md

Loading diff…

docs/superpowers/plans/2026-08-08-exec-child-accounting.md

Loading diff…

docs/superpowers/plans/2026-08-08-release-versioning.md

Loading diff…

docs/superpowers/plans/2026-08-09-carloku-deploy-story.md

Loading diff…

docs/superpowers/plans/2026-08-09-console-clarity-batch.md

Loading diff…

docs/superpowers/plans/2026-08-10-fleets-console.md

Loading diff…

docs/superpowers/plans/2026-08-10-object-storage-primitive.md

Loading diff…

docs/superpowers/plans/2026-08-10-releases-retention.md

Loading diff…

docs/superpowers/plans/2026-08-10-route-records-vocabulary.md

Loading diff…

docs/superpowers/plans/2026-08-11-dashboard-truth-and-scale.md

Loading diff…

docs/superpowers/plans/2026-08-11-fleet-api-surface.md

Loading diff…

docs/superpowers/plans/2026-08-11-unit-economics.md

Loading diff…

docs/superpowers/plans/2026-08-12-account-default-resolution.md

Loading diff…

docs/superpowers/plans/2026-08-12-delegated-wildcard-certs.md

Loading diff…

docs/superpowers/plans/2026-08-12-domain-attach.md

Loading diff…

docs/superpowers/plans/2026-08-12-multi-upstream-routes.md

Loading diff…

docs/superpowers/plans/2026-08-12-registry-snapshot-cold-standby.md

Loading diff…

docs/superpowers/plans/2026-08-12-route-extra-hostnames.md

Loading diff…

docs/superpowers/plans/2026-08-12-woodstar-w0-relay-fanout.md

Loading diff…

docs/superpowers/plans/2026-08-15-economics-v2-fleet-pool.md

Loading diff…

docs/superpowers/plans/2026-08-15-flagship-litestream-0.5-upgrade.md

Loading diff…

docs/superpowers/plans/2026-08-16-route-scoped-config-delivery.md

Loading diff…

docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md

Loading diff…

docs/superpowers/plans/2026-08-18-edge-response-compression.md

Loading diff…

docs/superpowers/plans/2026-08-18-service-principals.md

Loading diff…

docs/superpowers/plans/2026-08-19-fleet-architecture-diagram.md

Loading diff…

docs/superpowers/plans/2026-08-19-tenant-email.md

Loading diff…

docs/superpowers/plans/2026-08-20-multi-region-writer-map-and-certs.md

Loading diff…

docs/superpowers/plans/2026-08-20-release-pipelines-v2.md

Loading diff…

docs/superpowers/plans/2026-08-22-multi-region-backhaul.md

Loading diff…

docs/superpowers/plans/2026-08-23-multi-region-steering.md

Loading diff…

docs/superpowers/specs/2026-08-01-carlos-framework-design.md

Loading diff…

docs/superpowers/specs/2026-08-01-carlos-platform-design.md

Loading diff…

docs/superpowers/specs/2026-08-01-fleet-status-page-design.md

Loading diff…

docs/superpowers/specs/2026-08-01-tito-production-infra-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-app-config-secrets-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-custom-domains-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-edge-cache-before-wake-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-exec-config-delivery-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-host-process-monitoring-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-multi-account-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-pipelines-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-platform-dev-environment-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-rastrillo-ui-addendum-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-rastrillo-ui-component-library-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-app-capabilities-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-cli-console-api-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-external-socket-advisory-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-open-ledgers-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-rastrillo-blog-example-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-scoped-signing-keys-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-unit-tenant-purge-channel.md

Loading diff…

docs/superpowers/specs/2026-08-04-account-slugs-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-cli-app-create-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-config-console-api-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-console-bake-controls-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-console-default-resolution-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-deletion-policy-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-instance-provisioning-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-remote-host-pi-design.md

Loading diff…

docs/superpowers/specs/2026-08-05-customer-fleets-design.md

Loading diff…

docs/superpowers/specs/2026-08-05-wildcard-certs-design.md

Loading diff…

docs/superpowers/specs/2026-08-06-console-redesign-design.md

Loading diff…

docs/superpowers/specs/2026-08-07-console-app-pages-design.md

Loading diff…

docs/superpowers/specs/2026-08-07-exec-child-accounting-design.md

Loading diff…

docs/superpowers/specs/2026-08-08-carlos-deploy-design.md

Loading diff…

docs/superpowers/specs/2026-08-08-exec-instance-metrics-design.md

Loading diff…

docs/superpowers/specs/2026-08-08-instance-socket-consumers-design.md

Loading diff…

docs/superpowers/specs/2026-08-08-release-versioning-design.md

Loading diff…

docs/superpowers/specs/2026-08-09-carloku-deploy-story-design.md

Loading diff…

docs/superpowers/specs/2026-08-10-carlos-logs-design.md

Loading diff…

docs/superpowers/specs/2026-08-10-dashboard-truth-and-scale-design.md

Loading diff…

docs/superpowers/specs/2026-08-10-fleets-console-design.md

Loading diff…

docs/superpowers/specs/2026-08-10-object-storage-primitive-design.md

Loading diff…

docs/superpowers/specs/2026-08-10-releases-retention-design.md

Loading diff…

docs/superpowers/specs/2026-08-10-route-records-design.md

Loading diff…

docs/superpowers/specs/2026-08-11-fleet-api-surface-design.md

Loading diff…

docs/superpowers/specs/2026-08-11-unit-economics-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-account-default-resolution-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-app-trust-classes-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-domain-attach-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-ha-posture-and-multi-upstream-routes-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-private-instances-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-proactive-cli-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-route-extra-hostnames-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-woodstar-carloku-migration-design.md

Loading diff…

docs/superpowers/specs/2026-08-13-carloku-business-model-design.md

Loading diff…

docs/superpowers/specs/2026-08-13-project-defaults-design.md

Loading diff…

docs/superpowers/specs/2026-08-15-sqlite-corruption-defence-design.md

Loading diff…

docs/superpowers/specs/2026-08-16-route-scoped-config-delivery-design.md

Loading diff…

docs/superpowers/specs/2026-08-18-edge-response-compression-design.md

Loading diff…

docs/superpowers/specs/2026-08-18-service-principals-design.md

Loading diff…

docs/superpowers/specs/2026-08-19-cli-flag-conventions-design.md

Loading diff…

docs/superpowers/specs/2026-08-19-fleet-architecture-diagram-design.md

Loading diff…

docs/superpowers/specs/2026-08-19-tenant-email-design.md

Loading diff…

docs/superpowers/specs/2026-08-20-bucket-writer-audit.md

Loading diff…

docs/superpowers/specs/2026-08-20-multi-region-ingress-design.md

Loading diff…

docs/superpowers/specs/2026-08-20-release-pipelines-v2-design.md

Loading diff…

domains_cli.go

Loading diff…

e2e_test.go

Loading diff…

economics.go

Loading diff…

economics_backhaul_test.go

Loading diff…

economics_test.go

Loading diff…

flags.go

Loading diff…

flags_test.go

Loading diff…

fleets.go

Loading diff…

fleets_cli_test.go

Loading diff…

go.mod

Loading diff…

go.sum

Loading diff…

infra/dev/region-pi.md

Loading diff…

infra/eleven-fleet.md

Loading diff…

infra/modules/region-host/main.tf

Loading diff…

infra/remote-host.md

Loading diff…

instances_cli.go

Loading diff…

instances_e2e_test.go

Loading diff…

internal/activator/activator_test.go

Loading diff…

internal/activator/admintoken.go

Loading diff…

internal/activator/admintoken_test.go

Loading diff…

internal/activator/backend_exec.go

Loading diff…

internal/activator/logsink.go

Loading diff…

internal/activator/logsink_test.go

Loading diff…

internal/appconfig/environments.go

Loading diff…

internal/appconfig/sync.go

Loading diff…

internal/applog/chunk_test.go

Loading diff…

internal/applog/filter_test.go

Loading diff…

internal/applog/read_test.go

Loading diff…

internal/applog/sink_test.go

Loading diff…

internal/awsinv/awsinv.go

Loading diff…

internal/awsinv/awsinv_test.go

Loading diff…

internal/awsinv/clients.go

Loading diff…

internal/awsinv/ec2.go

Loading diff…

internal/awsinv/ec2_test.go

Loading diff…

internal/awsinv/rest.go

Loading diff…

internal/awsinv/rest_test.go

Loading diff…

internal/caps/converge.go

Loading diff…

internal/caps/converge_test.go

Loading diff…

internal/caps/grants.go

Loading diff…

internal/cliflag/cliflag.go

Loading diff…

internal/console/account_test.go

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apicli_test.go

Loading diff…

internal/console/apiconfig_test.go

Loading diff…

internal/console/apidomains.go

Loading diff…

internal/console/apidomains_test.go

Loading diff…

internal/console/apiinstances_test.go

Loading diff…

internal/console/apilogs_test.go

Loading diff…

internal/console/apischedule.go

Loading diff…

internal/console/apischedule_test.go

Loading diff…

internal/console/apistore.go

Loading diff…

internal/console/apistore_test.go

Loading diff…

internal/console/appsettings_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/attachhint_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/channelmove.go

Loading diff…

internal/console/channelmove_test.go

Loading diff…

internal/console/domainattach_test.go

Loading diff…

internal/console/economicsbackhaul_test.go

Loading diff…

internal/console/economicspass.go

Loading diff…

internal/console/economicspass_test.go

Loading diff…

internal/console/infrapass.go

Loading diff…

internal/console/infrapass_test.go

Loading diff…

internal/console/mailcounts_test.go

Loading diff…

internal/console/materialize.go

Loading diff…

internal/console/pending.go

Loading diff…

internal/console/pending_test.go

Loading diff…

internal/console/pendingflow_test.go

Loading diff…

internal/console/pendinghandlers.go

Loading diff…

internal/console/pipelinepage.go

Loading diff…

internal/console/pipelinepage_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_test.go

Loading diff…

internal/console/sesevents_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/svcpage.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/console/templates/app_logs.html

Loading diff…

internal/console/templates/app_releases.html

Loading diff…

internal/console/templates/app_settings.html

Loading diff…

internal/console/templates/architecture.html

Loading diff…

internal/console/templates/economics.html

Loading diff…

internal/console/templates/economics_accounts.html

Loading diff…

internal/console/templates/fleet.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/console/templates/settings.html

Loading diff…

internal/console/view.go

Loading diff…

internal/docsite/cli_test.go

Loading diff…

internal/docsite/cliscan.go

Loading diff…

internal/docsite/docsite.go

Loading diff…

internal/docsite/fences_test.go

Loading diff…

internal/docsite/links_test.go

Loading diff…

internal/docsite/nav_test.go

Loading diff…

internal/docsite/parse_test.go

Loading diff…

internal/docsite/testdata/corpus/getting-started.md

Loading diff…

internal/docsite/testdata/corpus/index.md

Loading diff…

internal/docsite/testdata/corpus/nav.json

Loading diff…

internal/docsite/testdata/corpus/reference/cli.md

Loading diff…

internal/docsite/testdata/missing/index.md

Loading diff…

internal/docsite/testdata/missing/nav.json

Loading diff…

internal/docsite/testdata/orphan/index.md

Loading diff…

internal/docsite/testdata/orphan/kept.md

Loading diff…

internal/docsite/testdata/orphan/nav.json

Loading diff…

internal/docsite/testdata/orphan/stranded.md

Loading diff…

internal/domains/aliases.go

Loading diff…

internal/domains/reconcile.go

Loading diff…

internal/domains/reconcile_test.go

Loading diff…

internal/economics/compute.go

Loading diff…

internal/economics/scenario.go

Loading diff…

internal/edge/backhaul_e2e_test.go

Loading diff…

internal/edge/certbackfill_test.go

Loading diff…

internal/edge/certsync.go

Loading diff…

internal/edge/certsync_e2e_test.go

Loading diff…

internal/edge/certsync_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/homemap.go

Loading diff…

internal/edge/homemap_test.go

Loading diff…

internal/edge/purge.go

Loading diff…

internal/edge/purge_listen_windows.go

Loading diff…

internal/edge/steeringprobe_test.go

Loading diff…

internal/edge/usagemeter.go

Loading diff…

internal/edge/usagemeter_test.go

Loading diff…

internal/edge/wildcard.go

Loading diff…

internal/edge/wildcard_parents_test.go

Loading diff…

internal/edge/wildcard_test.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/bootstrap.go

Loading diff…

internal/host/caps_pass.go

Loading diff…

internal/host/caps_pass_test.go

Loading diff…

internal/host/domains_duty_test.go

Loading diff…

internal/host/edgesfile.go

Loading diff…

internal/host/edgesfile_test.go

Loading diff…

internal/host/host_test.go

Loading diff…

internal/host/housekeeper.go

Loading diff…

internal/host/logship_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/statfs_unix.go

Loading diff…

internal/host/units/carlos-config-sync.service

Loading diff…

internal/host/units/carlos-restore-verify.service

Loading diff…

internal/host/units/carlos-stage.path

Loading diff…

internal/host/units/carlos-stage.service

Loading diff…

internal/infraview/infraview.go

Loading diff…

internal/infraview/infraview_test.go

Loading diff…

internal/mail/dnsrecords_test.go

Loading diff…

internal/mail/domain_test.go

Loading diff…

internal/mail/events_test.go

Loading diff…

internal/mail/mail.go

Loading diff…

internal/mail/mail_test.go

Loading diff…

internal/mail/policy_test.go

Loading diff…

internal/mail/smtppass_test.go

Loading diff…

internal/mail/walk.go

Loading diff…

internal/mail/walk_domain_test.go

Loading diff…

internal/mail/walk_domainclaim_test.go

Loading diff…

internal/mail/walk_enable_test.go

Loading diff…

internal/mail/walk_grant_test.go

Loading diff…

internal/mail/walk_lifecycle_test.go

Loading diff…

internal/mail/walk_verify_test.go

Loading diff…

internal/objstore/contract_test.go

Loading diff…

internal/ops/hibernate_verify.go

Loading diff…

internal/ops/hibernate_verify_test.go

Loading diff…

internal/ops/litestream.go

Loading diff…

internal/ops/ops.go

Loading diff…

internal/ops/ops_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/registry_test.go

Loading diff…

internal/registry/timers.go

Loading diff…

internal/registry/timers_test.go

Loading diff…

internal/release/adopt.go

Loading diff…

internal/release/adopt_test.go

Loading diff…

internal/release/bake.go

Loading diff…

internal/release/bake_test.go

Loading diff…

internal/release/canarystable_test.go

Loading diff…

internal/release/golden_test.go

Loading diff…

internal/release/ladder.go

Loading diff…

internal/release/ladder_test.go

Loading diff…

internal/release/laddercheck_test.go

Loading diff…

internal/release/pipeline.go

Loading diff…

internal/release/pipeline_test.go

Loading diff…

internal/release/qualified.go

Loading diff…

internal/release/qualified_test.go

Loading diff…

internal/release/release.go

Loading diff…

internal/release/release_test.go

Loading diff…

internal/release/scopedpromote_test.go

Loading diff…

internal/schedule/control.go

Loading diff…

internal/schedule/control_test.go

Loading diff…

internal/schedule/converge.go

Loading diff…

internal/schedule/converge_test.go

Loading diff…

internal/schedule/cron.go

Loading diff…

internal/schedule/cron_test.go

Loading diff…

internal/schedule/declaration.go

Loading diff…

internal/schedule/declaration_test.go

Loading diff…

internal/schedule/envfile.go

Loading diff…

internal/schedule/runner.go

Loading diff…

internal/schedule/runner_test.go

Loading diff…

internal/schedule/spec.go

Loading diff…

internal/schedule/spec_test.go

Loading diff…

internal/schedule/status.go

Loading diff…

internal/schedule/status_test.go

Loading diff…

internal/usage/edge.go

Loading diff…

internal/usage/edge_test.go

Loading diff…

internal/usage/usage.go

Loading diff…

internal/vet/vet.go

Loading diff…

logs.go

Loading diff…

logs_e2e_test.go

Loading diff…

mail_cli.go

Loading diff…

mail_cli_test.go

Loading diff…

main.go

Loading diff…

pipeline.go

Loading diff…

restart.go

Loading diff…

restart_test.go

Loading diff…

retention.go

Loading diff…

retention_cli_test.go

Loading diff…

routes_cli.go

Loading diff…

schedule.go

Loading diff…

schedule_test.go

Loading diff…

scopedkeys_e2e_test.go

Loading diff…

scripts/seed-pi-demo.sh

Loading diff…

services.go

Loading diff…

services_cli_test.go

Loading diff…

store.go

Loading diff…

store_test.go

Loading diff…

update.go

Loading diff…