From 498f47d14890d26cb65009a61e3f0cc38c785717 Mon Sep 17 00:00:00 2001 From: tristantr Date: Mon, 8 Jun 2026 11:31:24 +0200 Subject: [PATCH] feat(projects): add project install page New /projects/install page pulls a hub project's export and re-creates it in the selected workspace. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../(logged)/projects/install/+page.svelte | 278 ++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 frontend/src/routes/(root)/(logged)/projects/install/+page.svelte diff --git a/frontend/src/routes/(root)/(logged)/projects/install/+page.svelte b/frontend/src/routes/(root)/(logged)/projects/install/+page.svelte new file mode 100644 index 0000000000..6c8fafdf98 --- /dev/null +++ b/frontend/src/routes/(root)/(logged)/projects/install/+page.svelte @@ -0,0 +1,278 @@ + + +
+ {#if !slug} +

Missing ?hub=<slug>.

+ {:else if loading} +
+ Loading project… +
+ {:else if loadError} +

Failed to load project: {loadError}

+ {:else if data} +

Add “{data.project.name}” to workspace

+

{data.project.summary}

+

+ Imported into {workspace} under + f/{data.project.slug}/. +

+ +
+ {counts?.scripts} scripts + {counts?.flows} flows + {counts?.apps} apps + {counts?.resources} resources + {counts?.triggers} triggers +
+ +
+ Resources are imported as empty stubs — set their values after import. Schedules are imported + disabled. +
+ +
+ + {#if done} + + {/if} +
+ + {#if results.length} +
    + {#each results as r} +
  • + {r.ok ? '✓' : '✗'} + {r.path} + {#if !r.ok}— {r.error}{/if} +
  • + {/each} +
+ {/if} + {/if} +