carlos / platform Public

cmd/moveprobe: the README's Strings section covers the JSON report

Lists the report's fields and every value the app authors in it: region
home, region_from's two values, the mode names, the row kinds, the object
key and body templates, and the object errors, each with when it appears.
For Paul's copy review with the rest of the README. Review fix round 2,
item 2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 2da46e5e40b380ba0d9f32704660eea2de645b8f parent 9d5949f
1 file changed, +27 −1
  • cmd/moveprobe/README.md +27 −1
diff --git a/cmd/moveprobe/README.md b/cmd/moveprobe/README.md
index 710a428e3..a64800515 100644
--- a/cmd/moveprobe/README.md
+++ b/cmd/moveprobe/README.md
@@ -158,9 +158,35 @@ On `/` and `/ready`:
On `/report`:
-- The JSON report (200).
+- The JSON report (200). Its fields are `host`, `region`, `region_from`,
+ `mode`, `boot_id`, `rows` (each with `kind`, `region`, `count`,
+ `min_seq`, `max_seq`), `fired` (each with `kind`, `name`, `due_at`,
+ `count`), `file_key_sha256`, `platform_key_sha256`, `object` (with
+ `key`, `body` and, when it could not be read, `error`), `has_secret`,
+ `worker_pid`, `worker_writes_committed`, `worker_writes_failed`,
+ `worker_failed_in_a_row` and `worker_last_error`.
- `report: <error>`: a database read failed (500).
+The values the app writes into the report itself:
+
+- `region`: the value of `CARLOS_REGION`, or `home` when the box has no
+ region.
+- `region_from`: `CARLOS_REGION` when the variable is set, and
+ `unset, treated as home` when it is not.
+- `mode`: `normal`, or `after-write` when the failure switch names this
+ region with `,after-write`. Before-write mode sends no report.
+- `kind` in `rows`: `bg` for the background loop, `worker` for the
+ worker, `tick` and `once` for timer fires. `kind` in `fired`: `tick` or
+ `once`.
+- `object.key`: `probe/<boot id>.txt`, the object this boot wrote.
+- `object.body`: the object's contents as read back. The app writes
+ `moveprobe boot <boot id> host <host> region <region> at <time>`,
+ followed by a new line, where the time is UTC in RFC 3339 form.
+- `object.error`: `store: <names> not set` when the store variables are
+ missing, or `get <key>: <error>` when the object cannot be read back.
+- `worker_last_error`: the database's own error text for the worker's
+ latest failed write. The app adds no words of its own.
+
On `/arm-once`:
- `{"name": "once-<n>", "at": "<time>", "due_at": <unix seconds>}`: the