33 Commits
Author SHA1 Message Date
Hermes Agent 4690eca75c feat: landing page, 404 pages, auth redirect + merge remote
- 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
2026-06-21 09:00:18 +10:00
junv b6212d8b3e Add link search 2026-06-20 22:08:52 +10:00
junv 425a91c347 Update 2026-06-20 21:40:24 +10:00
junv 7cfe499be4 Add notification 2026-06-20 21:07:56 +10:00
junv 21436ab98e Add logout 2026-06-20 20:18:58 +10:00
junv 3f9af56060 add sign in 2026-06-20 20:16:20 +10:00
junv 6c898fe1f0 update dev env 2026-06-20 20:06:10 +10:00
junv 02367ad1b8 update logic 2026-06-20 17:40:20 +10:00
junv d49d0e8e04 update copy links 2026-06-20 17:27:56 +10:00
junv 91b16aba53 make view activity works! 2026-06-20 17:14:51 +10:00
junv cb73e17261 Update UI 2026-06-20 16:10:20 +10:00
Hermes Agent b357e8aa80 feat: redesign nav — home shows public links, user menu with dropdown
- 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
2026-06-20 15:09:19 +10:00
Hermes Agent fd647bcc2e feat: add dev-only login for local admin access without OAuth
- 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
2026-06-20 14:55:28 +10:00
Hermes Agent cca4ea2ec3 fix: use my.dev.heygo.cc for dev private host instead of my.dev.junv.cc
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.
2026-06-20 14:32:12 +10:00
Hermes Agent e4fbbaec14 feat: add terraform IaC, dev/prod environments, and multi-host worker support
- 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
2026-06-20 14:26:56 +10:00
Hermes Agent 3b20137a98 feat: add promotion review UI 2026-06-20 13:33:14 +10:00
Hermes Agent d9298239c9 feat: add promotion review APIs 2026-06-20 12:58:56 +10:00
Hermes Agent d4ce524b74 fix: polish link management UI edge cases 2026-06-20 12:49:36 +10:00
Hermes Agent d1294a92d7 feat: add link management UI 2026-06-20 12:40:09 +10:00
Hermes Agent 7f939bef89 fix: harden link API validation and conflicts 2026-06-20 12:28:46 +10:00
Hermes Agent 0e93faab2d feat: add link CRUD APIs 2026-06-20 12:14:51 +10:00
Hermes Agent 57e77f3e3c fix: mark private host reserved responses no-store 2026-06-20 12:04:19 +10:00
Hermes Agent ebf365dfc9 fix: prevent caching private shortlink responses 2026-06-20 11:56:28 +10:00
Hermes Agent 0af13191df feat: resolve private shortlink redirects 2026-06-20 11:12:21 +10:00
Hermes Agent 10158e1f51 feat: add session guard 2026-06-20 10:58:32 +10:00
Hermes Agent f7a6b239f6 docs: record auth provider decision for workers 2026-06-20 10:51:48 +10:00
Hermes Agent d45091a7c3 feat: resolve public shortlink redirects 2026-06-20 10:39:53 +10:00
Hermes Agent 4f598225b5 fix: reuse path parameters for repeated templates 2026-06-20 10:31:22 +10:00
Hermes Agent 70cc8f5b4a feat: resolve parameterized shortlink URLs 2026-06-20 10:25:34 +10:00
Hermes Agent 6c0939947e test: cover invalid alias characters 2026-06-20 10:18:55 +10:00
Hermes Agent 0e3e80539e feat: validate shortlink aliases 2026-06-20 10:16:13 +10:00
Hermes Agent e6053b8114 feat: add D1 schema for shortlinks 2026-06-20 10:10:10 +10:00
Hermes Agent 32913619f4 feat: scaffold cloudflare shortlinks app 2026-06-20 09:57:13 +10:00