Skip to content

fix(oauth): the consent page names the box's own page, and its lookup refusals can be read there - #25

Merged
frahlg merged 1 commit into
mainfrom
claude/box-access-words
Oct 17, 2026
Merged

frahlg merged 1 commit into
mainfrom
claude/box-access-words

Conversation

@frahlg

@frahlg frahlg commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Why

Fredrik, 17 October: an owner must be able to connect an assistant over MCP with no app involved. Such an owner approves on the box's own page, in the new Settings → Access tab (srcfl/ftw#1682). Two things here did not fit that.

What changes

  • The words. The consent page said "You can remove it at any time in the FTW app", which is wrong for an owner with no app. It now says "in the FTW app or on your box's own page". The line under the QR code named an Access page without saying where it is; it now reads "No app? On your box's own page, open Settings, then Access, and type", over the code.
  • The code lookup's refusals. The box page asks GET /oauth/requests?code= from the owner's browser, on whatever address the box has. Only a found code carried Access-Control-Allow-Origin: *, so the browser hid a 404 and a 429 behind the same network error, and the page could not tell a mistyped code from no network. Every answer of the lookup now carries the header. A refusal says nothing a code does not, and the lookup stays rate limited and works once.

Paired with srcfl/ftw#1682. Either can merge first: the box page already words a hidden refusal as "No answer from FTW Cloud. Check the code against the assistant's page, and that this device is online".

Tests

  • TestTheBoxPageFindsARequestByItsCode checks the header on an unknown code and on a rate-limited lookup.
  • TestTheConsentPage checks both new lines.
  • go vet ./..., go test -race ./..., go test -tags ftwclouddev ./internal/oauth and scripts/check-imports.sh pass. Under the load of a parallel make verify, TestTheSnapshotArrivesFast in internal/appsession (untouched here) missed its 100 ms p95 once; it passed three times in a row after.

Nothing is deployed from here.

🤖 Generated with Claude Code

… refusals can be read there

An owner with no FTW app approves and removes an assistant on the box's own
page, under Settings, then Access. The consent page said removal happens
"in the FTW app" only, and named an Access page without saying where.

The box page asks the code lookup from the owner's browser. Only a found
code carried Access-Control-Allow-Origin, so the browser hid a wrong code
and a rate limit behind the same network error. Every answer of the lookup
now carries it; a refusal says nothing a code does not.

Paired with srcfl/ftw's Access tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 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-17T05:41:52.945014Z 8fbf90d PR opened
ℹ️ 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.

@frahlg
frahlg merged commit 3a7295f into main Oct 17, 2026
2 of 5 checks passed
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