- Complete visual overhaul by GLM 5.2: premium design with aurora glow,
dot-grid background, glassmorphism search shell
- Live search integrated into hero: debounced search of public links
- Dynamic action button: exact match → Go, no match → 创建个人链接
- Login callback flow for unauthenticated users
- Search suggestions chips (canva, piano, claude)
- Full responsive mobile support
- Redesigned LandingHero with sleek gradient background, search icon, badge
- Auth guard: unauthenticated users see login page instead of My Links
- LinkDetailPage: stats & history hidden by default, toggle via floating buttons
- Mobile responsive: hero adapts to small screens
- CSS: added detail-floating-actions, refined hero styles
- LandingHero: service intro + search input for unauthenticated users
- App.tsx/routing: logged-in users auto-redirect to My Links
- 404 pages: styled with login prompt + alias-based redirect
- Worker: getLinkById API for link detail page (LINK_BY_ID_*_QUERY)
- Private redirect: pass alias to 404/login pages for redirect flow
- Tests: update assertions for new 404 page text
- LandingHero: hero section with Heygo service intro + search input
- App.tsx: logged-in users auto-redirect to My Links
- LinkDetailPage: click-based stats/history toggle (hidden by default)
- 404 pages: styled with login prompt for private links
- Private redirect: pass alias to 404/login pages for redirect flow
- Mobile responsive: prevent text overflow on small screens
- PUBLIC_HOST/PRIVATE_HOST='*' matches any hostname (localhost, LAN IPs)
- Public route falls through to private on 404 (shared host in local dev)
- If both return 404, keep original public 404 response
- APP_BASE_URL updated to http://localhost:8787 for local dev
All 298 links from GoLinks export are now private links owned by
wahyd4@gmail.com. Users can selectively promote links to public
via the promotion flow.
- just dev now uses wrangler dev --ip 0.0.0.0 --port 8787
- just dev-ui uses vite --host 0.0.0.0
- just import-links [file] to import SQL into local D1
- 298 links from GoLinks export included in imports/links-import.sql
- Remove Public Directory tab; public links now show on home page
- Rename Private Links to My Links
- Add right-aligned user menu with hover dropdown (Profile, Settings, Admin, Logout)
- Show admin badge next to username when role=admin
- Show Sign In button when not logged in
- Admin tab only visible to admins
- New GET /api/auth/me endpoint returns current user from session
- useCurrentUser hook for auth state in React
- CSS-only hover dropdown with fade-in animation
- Placeholder pages for Profile and Settings
- POST /api/auth/dev-login creates/finds user, promotes to admin, sets session cookie
- POST /api/auth/dev-logout clears session cookie
- Dev login page at #/dev-login in the SPA
- Fix: getSessionCookieAttributes omits Secure over HTTP (local dev fix)
- Guarded: only works when PUBLIC_HOST=localhost, returns 403 otherwise
- Justfile: dev-admin and dev-logout commands
- README: local admin login instructions
- justfile with recipes for: build, dev, test, migrate, db helpers,
deploy (dev/prod), terraform infra, and smoke test
- README rewritten with quick start, command tables, and first-time
local setup guide
- All commands verified working locally
junv.cc is reserved for k3s home services, not Cloudflare apps.
Both dev and prod private hosts now live under heygo.cc, sharing
the .heygo.cc cookie domain — no cross-domain auth issues.
- Terraform configs for D1 databases, KV namespaces, Worker custom domains
- wrangler.dev.jsonc and wrangler.prod.jsonc for environment-specific deployments
- Worker code refactored to use env vars for host checking (PUBLIC_HOST, PRIVATE_HOST)
- Configurable app URLs and cookie domain via env vars
- Deploy and migrate npm scripts for dev/prod
- Updated all tests with new env fixtures
- Deployment guide in README