carlos / platform Public

#162: why the shared-flat-directory refusal removes where a contested host holds

Summary

found by the third adversarial review and decided rather than
patched. Every process in a shared flat directory runs as the same uid, so
holding the file there would leave a live pair key readable by the very
neighbour that caused the refusal. Removal denies both sides equally; the
cost is a denial of service a writer who can mint a row on the box can
cause, which is the same accepted class as the contested-host DoS.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 6166d85e34f0b0a86e52d6527bfe49480e0925de parent d270633
1 file changed, +10 −1
  • docs/superpowers/specs/2026-09-21-replica-placements-design.md +10 −1

CI passed — run details

diff --git a/docs/superpowers/specs/2026-09-21-replica-placements-design.md b/docs/superpowers/specs/2026-09-21-replica-placements-design.md
index b445611ac..eb262aa51 100644
--- a/docs/superpowers/specs/2026-09-21-replica-placements-design.md
+++ b/docs/superpowers/specs/2026-09-21-replica-placements-design.md
@@ -610,7 +610,16 @@ loser's app would read a key minted for another account's pair — and sign
a lease call with it, which that pair's sibling would accept. So:
- the writer refuses **both** when two flat hosts on a box would share one
- directory, logs once naming them, and removes any stale file there;
+ directory, logs once naming them, and removes any stale file there.
+ **Removal, not the "hold" a contested host gets (§6)** — and that
+ asymmetry is deliberate. Every process in a shared flat directory runs as
+ the same uid, so a file left there is readable by the neighbour that
+ caused the refusal; holding it would leave a live pair key where the
+ wrong process can read it, while removing it denies both sides equally.
+ The cost is that a flat-layout victim loses its file when a neighbour row
+ appears on that box, which a writer who can mint a row on the box can
+ cause deliberately. That is a denial of service, in the same accepted
+ class as §6's — availability traded for a key that cannot leak;
- the write and the removal decision are made **per directory**, never per
host, or removing one host's file would delete a flat neighbour's;
- the residual hole is not the writer's to close: a flat row with no