Skip to content

docs: name the relay and escrow in the "cannot read" claims - #79

Merged
frahlg merged 1 commit into
mainfrom
docs/ftw-cloud-claims
Oct 13, 2026
Merged

frahlg merged 1 commit into
mainfrom
docs/ftw-cloud-claims

Conversation

@frahlg

@frahlg frahlg commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

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:7 and :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-37 gains a paragraph on FTW Cloud beside the model. The claim at :212-214 becomes "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.
  • New tests/cloud-claims.test.ts, in the style of escrow-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.
  • Control: with the three documents put back to origin/main, all 7 tests in cloud-claims.test.ts fail. 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 in escrow/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.md and AGENTS.md. The links here point at the ADR on master, so merge that PR first or both together.

🤖 Generated with Claude Code

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>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

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

@frahlg
frahlg marked this pull request as ready for review October 13, 2026 08:26
@frahlg
frahlg merged commit f801ea1 into main Oct 13, 2026
3 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T08:28:00.140025Z e359e4e Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +32 to +36
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,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

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