Repository navigation
docs: name the relay and escrow in the "cannot read" claims - #79
Conversation
FTW Cloud (srcfl/ftw ADR 0008, proposed) is a separate service for the iPhone app that can read what a box owner turns on. The relay and escrow stay blind, so their claims stand, but sentences that say "Sourceful's services" or "the cloud" cannot read household data would now claim more than is true. Name the relay and escrow in README.md, docs/architecture.md and relay/README.md, say beside each claim that FTW Cloud is the exception and that this app does not use it, and link the ADR. A new tests/cloud-claims.test.ts reads the three documents and fails if a broad sentence returns or a claim loses its exception. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
ftw-webapp | e359e4e | Commit Preview URL Branch Preview URL |
Oct 12 2026, 04:38 PM |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e359e4ea52
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const BROAD = [ | ||
| /Sourceful's services cannot decrypt/i, | ||
| /Sourceful's cloud carries the traffic and cannot read it/i, | ||
| /\bthe cloud is blind\b/i, | ||
| /only remote path between the two/i, |
There was a problem hiding this comment.
Reject generic Sourceful cannot-read claims
If a future edit adds a broad claim such as Sourceful cannot read your energy data—the exact kind of statement the test header says must be rejected—none of these patterns matches it. Because every current document already contains cannot read, FTW Cloud, and the ADR path elsewhere, the remaining assertions also pass, allowing the misleading claim to ship. Match generic Sourceful/cloud cannot-read wording rather than only the four historical phrases.
Useful? React with 👍 / 👎.
What this changes
FTW Cloud (srcfl/ftw ADR 0008, proposed in srcfl/ftw#1589) is a separate service for the iPhone app. If a box owner turns it on, Sourceful can read what the owner enabled. The relay and escrow stay blind, so their claims stand. But three documents here say that Sourceful or the cloud cannot read household data, and that would claim more than is true once FTW Cloud exists.
README.md:7and:53-56: "Sourceful's cloud carries the traffic and cannot read it" and "The cloud is blind" now name the relay. A short paragraph says this app does not use FTW Cloud and links the ADR. The escrow paragraph says "the escrow" instead of "the cloud".docs/architecture.md:35-37gains a paragraph on FTW Cloud beside the model. The claim at:212-214becomes "Sourceful's relay and escrow cannot decrypt your energy data" and points to the ADR for FTW Cloud's own claim.relay/README.md:3-4: the relay is the only remote path that carries commands. FTW Cloud is named as a separate service that never touches the relay.tests/relay-blindness.test.ts: the header comment quotes the narrowed claim.tests/cloud-claims.test.ts, in the style ofescrow-claims.test.ts. It reads the three documents and fails if a broad sentence returns, or if a document says what Sourceful cannot read without naming FTW Cloud and linking the ADR.No code, protocol or contract change. The relay and escrow do not change.
Evidence
npx vitest run tests/cloud-claims.test.ts tests/escrow-claims.test.ts tests/relay-blindness.test.ts: 26 passed.origin/main, all 7 tests incloud-claims.test.tsfail. Restored afterwards.npm run verify: type check and build clean; 1,064 tests passed, 1 skipped and 1 failed. The failure was the wall-clock check inescrow/src/cost.test.ts, which timed out under load and passes on its own (9 of 9).Paired PR
Paired with srcfl/ftw#1589, which adds ADR 0008, the FTW Cloud protocol and the matching lines in
VISION.mdandAGENTS.md. The links here point at the ADR onmaster, so merge that PR first or both together.🤖 Generated with Claude Code