| index 4d33e8e3e..665d7d5f0 100644 |
| --- a/internal/rolloutwords/words.go |
| +++ b/internal/rolloutwords/words.go |
| @@ -3,8 +3,8 @@ |
| // failed, the short states `carlos instances list` and the console show |
| // (§9.1, §9.2), and the events a box writes to the platform log stream |
| // (§9.4). One home, so the CLI, the console and the box never word one fact |
| -// two ways. Every string here was copy-reviewed; approved_copy_zdd_test.go |
| -// pins it against docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-copy.json. |
| +// two ways. Every string here is a draft pending copy review; TODO-COPY |
| +// markers identify the texts that will be pinned by an approved copy test. |
| // |
| // A leaf: it imports nothing of this repo's, so the rollout manager and the |
| // activator can use it without an import cycle. |
| @@ -88,15 +88,18 @@ const ( |
| StateConfigPending = "config delivered, not active" |
| ) |
| |
| +// TODO-COPY zdd.unavailable.declined |
| +const unavailableDeclined = "its box cannot run two builds side by side, so it restarts instances the old way" |
| + |
| // unavailablePhrases are the member-facing reasons a box cannot run zero-downtime deploys, |
| // keyed by the codes in status.RolloutReport.Unavailable. |
| var unavailablePhrases = map[string]string{ |
| - "no-cgroup-delegation": "its box cannot run two builds side by side, so it restarts instances the old way", // TODO-COPY zdd.unavailable.declined |
| - "no-generation-control": "its box cannot run two builds side by side, so it restarts instances the old way", // TODO-COPY zdd.unavailable.declined |
| - "generations-off": "its box cannot run two builds side by side, so it restarts instances the old way", // TODO-COPY zdd.unavailable.declined |
| - "no-deploy-store": "its box cannot start instances: the deploy store is unavailable", // TODO-COPY zdd.unavailable.store |
| - "no-release-key": "its box cannot start instances: the release key is unavailable", // TODO-COPY zdd.unavailable.release-key |
| - "failure-book-unreadable": "its box cannot start instances: its record of failed builds cannot be read", // TODO-COPY zdd.unavailable.failure-book |
| + "no-cgroup-delegation": unavailableDeclined, // TODO-COPY zdd.unavailable.declined |
| + "no-generation-control": unavailableDeclined, // TODO-COPY zdd.unavailable.declined |
| + "generations-off": unavailableDeclined, // TODO-COPY zdd.unavailable.declined |
| + "no-deploy-store": "its box cannot start instances: the deploy store is unavailable", // TODO-COPY zdd.unavailable.store |
| + "no-release-key": "its box cannot start instances: the release key is unavailable", // TODO-COPY zdd.unavailable.release-key |
| + "failure-book-unreadable": "its box cannot start instances: its record of failed builds cannot be read", // TODO-COPY zdd.unavailable.failure-book |
| } |
| |
| // TODO-COPY zdd.unavailable.unknown |
| @@ -104,7 +107,7 @@ const unavailableUnknown = "its box reports a rollout problem (%s)" |
| |
| // Unavailable is the member-facing phrase for a box's |
| // RolloutReport.Unavailable code. An unknown code (a newer box) reads |
| -// through UnavailableUnknown with the code itself. |
| +// through unavailableUnknown with the code itself. |
| func Unavailable(code string) string { |
| if p, ok := unavailablePhrases[code]; ok { |
| return p |