phase 5: edge transforms, soleprint-ui rename, infra fixes

- pipeline edge transforms: stages can declare accepted_transforms,
  edges carry a transform dict, runner injects per-stage and nodes
  apply (e.g. invert_mask before edge detection); editable from UI
  via PUT /config/edge-transform
- rename mpr-ui-framework -> soleprint-ui (now an external package
  synced via .spr from /home/mariano/wdir/spr); add @vue-flow/core
  and uplot to detection-app so linked package resolves them
- Tiltfile guards kubectl context, k8s commands pin --context kind-mpr
- kind-config: gateway on hostPort 30080 (Caddy fronts mpr.local.ar)
- modelgen: pyproject.toml, .spr marker, dict default_factory support
This commit is contained in:
2026-04-29 05:31:08 -03:00
parent 55e83e4203
commit 020f3540d3
35 changed files with 414 additions and 1747 deletions

View File

@@ -4,9 +4,15 @@
allow_k8s_contexts('kind-mpr')
# Hard guard: Tilt deploys to whatever the shell's current kubectl context is,
# and allow_k8s_contexts auto-permits any local-looking (kind-*) cluster.
# Fail early instead of silently landing the workload in the wrong cluster.
if k8s_context() != 'kind-mpr':
fail("Wrong kubectl context: '%s'. Run: kubectl config use-context kind-mpr" % k8s_context())
# Create namespace first — kustomize includes it but Tilt may apply
# all resources in parallel, causing "namespace not found" races
local('kubectl create namespace mpr --dry-run=client -o yaml | kubectl apply -f -')
# all resources in parallel, causing "namespace not found" races (pin cluster explicitly)
local('kubectl --context kind-mpr create namespace mpr --dry-run=client -o yaml | kubectl --context kind-mpr apply -f -')
# Apply k8s manifests via kustomize (dev overlay)
k8s_yaml(kustomize('k8s/overlays/dev'))

View File

@@ -202,7 +202,7 @@ services:
- ../ui/detection-app/src:/app/src
- ../ui/detection-app/vite.config.ts:/app/vite.config.ts
- ../ui/detection-app/index.html:/app/index.html
- ../ui/framework:/app/node_modules/mpr-ui-framework
- ../ui/framework:/app/node_modules/soleprint-ui
volumes:
postgres-data:

View File

@@ -4,10 +4,10 @@ name: mpr
nodes:
- role: control-plane
extraPortMappings:
# Gateway → http://k8s.mpr.local.ar (bind to 127.0.0.2 to avoid conflict with docker-compose on 127.0.0.1:80)
# Gateway → routed via Caddy on port 80 (mpr.local.ar, k8s.mpr.local.ar)
- containerPort: 30080
hostPort: 80
listenAddress: "127.0.0.2"
hostPort: 30080
listenAddress: "127.0.0.1"
protocol: TCP
# Redis
- containerPort: 30379