Reviewer: Astra (GPT-6-Astra via Codex), posting as the configured agent account.
VERDICT: APPROVE
Whole-branch review of chore/rastrillo-path at e93afe345536a2736579902a444dae74ac76ce8d against freshly fetched origin/design/rulings-2026-09-19 (83f6d62), the live line. Read REVIEW-BRIEF.md, AGENTS.md, the pinned framework's SKILL.md and Sheets #44. Findings: none.
Verification:
CGO_ENABLED=0 make ciandmake browserpassed, with RASTRILLO_CHROME pointing to Playwright Chromium 1148 under ~/Library/Caches/ms-playwright. Remote CI passed at this exact SHA. Auth, mail, CSRF and sessions upstream tests also passed.- Compared old and new module production sources with only the module path normalized. Sessions, CSRF, database implementation and migrations have no other changes. App admission, owner mapping, sealing and authentication wiring retain their behavior. Auth adds optional
SubjectFor; Fichas leaves it nil, preserving the verified-address subject. This pin does not introduce the later CSP/time-storage changes. - Session token generation, hashing, expiration, revocation and cookie policy are unchanged: HTTP uses
rastrillo_session; HTTPS uses__Host-rastrillo_sessionwith Secure; both use Path=/, HttpOnly and SameSite=Lax. No session-package adapter is needed in this app. - Mail now adds Date and honors context cancellation, with a 30-second fallback only when there is no caller deadline. STARTTLS remains opportunistic and PlainAuth's cleartext restrictions remain. Configured credentials now fail closed when the relay offers no AUTH, including the HELO fallback edge case. Additive list-mail/Deliverer APIs are unused here. No auth email-body hook is available at this pin; the existing subject remains wired.
- Built clean
83f6d62, booted it over a fresh database and signed in through a real magic link using the loopback logging mailer. Created a card, encrypted notes and a call. Stopped it and booted this branch's host release binary over the same database and keys: schema and migration ledger unchanged, old cookie accepted, old content decrypted, a new call saved. Sign out revoked the old session./api/versionreturned e93afe3 frommake release RELEASE_GOOS=darwin RELEASE_GOARCH=arm64. go tool rastrillo doctor --fixcompared the matching pinned assets and left all three deliberate exceptions alone. calendar.js is absent and unlinked; datetime.js retains the browser-picker fallback. It is not otherwise byte-identical behavior: the updated text enhancer adds completion candidates and fixes repaint after native-picker changes. Fichas uses date fields, not the new time-slot picker. The old combined busy shim is unchanged upstream and still unsuitable alongside busy.js.- Mutation: substituting the library shim made
TestNoOldBusyRuleIsServedfail for both signed-in and sign-in layouts. Mutation of the release stamp back to the old symbol madeTestReleaseStampsTheServedVersionfail. Restored tests passed, includingTestNoPreMoveRastrillo. - The expanded
TestNoZoomOnTapcovers all seven named pages and asserts actual coarse-pointer emulation. Copied it to the old build with only import spelling adjusted: it passes with the old app's existing stopgap, as it should. Removing that stopgap makes all seven pages fail, at 12.5–14px. This verifies that the new upstream CSS replaces the stopgap; it is a computed-style test in Chromium, not a direct Mobile Safari zoom measurement. - Ran the supplied Fichas chrome check against isolated previews of this branch and the live base: both produce 71 passes and 76 failures, with byte-identical FAIL lines, all about the account menu absent on both. The account branch separately passes 193/193. Lowercase titles and text/plain unknown-route 404s remain the same known-open items.
- Inspected supplied r2 and migration screenshots, including narrow touch fields, create/edit, call log and delete confirmation. The 34→44px form-action buttons are acceptable: the increased hit area fits the inspected layouts. The upgrade also includes unused primary-input, stat, meter/progress and date-calendar styling; no app money-parser callsite is affected by the localized money-error change.
Landing: after estilo #23, fast-forward design/rulings-2026-09-19 with this branch first. Then rebase Fichas #7 onto that line, reconcile go.mod/go.sum and vendoredtest.go, and change `internal/fichastest/accounttest.go:15` to the canonical db import. Leaving it old creates incompatible db types at AppForTest and violates TestNoPreMoveRastrillo. Re-pin estilo to its landed main commit, refresh copied assets and run make ci, make browser and the chrome check on the combined result. These separate-head reviews do not certify an untested rebase.
No existing checkout moved or edited; no commits, pushes or merges. All /tmp scratch worktrees and fixture processes were removed. Disk checked: 40 GiB free before, 37 GiB after.