Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Adds createUserSession, verifyUserSession, and deleteUserSession to auth.js, using HMAC signing and Prisma for session persistence with a 30-day expiry.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Deleted Footer.svelte (no longer needed) - Updated layout to use Header component - Cleaned up component exports Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replaced Apple-inspired variables with Living Minimal tokens - Updated Header with brand mark and proper color tokens - Fixed sign-in button and avatar styling - Dropdowns now use --surface, --border, --text-primary Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ThemeToggle: 44px → 36px - Avatar: 32px → 36px - Sign-in button: height 36px with pill shape Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use .icon-btn class to exclude from scale transform, use opacity change instead. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Implement bot/unfurler detection with OG meta tags - Add preview page UI showing destination URL and safety status - Implement click tracking with device, referrer, and country data - Add preview preference logic (link setting + visitor preference) - Create fallback for bots and no-JS environments - Follow Living Minimal design system (no emojis, progressive disclosure) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create onboarding page with username selection form - Redirect logged-in users without username to /onboarding - Add username to User type and auth queries - Handle race conditions on username claims with unique constraint - Display subdomain pattern (username.iksi.app) correctly - Sanitize suggested usernames from OAuth name Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Enables profile access at username.iksi.app by detecting profile subdomains and rewriting URLs to /profile routes. Stores profileUsername and profileUser in locals for route handlers. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
List authenticated user's links with pagination and click statistics. Includes organic vs bot breakdown for each link. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements the Links API create endpoint with: - Rate limiting differentiated by auth type (15/hr anonymous, 60/hr session, 600/hr API key) - Backwards compatible request body (url/longURL, customSlug/customURL) - URL deduplication per owner - Custom slug validation and uniqueness check - Structured error responses with code and message - Re-exports POST from /api/shorten for backwards compatibility Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements subdomain-based profile pages (e.g., alice.iksi.app) with two views: - Owner view: Dashboard with URL shortener and links management table - Public view: Profile page showing listed links Features include link toggle controls (listed/preview), click stats with organic %, delete confirmation, pagination, and responsive mobile layout. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Allow users to set a preference to always show a preview page before redirecting. For anonymous users, the preference is stored in a cookie. For signed-in users, it is persisted in the database. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The verifyUserSession implementation was updated to use explicit field selection including username and showPreview. Updated the test assertion to match the actual select object. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rate limiter: Use Prisma transaction for atomic check-then-increment, preventing TOCTOU race condition under high concurrency - Onboarding/UserMenu: Use environment-based URL construction via getProfileUrl() helper, enabling local development testing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove daisyUI btn classes to prevent uppercase transform - Add autofill override to keep consistent input background - Simplify container since layout already handles centering - Add hover/active states per DESIGN.md specs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.