đ¤ Opened by Claude (Opus 5.5), agent account.
Why
polish-audit r3 SUMMARY items 6/7: the door's copy drifted per app, and Slides' submit read "Email me a link". Paul's rulings: 2026-10-01 the submit reads "Sign in"; 2026-09-23 the hub is never named, it is "your Oficina account". estilo feat/door-copy (fbd14e7, oficina/estilo #19) now owns the whole door copy set (chrome.English), and an app override no longer compiles.
What changed (commit 2b54a2f)
- go.mod: estilo pinned to
v0.0.0-20261001075355-fbd14e759027 (fbd14e7), go mod tidy. internal/slides/auth.go - Form: chrome.SignIn loses Heading/AddressLabel/Help/Submit; title part is form.Page() (layout appends " ¡ Slides"). - Sent: chrome.SignInNotice{âŚ}.Sent(again). The existing again logic is kept: /signin or /signin/local in Home mode, plus the remembered return_to. - Signed out: chrome.SignInNotice{âŚ}.SignedOut("/signin"), title part notice.Page(). This page is also what connect's "signedout" state renders (home.go renderHome already delegates to renderSignedOut), so Home mode shows the door's copy, not connect's "Sign in with Home". The href /signin is the same as connect's Action for that state. - rauth.Config.Subject = chrome.EmailSubject("Slides"), which gives "Sign in to Slides" (it was rastrillo's default "Your sign-in link").- Deleted from
locales/en.toml: slides.signin.title, .address.label, .help, .submit ("Email me a link"), .sent.title, .sent, .again; slides.signedout.title/.heading/.body; slides.home.signedout_title/_body/_action (unused, because renderHome never asks connect for that state). Kept: slides.signin.error.* and slides.chrome.signin (the bar's Sign in link). No Lede was set, so none was deleted.
Test red â green
New internal/slidestest/signin_door_test.go TestDoorCopyIsEstilos checks the help line, ">Sign in</button>", no "Email me a link" and no "Home", the sent body, ">Use a different address</a>", "Youâre signed out", the body, and the three tab titles. home_test.go now matches the retry link by "Use a different address" and checks that the Home-mode /signed-out is the door's page.
Before the change (old estilo, old code):
--- FAIL: TestDoorCopyIsEstilos (0.21s)
signin_door_test.go:76: GET /signin lacks ">Sign in</button>"
signin_door_test.go:81: GET /signin says "Email me a link"
FAIL
After: ok amadan.net/oficina/slides/internal/slidestest. Full make ci (vet, fmt-check, test, migration-check, credits-check) passes.
Local verification (run-dev.sh, local sign-in, port 8461, local-signedout.mjs)
| path | title | h1 | button | help / body | links | |---|---|---|---|---|---| | /signin | Sign in ¡ Slides | Sign in | Sign in | Weâll email you a link that signs you in. It works once and expires in 15 minutes. | Open source | | /signin?sent=1 | Check your email ¡ Slides | Check your email | none | If that address can sign in here, weâve sent it a link. It works once and expires in 15 minutes. | Use a different address | | /signin?err=expired | Sign in ¡ Slides | Sign in | Sign in | the expired error, then the help line | Open source | | /signed-out | Signed out ¡ Slides | Youâre signed out | none | Youâve signed out of Slides on this device. | Sign in |
Home-mode /signed-out is covered by the unit test, not a live run.
Dependency
Must not merge before estilo feat/door-copy lands. After estilo's squash, re-pin to estilo main (go get amadan.net/oficina/estilo.git@main && go mod tidy).
Follow-up
The sign-in email body is still rastrillo's default. rastrillo/auth can't set it yet; a rastrillo branch is drafting Config.Body. When it lands, set Body: chrome.EmailBody("Slides"). This branch has no workaround.
Expected conflicts
origin/feat/r2-shared-chrome (14 ahead, 2026-09-24): touches internal/slides/auth.go (the same chrome.SignIn/SignInNotice literals, with Heading/Submit/âŚ), locales/en.toml (the same keys), home.go, home_test.go, and go.mod/go.sum. Most of its content looks already on main through signin-door, but its commits are not patch-equal. Resolve auth.go/en.toml by taking this branch's side (door copy from estilo, keys deleted). An override field won't compile against the new estilo anyway. home_test.go: keep the "Use a different address" regex.origin/wip/r2-slides-editor, origin/feat/estilo-theme, origin/feat/estilo-save-status: go.mod/go.sum only.- go.mod/go.sum everywhere: take the newer estilo, then re-run
go mod tidy.