147 Commits

Author SHA1 Message Date
google-labs-jules[bot]
dad21ff257 sec(tasks): draft task for zero-trust scope guards
Drafts a comprehensive task specification for implementing zero-trust
scope guards on internal API routes and SSR UI pages, as requested.
The file adheres strictly to the repository's Kanban and Markdown
metadata guidelines.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-25 18:19:16 +00:00
70871726bc docs: soften approval wording in AGENTS.md to confirms execution 2026-08-25 10:28:48 -07:00
3b340257ee docs: add strict deliberation and user approval protocol to AGENTS.md 2026-08-25 10:26:47 -07:00
e4955f4bd2 feat(ui): add workshop pass creator drawer and 1-click app destination picker 2026-08-25 10:20:00 -07:00
8d4069709d fix(ui): resolve JS try-block syntax error and add SSR script syntax test suite 2026-08-25 10:10:05 -07:00
22bcd889c3 ui(sessions): simplify delegation copy and labels across sessions page and routes 2026-08-25 09:59:27 -07:00
e9a9fb500f docs: mark all tasks in ephemeral passes & event cockpit plan complete 2026-08-25 09:42:09 -07:00
f5bafbca78 fix(valkey,tasks): prevent unhandled connection hangs in sandbox and constrain test directives 2026-08-25 09:38:27 -07:00
a82136fc95 feat(cockpit): add live event metrics, seat roster, and master kill-switch 2026-08-25 09:33:44 -07:00
62fc91eb25 docs(tasks): point task 3 targets to server/routes/events.ts 2026-08-25 08:31:55 -07:00
578f3d06ac
Merge pull request #26 from mrteye/feat/event-passes-and-magic-links
feat(passes): implement ephemeral 1-click magic links, multi-claim event passes, PIN portal, and CLI 1-liner
2026-08-25 08:27:39 -07:00
39f3b2e3fa refactor(server): modularize main.ts into dedicated sub-routers (passes, events, sessions, forward-auth) 2026-08-25 08:17:06 -07:00
40804fd813 feat(passes): implement ephemeral 1-click magic links, event passes, PIN join portal, and CLI 1-liner 2026-08-25 08:14:16 -07:00
368150c2c0
Merge pull request #25 from mrteye/feat-ephemeral-magic-passes-11255256777317370393
feat: 1-Click Ephemeral Magic Link Redemption
2026-08-25 01:25:51 -07:00
google-labs-jules[bot]
2d34aa15a7 feat: implement ephemeral 1-click magic link redemption (/pass)
Implements the GET /pass?token=... endpoint for validating session tokens, resolving the correct target application domain dynamically, and routing users seamlessly using ephemeral 1-click magic links.
Also updates the Sessions Hub UI hand-off modal to display the 1-Click Magic Link and adds full test coverage.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-25 08:25:31 +00:00
7033c532b2 docs(plan): add plan and tasks for ephemeral magic links and multi-claim event passes 2026-08-25 00:40:33 -07:00
2af9ef1f40 docs: add Dual-Audience Development Guide for Agent-First APIs and Mobile-First UI 2026-08-25 00:11:56 -07:00
5f88733fc6 feat(sessions): implement agent session delegation with scoped permissions and instant handoff 2026-08-24 23:46:44 -07:00
80cab8454e feat(api): support Authorization: Bearer <session_id> in addition to Cookie headers for agent queries 2026-08-24 23:29:39 -07:00
85772659b7 feat(ui,api): polish a11y, mobile decks, app/role edit drawers, display name management, and instant search 2026-08-24 23:21:35 -07:00
509e6019b0 feat(ui): adapt admin management screens into responsive mobile cards and timeline feed 2026-08-24 22:20:47 -07:00
7ab1405459 feat(ui): implement adaptive card decks for launchpad, sessions, and passkeys with emergency recovery backup 2026-08-24 22:20:10 -07:00
a3f5c5c286 feat(ui): implement hero passkey authentication, conditional UI autofill, and 12-word recovery setup 2026-08-24 22:19:20 -07:00
029c32e022 feat(ui): implement design tokens and mobile-first adaptive navigation shell 2026-08-24 22:18:34 -07:00
8e7efcc1d1 docs(tasks): include Recovery PIN setup and 12-word voucher generation in task specs 2026-08-24 22:16:28 -07:00
449b428cea docs(tasks): add 4 phased task specifications for mobile-first UI revamp 2026-08-24 22:11:32 -07:00
c5f8f6fcbc docs: add technical design spec for mobile-first UI revamp 2026-08-24 22:10:09 -07:00
b9f4ccd71d feat(auth): resolve mobile cookie shadowing and synchronize tasks/path.md
- Implement iterative session cookie candidate resolution in getAuthenticatedUser
- Eliminate Hono first-match limitation causing mobile login redirect loops
- Use absolute UTC ISO strings for PostgreSQL session expiry queries
- Opportunistically clear host-level cookies upon shadow detection
- Ensure exhaustive server-side session revocation across all cookie candidates on logout
- Add automated regression test for cookie shadowing in server/main.test.ts
- Rename and standardize tasks/path.md with 5-template orchestrator standard
2026-08-24 21:48:33 -07:00
b66cc8209c
Merge pull request #24 from mrteye/jules/investigate-mobile-login-cookie-bug-12452066356128611281
chore: Complete Investigation on Mobile Login Cookie Redirect Failure
2026-08-24 21:23:18 -07:00
google-labs-jules[bot]
947b38d81a Investigate mobile login cookie persistence bug
- Investigated Chromium Android wildcard domain cookie behavior.
- Researched Hono's `getCookie` first-match parsing behavior.
- Added experimental Deno test scripts in `scratch/` for Hono cookie header parsing and pg timezone concepts.
- Wrote full root-cause analysis and ranked architectural solutions in `scratch/INVESTIGATIVE_REPORT.md`.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-25 00:31:19 +00:00
4b78f70efd fix(auth): eliminate conflicting deleteCookie and add created_at to users table 2026-08-24 17:14:07 -07:00
250e9c625b test: update logout redirect assertion 2026-08-24 16:23:12 -07:00
561588624a feat(ui): allow direct logout redirects to safe return urls instead of forcing login page 2026-08-24 16:22:15 -07:00
8babb8a46e fix(session): clear invalid cookies on redirect and add cache-control headers to prevent 302 caching loops 2026-08-24 15:57:02 -07:00
0a46e2bdfc fix(ui): use instant window.location.replace and hold loading state during auth redirect 2026-08-24 15:46:27 -07:00
54cdf0c442 fix(auth): remove invalid transports column reference in passkeys query 2026-08-24 15:41:49 -07:00
324ad24d05 fix(auth): add allowCredentials to login challenge options when username provided 2026-08-24 15:36:54 -07:00
cf42a32800 fix(auth): eliminate competing deleteCookie on login verify and ensure proper session persistence 2026-08-24 15:32:26 -07:00
3c57dfbc78 fix(merge): clean up merge conflicts in auth-session.ts and main.test.ts 2026-08-24 15:15:15 -07:00
09ed9de178
Merge pull request #23 from mrteye/feat-tier-1-ingress-control-217564989939913720
feat(auth-api): implement Tier 1 Traefik Ingress Control & Bypass Matrix

