Commit Graph

84 Commits

Author SHA1 Message Date
Claude
d12581ad12 docs: fix Plan-4 order — push to origin BEFORE triggering Coolify deploy 2026-08-28 19:20:22 +00:00
Claude
bbb76b5920 docs: pin Plan-4 close-out head SHA 2026-08-28 19:11:43 +00:00
Claude
d237cc06e4 docs: close out Plan 4 — live at core.tes.gd, clear Plan-4 follow-ups 2026-08-28 19:11:33 +00:00
Claude
c41d0f9216 docs: add Plan 4 — Container + Coolify deploy 2026-08-28 19:11:33 +00:00
Claude
b6943c0e69 chore: gitignore deploy.json before populating 2026-08-28 19:07:03 +00:00
Claude
d82705d8ab feat(deploy): coolify docker-compose — expose:8080, /data volume, SERVICE_FQDN_APP_8080 2026-08-28 19:06:15 +00:00
Claude
a5d76e109f feat(docker): multi-stage Dockerfile — pnpm SPA build + dotnet publish + aspnet:9.0 runtime 2026-08-28 19:03:27 +00:00
Claude
32a2b2ee53 chore(docker): add .dockerignore excluding bin/obj/node_modules/wwwroot 2026-08-28 18:57:44 +00:00
Claude
6ffc59870c fix(auth): heal legacy plaintext admin.password_hash_source on boot 2026-08-28 18:54:35 +00:00
Claude
3d9df50f20 feat(api): honour X-Forwarded-Proto so Secure cookies flip on behind Traefik 2026-08-28 18:48:30 +00:00
Claude
7854cb02ec chore(frontend): exclude e2e/ from Vitest discovery 2026-08-28 16:40:16 +00:00
Claude
2a1b90c731 docs: close out Plan 3 — React SPA live 2026-08-28 16:38:55 +00:00
Claude
294bd57317 test(e2e): playwright smoke — login/create/edit/save happy path 2026-08-28 16:37:26 +00:00
Claude
03de45cf8e feat(api): serve SPA from wwwroot + SPA fallback for client-side routes 2026-08-28 16:32:16 +00:00
Claude
2f7f18008e feat(frontend): executions viewer — list + expandable per-node IO 2026-08-28 16:29:24 +00:00
Claude
64cf7fbed9 chore(frontend): vite dev proxy for /api and /wh 2026-08-28 16:27:43 +00:00
Claude
655bd17f55 feat(frontend): editor toolbar — Save / Test run / Activate / Deactivate 2026-08-28 16:27:15 +00:00
Claude
12c5fb1990 feat(frontend): editor — palette + drag-drop + config panel + selection 2026-08-28 16:25:33 +00:00
Claude
d81b59896e test(frontend): satisfy HttpResponse.json JsonBodyType constraint 2026-08-28 16:23:31 +00:00
Claude
891ff6a722 feat(frontend): editor scaffold — graph adapter + React Flow canvas 2026-08-28 16:21:33 +00:00
Claude
c9193dbf36 feat(frontend): connections page — schema-driven create + list + delete 2026-08-28 16:17:56 +00:00
Claude
03cb34d009 feat(frontend): SchemaForm — schema-driven form generator 2026-08-28 16:15:59 +00:00
Claude
942d001c1f feat(frontend): workflows list — create/activate/deactivate/delete 2026-08-28 16:14:09 +00:00
Claude
1f317564f5 feat(frontend): login page — POST /api/session + error UI 2026-08-28 16:12:15 +00:00
Claude
e0a2447d23 feat(frontend): router shell + PrivateRoute + stub pages 2026-08-28 16:10:51 +00:00
Claude
2cf3c8759f feat(frontend): TanStack Query hooks + useSession/useLogin/useLogout
Adds api/hooks.ts (query keys, list/detail queries, useApiMutation,
useInvalidate) and auth/session.ts (useSession swallows 401 into
authenticated=false; useLogin/useLogout invalidate the me key).
tsconfig now maps @/* -> src/* so tsc -b matches Vite's resolver.
2026-08-28 16:09:01 +00:00
Claude
e1632f1272 test(frontend): MSW server + renderWithProviders harness 2026-08-28 16:07:14 +00:00
Claude
a28d34a48c feat(frontend): apiFetch — cookie-included fetch wrapper with typed errors 2026-08-28 16:06:02 +00:00
Claude
a9b6ae6975 feat(frontend): API type surface for Plan 2 endpoints 2026-08-28 16:04:03 +00:00
Claude
5bfa7baad6 docs: add Plan 3 — React SPA plan 2026-08-28 16:03:16 +00:00
Claude
e29a4f7763 chore(frontend): wire Tailwind v3 + brand palette 2026-08-28 16:02:54 +00:00
Claude
c4c650e3d0 chore(frontend): scaffold Vite + React 18 + TypeScript under frontend/ 2026-08-28 16:00:34 +00:00
Claude
bc56e9edf1 docs: close out Plan 2 — workflow engine live 2026-08-28 15:39:36 +00:00
Claude
6065f0c91e feat(api): DI-register 5 nodes + NATS provider; enable pending integration tests 2026-08-28 15:35:43 +00:00
Claude
df64e9e512 feat(nodes): PythonTransformNode (IronPython 3) — items in, output out 2026-08-28 15:22:49 +00:00
Claude
ebd06a6abc feat(nodes): WebResponseNode — resolves webhook TCS with configured payload; move WebhookRouter to Core 2026-08-28 15:20:10 +00:00
Claude
3d7910c5e7 feat(nodes): WebhookNode — registers (workflow,path) route and emits body items 2026-08-28 15:16:51 +00:00
Claude
001c60bf86 feat(nodes): NatsPublishNode — publishes each item as its JSON bytes 2026-08-28 15:13:36 +00:00
Claude
b9a3926be2 feat(nodes): NatsHookNode — trigger emits one execution per message 2026-08-28 15:11:49 +00:00
Claude
b9097b1812 feat(providers): NatsConnectionProvider (NATS.Net) 2026-08-28 15:09:13 +00:00
Claude
5137591b8a feat(engine): RetentionService — hourly executions sweep 2026-08-28 15:07:58 +00:00
Claude
0895dc5f8f feat(api): manual run + executions REST (list + detail with per-node ports) 2026-08-28 15:05:54 +00:00
Claude
850eb4a12c feat(engine): TriggerHost with activation/deactivation + startup abort sweep 2026-08-28 15:03:35 +00:00
Claude
ff54b1f22d feat(api): POST /wh/{workflow-id}/{*path} endpoint 2026-08-28 15:00:24 +00:00
Claude
c88d27294b feat(engine): WebhookRegistry — (workflowId, path) → invocation lookup 2026-08-28 14:58:06 +00:00
Claude
eabd6f175d feat(engine): WebhookRouter (TCS + first-write-wins + timeout) 2026-08-28 14:56:52 +00:00
Claude
159102e27e feat(engine): Executor fan-out + failure propagation + status rollup 2026-08-28 14:52:53 +00:00
Claude
8c58b6574d feat(engine): Executor — linear happy-path (trigger → action → terminal) 2026-08-28 14:49:47 +00:00
Claude
8fd152d977 feat(engine): ConnectionInstanceRegistry with per-id caching + invalidate on delete 2026-08-28 14:46:15 +00:00
Claude
8f4196de51 feat(engine): concrete ExecutionContext + TriggerActivationSink 2026-08-28 14:43:56 +00:00