feat: svelte xP - #51
Closed
szymeo wants to merge 427 commits into
Closed
Conversation
# Conflicts: # AGENTS.md
- Add /app/cli-authorize in SvelteKit with cli-flow API and client-side crypto - Preserve allowlisted return path via sessionStorage through OAuth; invite still wins in gotoAfterLogin - Remove unused device-flow placeholder module - Expand visual parity routes; add MANUAL_SMOKE matrix - Document flip/rollback in docs/web-app-cutover-runbook.md; README and WEB_APP_URL defaults for Svelte dev (9090) - Add web-ci.yml for pnpm --filter web check + build Made-with: Cursor
…nav guard - Backend: ProductAnalyticsService + identify/login + project/secrets/git semantic events; POST analytics/secrets-pushed ack; Jest imports PosthogAnalyticsModule - Web: remove posthog-js; device-flow SSE + UnlockBrowserDialog + approver dialog in layout - Members: pending link/personal invitations list + revoke (admin) - Secrets editor: unsaved SPA navigation guard + beforeunload dialog - Integrations: acknowledge secrets-pushed after GitHub push; MOBILE_QA_CHECKLIST.md Made-with: Cursor
Made-with: Cursor
Draft
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.
Latest (this push) —
dbc67ddaSlide-to-confirm handle alignment
apps/webwithpnpm checkandpnpm build.No ticket number provided.
Previous —
1a2bf457.gitignore— local agent tool directories.claude/and.codex/at the repo root so local-only agent directories are not committed.No ticket number provided.
Previous —
a24d772Shared agent command configuration
.agents/commandsentries for PR babysitting, commit/push workflow, skill creation, multibuild execution, and stress-testing plans..opencode/commandsand.opencode/skillsto the shared command and skill directories..codex/commands/cm.mdwith the sharedcmcommand. Local.claude/.codextrees are not part of the repository (use.gitignorefor per-machine tooling).No ticket number provided.
Previous —
0d7fe4aSvelte migration parity — backend analytics, device-flow, invites, unsaved guard
ProductAnalyticsService+ global module;logged_in/ identify on OAuth, local, CLI poll, refresh;project_created,secrets_saved,integration_created,installation_created;secrets_pushedviaPOST projects/:projectId/analytics/secrets-pushed(client ack after GitHub secret push).posthog-jsand client captures; device-flow modules + UnlockBrowserDialog connected devices + approver dialog in layout.beforeNavigate,beforeunload, Save & continue / Discard / Keep editing).apps/web/e2e/MOBILE_QA_CHECKLIST.md.PosthogAnalyticsModule.No ticket number provided.
Earlier —
895153cCLI browser authorization on Svelte (pre-cutover parity with React)
/app/cli-authorize— New route andCliAuthorizePage: loads pending session viaauth/cli-flowAPI, passphrase unwrap + envelope encryption, approve POST. Same crypto patterns as the legacy React page; no server-side secrets.cli-authorize-return.tsstores an allowlisted path (/app/cli-authorize?session=<32-hex public id>) in sessionStorage before redirecting unauthenticated users to login.gotoAfterLoginconsumes it after invite (localStorage) so OAuth in the same tab returns to the approve screen. Open-redirect safe path allowlist.apps/web/src/lib/device-flow/placeholder tree./app/cli-authorizeand/app/project(logged-out shell);apps/web/e2e/MANUAL_SMOKE.mdfor behavioral checks.docs/web-app-cutover-runbook.md(flip, rollback,WEB_APP_URL, retiringfrontend/). README calls out SvelteKit + runbook.backend/.env.exampleand devEnvConfigs.webAppUrldefault to 9090 for local Svelte + CLI links..github/workflows/web-ci.ymlrunspnpm --filter web checkandpnpm --filter web buildon relevant path changes.No ticket number provided.
Earlier —
da1ebe2apps/webproject flows (parity with main app behavior)loadUserData()now returnsbooleanso UIs can tell if/users/mesucceeded before relying onuserData/publicKey.PUBLIC_APP_URLwhen unset:http://127.0.0.1:9090(matchesvite dev --port 9090), not 5173.ProjectsApi:getProject,updateProjectContent(PATCH encrypted secrets) — same as the React client.ProjectsPage: load profile, then project list; profile error + Retry; empty state shows passphrase/setup hint if nopublicKey; create errors surfaced (no silent failure).SecretsEditorPage: loads project from API, decrypts with keystore + master key (same path asprojectLogicinfrontend); debounced auto-save; explicit Save + ⌘S; states for locked browser, 404 (redirect to/app/project), read-only member.Earlier — Cloudflare / CI
Cloudflare / CI build fixes
daisyui— Added as awebdevDependency and lockfile entry so Tailwind can resolve@plugin "daisyui"inapp.css(fixesCan't resolve 'daisyui'on Cloudflare).apps/webengines.node(>=20.19.0) plus.nvmrc/apps/web/.nvmrc(22) so Pages uses a compatible Node for Vite 7.compatibility_flagsnow includesnodejs_als(SvelteKit) alongsidenodejs_compat.Tracked missing module
apps/web/src/lib/auth/after-login.tscommitted so CI can resolve imports fromAcceptInvitationPageet al.Ops note
Align PNPM_VERSION in Cloudflare with the repo (
packageManager/ lockfile). Consider turning off SKIP_DEPENDENCY_INSTALL unless you rely on a custom install only in the build command.