Key additions:
1. **Dynamic Bypass Matix:** Implemented native Deno path prefix routing and IPv4 CIDR subnet allowlisting directly inside the edge proxy sub-request without needing database lookups, ensuring <30μs latency. 
2. **Dual-Response Protocol (Unregistered Fallback):** Unregistered domains properly redirect web browsers to a central SSR 404/Error page (`/errors/unregistered`), while APIs/headless clients receive strict 403 JSON payloads. 
3. **Guest Sandboxes & In-Flight Promotion:** Introduced `POST /api/guests/sandbox` to rapidly provision ephemeral passkey-less sessions, and updated the WebAuthn verification endpoint to detect and promote those sessions without destroying their continuous UI state.
4. **Docs & UI:** Created `TIER1_INGRESS_SPEC.md` and wired up all dynamic bypass properties into the Admin Application Registry dashboard.
2026-08-24 15:13:41 -07:00
7230a4d7ea
Merge branch 'main' into feat-tier-1-ingress-control-217564989939913720 2026-08-24 15:13:20 -07:00
google-labs-jules[bot]
2ac6252bff feat(auth-api): implement Tier 1 Traefik Ingress Control & Bypass Matrix
- Add idempotent migrations for `is_public`, `bypass_paths`, and `allowed_cidrs` in `server/db.ts`.
- Update `AppRecord` and `getAppByHost` in `server/auth-session.ts` to cache bypass rules in Valkey.
- Implement native Deno, fast-path prefix (`isPathBypassed`) and CIDR matchers (`isIpAllowed`).
- Update `GET /api/forward-auth` to evaluate dynamic rules and properly return 302/403 for unregistered domains.
- Create `ui/components/UnregisteredAppPage.tsx` SSR view for browser fallbacks.
- Update `AdminAppsPage.tsx` to handle the new ingress settings visually and post to `/api/admin/apps`.
- Add `POST /api/guests/sandbox` to generate ephemeral Valkey guest sessions.
- Update `POST /api/register/verify` to detect `upgrade_session` and promote guests to full users in-flight.
- Add `docs/TIER1_INGRESS_SPEC.md`.
- Ensure tests run cleanly and add comprehensive unit test cases for the bypass matrix.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 22:08:43 +00:00
544fdf0569
Merge pull request #22 from mrteye/feat-sso-launchpad-logout-2100-7262934389430052995
feat(ui): implement App Launchpad and secure logout redirect

