Skip to content

docs truth: a shipped version claimed a change it never made - #525

Merged
jacobecox merged 2 commits into
mainfrom
claude/doc-truth-fixes
Aug 31, 2026
Merged

docs truth: a shipped version claimed a change it never made#525
jacobecox merged 2 commits into
mainfrom
claude/doc-truth-fixes

Conversation

@jacobecox

Copy link
Copy Markdown
Contributor

Three documentation corrections, all in place — helm template output is byte-identical for each, verified.

Found by the docs writers treating the chart as source of truth rather than the README, which is exactly what that rule exists for.

1. postgres-multi-location 1.1.0's headline change never shipped

Its README says "1.1.0 widens the tolerance" and describes moving worst-case failover from 45 to 60 seconds. The chart ships ttl: 45 / loop_wait: 10 / retry_timeout: 15 — and so do 1.0.3 and 2.0.0, byte for byte:

1.0.3    ttl:45 loop_wait:10 retry_timeout:15
1.1.0    ttl:45 loop_wait:10 retry_timeout:15
2.0.0    ttl:45 loop_wait:10 retry_timeout:15

The README's own edit-config remediation command sets 45/10/15, contradicting the paragraph three lines above it, and the published CHANGELOG entry repeats the claim.

So a user reading either doc believes their cluster tolerates a 60-second etcd outage when it gives up at 15. That is a false operational guarantee about failover, not a doc nit.

The README now states what is actually shipped and frames widening as a deliberate trade left to the operator, with Patroni's loop_wait + 2 * retry_timeout <= ttl constraint. The CHANGELOG entry carries a dated correction rather than being silently rewritten — it was published and people may have read it.

2. grafana-multi-location 2.0.0 tells users about a key that no longer exists

values.yaml still said a location "must be one of global.gvc.locations" — a key the conversion removed. Comment-only.

3. cpln-advisor 2.0.0's restore caveat is now false, and the command is unsafe

The README says the restore "has not been executed against this template". The test round executed it end to end — 90 KB dump, 8 tables, database dropped, restored, application working on the restored data — so the docs page and the README now disagree, with the README being the stale one.

It also needs a requirement the round found the hard way: the dump comes from postgres:18, whose pg_dumpall emits \restrict directives that older clients reject while psql exits 0. It succeeded only because those lines were not load-bearing. The command now carries -v ON_ERROR_STOP=1, because a silently-successful restore is the dangerous case.

🤖 Generated with Claude Code

jacobecox and others added 2 commits August 30, 2026 17:16
Found by the docs writer treating the CHART as source of truth rather than the
README -- which is exactly what that rule is for.

**postgres-multi-location 1.1.0's headline change never shipped.** Its README
says "1.1.0 widens the tolerance" and describes moving worst-case failover from
45 to 60 seconds. The chart ships `ttl: 45` / `loop_wait: 10` /
`retry_timeout: 15` -- and so do 1.0.3 and 2.0.0, byte for byte. The README's own
`edit-config` remediation command sets 45/10/15, contradicting the paragraph
three lines above it, and the published CHANGELOG entry repeats the claim.

So a user reading either doc believes their cluster tolerates a 60-second etcd
outage when it gives up at 15. Both are corrected: the README now states what is
actually shipped and explains widening as a deliberate trade left to the
operator, and the CHANGELOG entry carries a dated correction rather than being
silently rewritten -- it was published, people may have read it.

Also fixes a stale key name in `grafana-multi-location` 2.0.0's values.yaml,
which still told users a location "must be one of `global.gvc.locations`" -- a
key the conversion removed. Comment-only; `helm template` output verified
byte-identical, so both are in-place fixes rather than new versions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The 2.0.0 README still says the restore has not been executed against this
template. The test round executed it end to end -- 90 KB dump, 8 tables, database
dropped, restored, application working on the restored data -- so the caveat now
understates what is known and the docs page says the opposite.

It also needs a requirement the round found the hard way: the dump comes from
postgres:18, whose pg_dumpall emits \restrict directives that older clients
reject while psql EXITS 0. It succeeded only because those lines were not
load-bearing. The command now carries -v ON_ERROR_STOP=1.

README-only; helm template output verified byte-identical.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jacobecox
jacobecox merged commit 1ec4c00 into main Aug 31, 2026
6 checks passed
@jacobecox
jacobecox deleted the claude/doc-truth-fixes branch August 31, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant