docs(agents): 2 is safe because the edge replaces, not because 2 is right #34

Merged
jlxq0 merged 1 commit from docs-hops-depends-on-replace into main 2026-08-27 04:11:37 +00:00
Owner

Documentation only, from the platform review. Codex found it on jmap-mcp and it changes what 2 means rather than only justifying it.

The hop count's correctness is a property of oddie-apps/edge-config, not of this code. Caddy sets trusted_proxies nowhere, in the global block or in any of its 80 site blocks, so no client-supplied entry survives into the chain. Behind an appending proxy the same value would be dangerous rather than merely wrong: len < hops would never fire, and counting two in from the right would land on whatever the client sent, in the field an incident reads.

So the entry now says do not raise a hop count elsewhere by analogy with this one, and names oddie-apps/edge-config#39 as the reverse pointer so a change there is not made in ignorance of what depends on it.

The trade is stated rather than glossed. At 0 this service's correctness did not depend on the edge at all, because it selected nothing whatever the header said. At 2 it has a real audit trail and depends on the edge continuing to replace. That is the right trade and it is the deliberate kind.

And it records what the acceptance for a hop-count change actually is, because the log line reports whether an address resolved and never the address: the three fields together, with the selected index being entries - hops. resolved=true alone does not separate 2 from 1, since both resolve; it separates either from the blank that 0 produces.

Documentation only, from the `platform` review. Codex found it on `jmap-mcp` and it changes what `2` means rather than only justifying it. **The hop count's correctness is a property of `oddie-apps/edge-config`, not of this code.** Caddy sets `trusted_proxies` nowhere, in the global block or in any of its 80 site blocks, so no client-supplied entry survives into the chain. Behind an *appending* proxy the same value would be dangerous rather than merely wrong: `len < hops` would never fire, and counting two in from the right would land on whatever the client sent, in the field an incident reads. So the entry now says **do not raise a hop count elsewhere by analogy with this one**, and names `oddie-apps/edge-config#39` as the reverse pointer so a change there is not made in ignorance of what depends on it. **The trade is stated rather than glossed.** At `0` this service's correctness did not depend on the edge at all, because it selected nothing whatever the header said. At `2` it has a real audit trail and depends on the edge continuing to replace. That is the right trade and it is the deliberate kind. **And it records what the acceptance for a hop-count change actually is**, because the log line reports whether an address resolved and never the address: the three fields together, with the selected index being `entries - hops`. `resolved=true` alone does not separate 2 from 1, since both resolve; it separates either from the blank that 0 produces.
docs(agents): 2 is safe because the edge replaces, not because 2 is right
All checks were successful
CI / cargo (pull_request) Successful in 43s
CI / docker (pull_request) Successful in 48s
1f3067ea38
The hop count's correctness is a property of oddie-apps/edge-config rather than
of this code. Caddy sets trusted_proxies nowhere, so no client-supplied entry
survives into the chain and counting from the right is position-stable. Behind
an appending proxy the same value would be dangerous rather than merely wrong:
len < hops would never fire and two in from the right would land on whatever
the client sent. So the entry now says not to raise a hop count elsewhere by
analogy with this one, and names the reverse pointer, edge-config#39, so a
change there is not made in ignorance of what depends on it.

Found by Codex on jmap-mcp during review, and it changes what 2 means rather
than only justifying it.

Also records what the acceptance for such a change actually is, since the log
line reports whether an address resolved and never the address: the three
fields together, with the selected index being entries - hops. resolved=true
alone does not separate 2 from 1, because both resolve.
jlxq0 merged commit 87aa0a91f8 into main 2026-08-27 04:11:37 +00:00
jlxq0 deleted branch docs-hops-depends-on-replace 2026-08-27 04:11:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jlxq0/caldav-mcp!34
No description provided.