feat: Phase 1 — extract the client (web SPA + desktop) to dtoro/oikos-web
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled

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:
2026-08-15 22:27:52 +02:00
parent e074f04bdf
commit d4d99a7473
18854 changed files with 2615729 additions and 173735 deletions

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_apply_decorated_descriptor.cjs",
"module": "../../esm/_apply_decorated_descriptor.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_apply_decs_2203_r.cjs",
"module": "../../esm/_apply_decs_2203_r.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_apply_decs_2311.cjs",
"module": "../../esm/_apply_decs_2311.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_array_like_to_array.cjs",
"module": "../../esm/_array_like_to_array.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_array_with_holes.cjs",
"module": "../../esm/_array_with_holes.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_array_without_holes.cjs",
"module": "../../esm/_array_without_holes.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_assert_this_initialized.cjs",
"module": "../../esm/_assert_this_initialized.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_async_generator.cjs",
"module": "../../esm/_async_generator.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_async_generator_delegate.cjs",
"module": "../../esm/_async_generator_delegate.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_async_iterator.cjs",
"module": "../../esm/_async_iterator.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_async_to_generator.cjs",
"module": "../../esm/_async_to_generator.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_await_async_generator.cjs",
"module": "../../esm/_await_async_generator.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_await_value.cjs",
"module": "../../esm/_await_value.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_call_super.cjs",
"module": "../../esm/_call_super.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_check_private_redeclaration.cjs",
"module": "../../esm/_check_private_redeclaration.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_apply_descriptor_destructure.cjs",
"module": "../../esm/_class_apply_descriptor_destructure.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_apply_descriptor_get.cjs",
"module": "../../esm/_class_apply_descriptor_get.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_apply_descriptor_set.cjs",
"module": "../../esm/_class_apply_descriptor_set.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_apply_descriptor_update.cjs",
"module": "../../esm/_class_apply_descriptor_update.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_call_check.cjs",
"module": "../../esm/_class_call_check.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_check_private_static_access.cjs",
"module": "../../esm/_class_check_private_static_access.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_check_private_static_field_descriptor.cjs",
"module": "../../esm/_class_check_private_static_field_descriptor.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_extract_field_descriptor.cjs",
"module": "../../esm/_class_extract_field_descriptor.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_name_tdz_error.cjs",
"module": "../../esm/_class_name_tdz_error.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_destructure.cjs",
"module": "../../esm/_class_private_field_destructure.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_get.cjs",
"module": "../../esm/_class_private_field_get.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_init.cjs",
"module": "../../esm/_class_private_field_init.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_loose_base.cjs",
"module": "../../esm/_class_private_field_loose_base.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_loose_key.cjs",
"module": "../../esm/_class_private_field_loose_key.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_set.cjs",
"module": "../../esm/_class_private_field_set.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_field_update.cjs",
"module": "../../esm/_class_private_field_update.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_method_get.cjs",
"module": "../../esm/_class_private_method_get.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_method_init.cjs",
"module": "../../esm/_class_private_method_init.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_private_method_set.cjs",
"module": "../../esm/_class_private_method_set.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_static_private_field_destructure.cjs",
"module": "../../esm/_class_static_private_field_destructure.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_static_private_field_spec_get.cjs",
"module": "../../esm/_class_static_private_field_spec_get.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_static_private_field_spec_set.cjs",
"module": "../../esm/_class_static_private_field_spec_set.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_static_private_field_update.cjs",
"module": "../../esm/_class_static_private_field_update.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_class_static_private_method_get.cjs",
"module": "../../esm/_class_static_private_method_get.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_construct.cjs",
"module": "../../esm/_construct.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_create_class.cjs",
"module": "../../esm/_create_class.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_create_for_of_iterator_helper_loose.cjs",
"module": "../../esm/_create_for_of_iterator_helper_loose.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_create_super.cjs",
"module": "../../esm/_create_super.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_decorate.cjs",
"module": "../../esm/_decorate.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_defaults.cjs",
"module": "../../esm/_defaults.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_define_enumerable_properties.cjs",
"module": "../../esm/_define_enumerable_properties.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_define_property.cjs",
"module": "../../esm/_define_property.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_dispose.cjs",
"module": "../../esm/_dispose.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_export_star.cjs",
"module": "../../esm/_export_star.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_extends.cjs",
"module": "../../esm/_extends.js"
}