This PR implements the requested App Launchpad feature and secures the logout process against open-redirect attacks.

Key changes:
1. **Logout Return-Path Validation**: Added `isSafeRedirectUrl` and updated the `GET /logout` handler. Unsafe redirects are logged as `open_redirect_intercepted`, while successful logouts generate `logout_success` events on the Merkle ledger. All host and parent wildcard cookies (`getCookieDomain()`) are cleared to prevent state collisions.
2. **SSO Application Launchpad**: Introduced `ui/components/AppLaunchpadPage.tsx` using pure Hono SSR JSX. Updates `GET /dashboard` to render this page as the main authenticated landing view. Query logic uses strict Zero-Knowledge filtering—regular users only see explicitly granted apps, and Global Admins see all apps tagged with an `[Admin]` badge.
3. **Hybrid Ingress Playbook**: Authored `docs/HYBRID_INGRESS_PLAYBOOK.md` detailing the architectural split between Traefik ForwardAuth and client application SSR routing.
4. **Testing & QA**: Written comprehensive hermetic unit tests in `server/main.test.ts` for the redirect interceptor, standard logout logic, and Zero-Knowledge role queries. All tests pass with full quality gate compliance (`deno fmt`, `deno task lint`, `deno task check`).
2026-08-24 14:58:52 -07:00
google-labs-jules[bot]
e52f931edb feat(ui): implement App Launchpad and secure logout redirect
- Add isSafeRedirectUrl utility to prevent open-redirect vulnerabilities.
- Update GET /logout to handle ?redirect=, clear cookies safely, and log audit events.
- Create AppLaunchpadPage.tsx using pure Hono SSR JSX for application visibility and SSO launching.
- Update GET /dashboard and AuthenticatedLayout.tsx to mount the Launchpad as the default authenticated view with Zero-Knowledge querying.
- Add HYBRID_INGRESS_PLAYBOOK.md documentation for Traefik ForwardAuth routing.
- Implement exhaustive unit tests in server/main.test.ts for redirect preservation, anomaly logging, and Zero-Knowledge role filtering.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 21:58:36 +00:00
e9b9088fec docs: add Use Case 12 for Hybrid Cloud Edge, Cloudflare Tunnel & Split-Horizon audit requirements 2026-08-24 14:46:44 -07:00
b4b05c37ff feat(sdk): add ForwardAuth header passthrough hydration in createAuthMiddleware 2026-08-24 14:17:10 -07:00
cd1d866077 docs(tasks): standardize and upgrade Task 4.1 and Task 4.2 to 100% rubric compliance 2026-08-24 14:15:38 -07:00
443df1c2ce chore(tasks): remove JULES_PROMPTS.md to eliminate agent prompt confusion 2026-08-24 14:13:35 -07:00
226d04228b
Merge pull request #21 from mrteye/feat/auth-api-traefik-ingress-control-task-6742583984777370201
feat(tasks): create Traefik Universal Edge Ingress task file
2026-08-24 14:13:08 -07:00
9ace888b4b
Merge pull request #20 from mrteye/feat/sso-launchpad-task-file-4077230937799430847
docs: draft phase 4 sso launchpad and logout spec
2026-08-24 14:12:51 -07:00