Skip to content

Release updated CardCap interface and session recovery - #4

Merged
cody257 merged 22 commits into
mainfrom
codex/cardcap-access-project2
Nov 1, 2026
Merged

cody257 merged 22 commits into
mainfrom
codex/cardcap-access-project2

Conversation

@cody257

@cody257 cody257 commented Nov 1, 2026

Copy link
Copy Markdown
Member

Updates the CSI layout, account menus, phone controls, and session recovery. Includes opt-in Access support; production retains password/email-link login. Local unit, API, browser, simulated Access, rollback, lint, build, and deployment dry-run checks passed. Release source: 270e66a. Live authenticated acceptance remains pending.

cody257 and others added 22 commits September 30, 2026 12:06
Apply migrations/*.sql in the harness instead of relying on the Worker's runtime
ensureSchema, and add guards that prove indexes and production foreign keys exist.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Use the shared CSI stylesheet, tokens, Atkinson fonts and logo files. Square corners,
1px rules, 44px targets, visible focus ring, dark mode, grouped toolbar, skip link,
alert/status roles on messages, and a single-column phone layout. No auth or API changes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The header now contains the CSI monogram image, so img:first is no longer the card photo.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Test-first coverage for Access sign-in: RS256 JWT validation against an intercepted JWKS,
existing-account mapping, forged/expired/malformed tokens, alternate-host bypass, gated
routes, legacy routes returning 410, logout URL and cross-user isolation.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
API errors now say whether the session ended (401 or an edge login redirect), the account
was refused (403) or the network failed. A modal alert dialog explains each case, keeps
unsaved edits for return, and sign out follows only same-site Access logout paths.
Existing sign-in behavior is unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Send Access-mode requests over plain HTTP so the Host header matches what the edge delivers,
and align expectations with the implemented contract (access:<hash> ids, logout body).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
In Access mode hide the password screens, show who is signed in, explain a refused
account on first load, and leave through the Access logout path.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Simulated edge (redirects, fake sign-in, signed JWT) with specs for first visit and
return-to-app, expired session, logout, refused account, cross-user isolation and phone layout.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…t and rollback checks

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add cards is the primary action; export formats move into one Export menu and sign out
into an Account menu; Import is secondary. One welcome state when empty, search and list
once there are contacts, editor and card photo only for the selected contact. Controls are
40px with a mouse and 44px on touch; phones show one task at a time.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Serve Atkinson Hyperlegible Next and Mono (SIL OFL 1.1, license included) from /fonts instead of
Google Fonts, so the app makes no request to a font provider.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Remove the duplicate Add cards button from the welcome panel (Import stays secondary), show
initials for contacts without a photo, keep Add cards on one line and let the header scroll
away on phones, widen the account menu, and cover the change with specs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
In Access mode, Sign out ends the shared CSI sign-in (Cloudflare documents that it signs out
every Access app, with a 20 to 30 second delay). Ask first, focus the safe choice, return
focus on cancel. The current sign-in has no question because it only ends this app's session.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@cody257
cody257 merged commit e581148 into main Nov 1, 2026
1 check 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