4
web/node_modules/@swc/helpers/_/_get/package.json generated vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_get.cjs",
"module": "../../esm/_get.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_get_prototype_of.cjs",
"module": "../../esm/_get_prototype_of.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_identity.cjs",
"module": "../../esm/_identity.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_inherits.cjs",
"module": "../../esm/_inherits.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_inherits_loose.cjs",
"module": "../../esm/_inherits_loose.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_initializer_define_property.cjs",
"module": "../../esm/_initializer_define_property.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_initializer_warning_helper.cjs",
"module": "../../esm/_initializer_warning_helper.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_instanceof.cjs",
"module": "../../esm/_instanceof.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_interop_require_default.cjs",
"module": "../../esm/_interop_require_default.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_interop_require_wildcard.cjs",
"module": "../../esm/_interop_require_wildcard.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_is_native_function.cjs",
"module": "../../esm/_is_native_function.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_is_native_reflect_construct.cjs",
"module": "../../esm/_is_native_reflect_construct.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_iterable_to_array.cjs",
"module": "../../esm/_iterable_to_array.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_iterable_to_array_limit.cjs",
"module": "../../esm/_iterable_to_array_limit.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_iterable_to_array_limit_loose.cjs",
"module": "../../esm/_iterable_to_array_limit_loose.js"
}

4
web/node_modules/@swc/helpers/_/_jsx/package.json generated vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_jsx.cjs",
"module": "../../esm/_jsx.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_new_arrow_check.cjs",
"module": "../../esm/_new_arrow_check.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_non_iterable_rest.cjs",
"module": "../../esm/_non_iterable_rest.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_non_iterable_spread.cjs",
"module": "../../esm/_non_iterable_spread.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_object_destructuring_empty.cjs",
"module": "../../esm/_object_destructuring_empty.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_object_spread.cjs",
"module": "../../esm/_object_spread.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_object_spread_props.cjs",
"module": "../../esm/_object_spread_props.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_object_without_properties.cjs",
"module": "../../esm/_object_without_properties.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_object_without_properties_loose.cjs",
"module": "../../esm/_object_without_properties_loose.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_overload_yield.cjs",
"module": "../../esm/_overload_yield.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_possible_constructor_return.cjs",
"module": "../../esm/_possible_constructor_return.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_read_only_error.cjs",
"module": "../../esm/_read_only_error.js"
}

4
web/node_modules/@swc/helpers/_/_set/package.json generated vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_set.cjs",
"module": "../../esm/_set.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_set_prototype_of.cjs",
"module": "../../esm/_set_prototype_of.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_skip_first_generator_next.cjs",
"module": "../../esm/_skip_first_generator_next.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_sliced_to_array.cjs",
"module": "../../esm/_sliced_to_array.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_sliced_to_array_loose.cjs",
"module": "../../esm/_sliced_to_array_loose.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_super_prop_base.cjs",
"module": "../../esm/_super_prop_base.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_tagged_template_literal.cjs",
"module": "../../esm/_tagged_template_literal.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_tagged_template_literal_loose.cjs",
"module": "../../esm/_tagged_template_literal_loose.js"
}

4
web/node_modules/@swc/helpers/_/_throw/package.json generated vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_throw.cjs",
"module": "../../esm/_throw.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_to_array.cjs",
"module": "../../esm/_to_array.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_to_consumable_array.cjs",
"module": "../../esm/_to_consumable_array.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_to_primitive.cjs",
"module": "../../esm/_to_primitive.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_to_property_key.cjs",
"module": "../../esm/_to_property_key.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_add_disposable_resource.cjs",
"module": "../../esm/_ts_add_disposable_resource.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_decorate.cjs",
"module": "../../esm/_ts_decorate.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_dispose_resources.cjs",
"module": "../../esm/_ts_dispose_resources.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_generator.cjs",
"module": "../../esm/_ts_generator.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_metadata.cjs",
"module": "../../esm/_ts_metadata.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_param.cjs",
"module": "../../esm/_ts_param.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_rewrite_relative_import_extension.cjs",
"module": "../../esm/_ts_rewrite_relative_import_extension.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_ts_values.cjs",
"module": "../../esm/_ts_values.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_type_of.cjs",
"module": "../../esm/_type_of.js"
}

View File

@@ -0,0 +1,4 @@
{
"main": "../../cjs/_unsupported_iterable_to_array.cjs",
"module": "../../esm/_unsupported_iterable_to_array.js"
}

Some files were not shown because too many files have changed in this diff Show More