feat: Phase 1 — extract the client (web SPA + desktop) to dtoro/oikos-web
Problem: the hexagonal refactor churns the backend tree for nine more phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper, compose/web image) must move to its own repo first so doc/layout rewrites land once on a backend-only tree. Change: - New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/ (updateURL repointed to oikos-web releases), compose/, own CI (web + desktop jobs), own deploy script (CI-green gate, TOCTOU guard, version-tagged images, prune-to-3), own webhook receiver on :9798 + launchd unit, own compose project publishing the same 8091:80. - Cutover executed on mac-mini in order: oikos stack's web service stopped+removed, oikos-web project brought up on 8091; outer Caddy untouched (targets the published port) — serving + Authentik flow + /wails 404 quirk verified post-cutover. - Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install targets, the compose web service, oikos-web from deploy.sh's fallback prune list; wails + go-keyring dropped from go.mod, vendor synced. - README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now point at the new repo; mbse + mascot design docs carry a path note. Risk: production SPA serving depends on the new pipeline now; rollback is versioned-image re-up of the old web service from a pre-split checkout (port 8091). Desktop builds installed before the split still check dtoro/oikos releases — one manual reinstall, noted in the oikos-web release notes. Verification: go vet, make test (race), make generate-check, golangci (no new findings; baseline down 400→365); post-cutover curls — localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
This commit is contained in:
15
web/node_modules/svelte-sonner/dist/icons/CloseIcon.svelte
generated
vendored
Normal file
15
web/node_modules/svelte-sonner/dist/icons/CloseIcon.svelte
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="12"
|
||||
height="12"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="1.5"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
data-sonner-close-icon
|
||||
>
|
||||
<line x1="18" y1="6" x2="6" y2="18" />
|
||||
<line x1="6" y1="6" x2="18" y2="18" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 305 B |
26
web/node_modules/svelte-sonner/dist/icons/CloseIcon.svelte.d.ts
generated
vendored
Normal file
26
web/node_modules/svelte-sonner/dist/icons/CloseIcon.svelte.d.ts
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export default CloseIcon;
|
||||
type CloseIcon = SvelteComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}> & {
|
||||
$$bindings?: string | undefined;
|
||||
};
|
||||
declare const CloseIcon: $$__sveltets_2_IsomorphicComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}, {}, string>;
|
||||
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
||||
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
||||
$$bindings?: Bindings;
|
||||
} & Exports;
|
||||
(internal: unknown, props: {
|
||||
$$events?: Events;
|
||||
$$slots?: Slots;
|
||||
}): Exports & {
|
||||
$set?: any;
|
||||
$on?: any;
|
||||
};
|
||||
z_$$bindings?: Bindings;
|
||||
}
|
||||
14
web/node_modules/svelte-sonner/dist/icons/ErrorIcon.svelte
generated
vendored
Normal file
14
web/node_modules/svelte-sonner/dist/icons/ErrorIcon.svelte
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
height="20"
|
||||
width="20"
|
||||
data-sonner-error-icon
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 334 B |
26
web/node_modules/svelte-sonner/dist/icons/ErrorIcon.svelte.d.ts
generated
vendored
Normal file
26
web/node_modules/svelte-sonner/dist/icons/ErrorIcon.svelte.d.ts
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export default ErrorIcon;
|
||||
type ErrorIcon = SvelteComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}> & {
|
||||
$$bindings?: string | undefined;
|
||||
};
|
||||
declare const ErrorIcon: $$__sveltets_2_IsomorphicComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}, {}, string>;
|
||||
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
||||
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
||||
$$bindings?: Bindings;
|
||||
} & Exports;
|
||||
(internal: unknown, props: {
|
||||
$$events?: Events;
|
||||
$$slots?: Slots;
|
||||
}): Exports & {
|
||||
$set?: any;
|
||||
$on?: any;
|
||||
};
|
||||
z_$$bindings?: Bindings;
|
||||
}
|
||||
14
web/node_modules/svelte-sonner/dist/icons/InfoIcon.svelte
generated
vendored
Normal file
14
web/node_modules/svelte-sonner/dist/icons/InfoIcon.svelte
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
height="20"
|
||||
width="20"
|
||||
data-sonner-info-icon
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 433 B |
26
web/node_modules/svelte-sonner/dist/icons/InfoIcon.svelte.d.ts
generated
vendored
Normal file
26
web/node_modules/svelte-sonner/dist/icons/InfoIcon.svelte.d.ts
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export default InfoIcon;
|
||||
type InfoIcon = SvelteComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}> & {
|
||||
$$bindings?: string | undefined;
|
||||
};
|
||||
declare const InfoIcon: $$__sveltets_2_IsomorphicComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}, {}, string>;
|
||||
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
||||
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
||||
$$bindings?: Bindings;
|
||||
} & Exports;
|
||||
(internal: unknown, props: {
|
||||
$$events?: Events;
|
||||
$$slots?: Slots;
|
||||
}): Exports & {
|
||||
$set?: any;
|
||||
$on?: any;
|
||||
};
|
||||
z_$$bindings?: Bindings;
|
||||
}
|
||||
14
web/node_modules/svelte-sonner/dist/icons/SuccessIcon.svelte
generated
vendored
Normal file
14
web/node_modules/svelte-sonner/dist/icons/SuccessIcon.svelte
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
height="20"
|
||||
width="20"
|
||||
data-sonner-success-icon
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 355 B |
26
web/node_modules/svelte-sonner/dist/icons/SuccessIcon.svelte.d.ts
generated
vendored
Normal file
26
web/node_modules/svelte-sonner/dist/icons/SuccessIcon.svelte.d.ts
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export default SuccessIcon;
|
||||
type SuccessIcon = SvelteComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}> & {
|
||||
$$bindings?: string | undefined;
|
||||
};
|
||||
declare const SuccessIcon: $$__sveltets_2_IsomorphicComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}, {}, string>;
|
||||
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
||||
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
||||
$$bindings?: Bindings;
|
||||
} & Exports;
|
||||
(internal: unknown, props: {
|
||||
$$events?: Events;
|
||||
$$slots?: Slots;
|
||||
}): Exports & {
|
||||
$set?: any;
|
||||
$on?: any;
|
||||
};
|
||||
z_$$bindings?: Bindings;
|
||||
}
|
||||
15
web/node_modules/svelte-sonner/dist/icons/WarningIcon.svelte
generated
vendored
Normal file
15
web/node_modules/svelte-sonner/dist/icons/WarningIcon.svelte
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<svg
|
||||
viewBox="0 0 64 64"
|
||||
fill="currentColor"
|
||||
height="20"
|
||||
width="20"
|
||||
data-sonner-warning-icon
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M32.427,7.987c2.183,0.124 4,1.165 5.096,3.281l17.936,36.208c1.739,3.66 -0.954,8.585 -5.373,8.656l-36.119,0c-4.022,-0.064 -7.322,-4.631 -5.352,-8.696l18.271,-36.207c0.342,-0.65 0.498,-0.838 0.793,-1.179c1.186,-1.375 2.483,-2.111 4.748,-2.063Zm-0.295,3.997c-0.687,0.034 -1.316,0.419 -1.659,1.017c-6.312,11.979 -12.397,24.081 -18.301,36.267c-0.546,1.225 0.391,2.797 1.762,2.863c12.06,0.195 24.125,0.195 36.185,0c1.325,-0.064 2.321,-1.584 1.769,-2.85c-5.793,-12.184 -11.765,-24.286 -17.966,-36.267c-0.366,-0.651 -0.903,-1.042 -1.79,-1.03Z"
|
||||
/>
|
||||
<path
|
||||
d="M33.631,40.581l-3.348,0l-0.368,-16.449l4.1,0l-0.384,16.449Zm-3.828,5.03c0,-0.609 0.197,-1.113 0.592,-1.514c0.396,-0.4 0.935,-0.601 1.618,-0.601c0.684,0 1.223,0.201 1.618,0.601c0.395,0.401 0.593,0.905 0.593,1.514c0,0.587 -0.193,1.078 -0.577,1.473c-0.385,0.395 -0.929,0.593 -1.634,0.593c-0.705,0 -1.249,-0.198 -1.634,-0.593c-0.384,-0.395 -0.576,-0.886 -0.576,-1.473Z"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
26
web/node_modules/svelte-sonner/dist/icons/WarningIcon.svelte.d.ts
generated
vendored
Normal file
26
web/node_modules/svelte-sonner/dist/icons/WarningIcon.svelte.d.ts
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export default WarningIcon;
|
||||
type WarningIcon = SvelteComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}> & {
|
||||
$$bindings?: string | undefined;
|
||||
};
|
||||
declare const WarningIcon: $$__sveltets_2_IsomorphicComponent<{
|
||||
[x: string]: never;
|
||||
}, {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
}, {}, {}, string>;
|
||||
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
||||
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
||||
$$bindings?: Bindings;
|
||||
} & Exports;
|
||||
(internal: unknown, props: {
|
||||
$$events?: Events;
|
||||
$$slots?: Slots;
|
||||
}): Exports & {
|
||||
$set?: any;
|
||||
$on?: any;
|
||||
};
|
||||
z_$$bindings?: Bindings;
|
||||
}
|
||||
Reference in New Issue
Block a user