Invite UX polish and per-user onboarding flow #22
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
marvin8/xique#22
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The acceptance side of invites works: an invitee redeems a single-use, expiring code at
/invite/{code}. But there is no surface that mints an invite — no settings route, no CLI command;create_invitein the data layer has no caller anywhere in the app. Today the only way to onboard a second user is hand-inserting aninvitesrow with sqlite.Wanted:
/invite/{code}URL to hand to the invitee.Spec §7 and §14 (Phase 2).
Plan of attack (also carries #41 — the footer rides this branch as its own commit, per Marvin8):
Minting (admin-only,
/settings)require_admindependency.token_urlsafecode (same pattern as session tokens), inserts via the existingcreate_invite, and re-renders the settings page with the fullhttps://…/invite/{code}URL highlighted for copy-paste.list_open_invitesdata function, so links can be re-copied without minting duplicates.Onboarding
invite_postmints a session with the existingnew_session_token/create_sessionmachinery, sets the cookie exactly aslogin_postdoes, and redirects to/settings— no forced second login.HTTPException(JSON). Replace with rendered pages: 410 for expired/already-used ("ask for a fresh link"), 404 for unknown codes.Branch:
feat/issue-22-invite-minting-onboardingCommits:
PR via Forgejo API targeting
mainwithCloses #22andCloses #41.