carlos / platform Public

README: operator notes for the change index, copy-reviewed (#336)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev e9025d7bbe2e976d792b600af05382204b638600 parent 2342d52
1 file changed, +11 −0
  • README.md +11 −0
diff --git a/README.md b/README.md
index b2d8c1a51..7a4b80895 100644
--- a/README.md
+++ b/README.md
@@ -485,6 +485,17 @@ sleep, the same as instances that stay awake (#263). `carlos db pull --at`
plus the hourly files back to the oldest one. there are no extra s3
requests.
+### Bucket reads only when something changed (2026-10-22)
+
+This release stops every box and the console from reading the whole deployment bucket on every pass (#336). Writers now record which app changed in `control/changes.json`, and readers re-read only those apps. A full read of the bucket still runs every 30 minutes as a safety net.
+
+- roll every box and the console before you arm any reader. writers update the index as soon as they run the new build, and readers stay off until you arm them.
+- arm a box by adding `CARLOS_CHANGE_INDEX=read` to its `host.env` and restarting it, and the console the same way in its environment. do dev first, and boxes before the console.
+- to turn it off, remove the variable and restart. readers go back to reading the whole bucket, and writers keep updating the index, which does no harm.
+- anyone using an older carlos CLI that writes straight to the bucket (promote, env set, trash) should update it. until they do, their changes reach boxes at the next 30-minute read, not within seconds.
+- customer fleet boxes keep reading the way they do today.
+- to see the effect, look at daily S3 ListBucket and GetObject requests for the deployment bucket in Cost Explorer. they should fall within a day of arming.
+
## App config & secrets
Per-app config lives in the deployment bucket