Commit Graph

  • 76f8443ac2 docs: sprint 2 surface in docs/api.md + D-015/D-016/D-017 + changelog feature/backend-user-mgmt knacky 2026-05-23 15:53:45 +02:00
  • 4bade795fd test(backend): sprint 2 unit + integration coverage knacky 2026-05-23 15:53:35 +02:00
  • 9f75f119f0 feat(backend): engagement members + audit log viewer (sprint 2) knacky 2026-05-23 15:53:22 +02:00
  • e2f030e0e1 feat(backend): /api/v1/users CRUD endpoints (sprint 2) knacky 2026-05-23 15:53:09 +02:00
  • feda5d1485 feat(backend): add pagination + user/member/audit DTOs (D-016) knacky 2026-05-23 15:52:56 +02:00
  • 48a1c756bf feat(backend): add USER_MANAGE permission + delta migration (D-015) knacky 2026-05-23 15:52:47 +02:00
  • 140a34b81e fix(frontend): align types + UI to backend contract (docs/api.md @ dd5c508) main ux-frontend 2026-05-23 11:14:32 +02:00
  • ec7effcaac test(frontend): Vitest coverage on sprint 1 wiring ux-frontend 2026-05-23 04:26:56 +02:00
  • 20fbcdf1f8 feat(frontend): wire LoginPage + EngagementsPage + create dialog to backend ux-frontend 2026-05-23 04:26:48 +02:00
  • f6d4e43e4c feat(frontend): wire session to real /auth/me + drop sessionStorage mock ux-frontend 2026-05-23 04:26:28 +02:00
  • dd5c508b04 fix(backend): JSON error envelope for every HTTPException + strict_slashes=False knacky 2026-05-23 04:33:23 +02:00
  • dd321c2cd0 docs: add api.md contract for sprint 1 + update changelog knacky 2026-05-23 04:22:03 +02:00
  • e1b381af4d test(backend): cover auth schemas + login/engagement E2E knacky 2026-05-23 04:21:55 +02:00
  • 38b35c933a feat(backend): wire auth endpoints + dev CORS (sprint 1) knacky 2026-05-23 04:21:44 +02:00
  • a8c5400f97 docs: add production deployment guide knacky 2026-05-23 03:15:46 +02:00
  • c44f8b90ad docs: archive Podman runner setup runbook + track F-D1..F-D5 knacky 2026-05-23 03:08:03 +02:00
  • 649194b174 chore(frontend): add multi-stage Dockerfile + nginx SPA config knacky 2026-05-22 19:59:09 +02:00
  • 359225e464 chore(ci): drop transient smoke workflow now that runner is validated knacky 2026-05-22 19:49:26 +02:00
  • df6294ed7b docs: align doc references with compose.yml rename (code-reviewer M1) knacky 2026-05-22 19:49:16 +02:00
  • 1380672c03 ci(gitea): add CI workflow + transient smoke validation knacky 2026-05-22 19:42:23 +02:00
  • 9ece352659 chore(backend): rename docker-compose.yml -> compose.yml + podman notes knacky 2026-05-22 19:41:38 +02:00
  • ffcac42272 Merge branch 'feature/backend-skeleton' into main v0.1.0 knacky 2026-05-22 11:45:17 +02:00
  • 0aee6f46eb Merge branch 'docs/architecture-sprint0' into main knacky 2026-05-22 11:45:17 +02:00
  • e77ca906d4 docs(backend): track sprint-0 follow-ups + flag integration migration gap knacky 2026-05-22 05:25:04 +02:00
  • 3a3e3ff0ec feat(backend): wire created_by_id, audit log, F11 scope into CRUD (MA4/5/6) knacky 2026-05-22 05:24:54 +02:00
  • 36c1ed5ffb fix(backend): freeze F11 matrix inline in the initial migration (MA3) knacky 2026-05-22 05:24:37 +02:00
  • feadad850b fix(backend): stream store_blob and enforce max_bytes mid-write (MA2) knacky 2026-05-22 05:24:25 +02:00
  • 6e803a482a fix(backend): stop seeding the audit-writer role via postgres-init (MA1) knacky 2026-05-22 05:24:13 +02:00
  • 90f8141cfc fix(backend): make google-re2 a hard dependency, drop re fallback (B1) knacky 2026-05-22 05:23:47 +02:00
  • 05f60cde6d docs: add docs/architecture.md (sprint 0 mirror) knacky 2026-05-22 05:11:25 +02:00
  • adab8a58e7 chore(backend): mypy strict clean + ruff format pass knacky 2026-05-22 05:10:51 +02:00
  • 12d131c826 feat(backend): add content-addressed gzip blob store (D-012) knacky 2026-05-21 20:44:59 +02:00
  • 162b6988f8 fix(backend): align regex_extract + outputs.blob() with D-011/D-012 knacky 2026-05-21 20:44:48 +02:00
  • d470db97d9 fix(backend): align with D-008/D-009 (drop ttp_version, seed F11 matrix) knacky 2026-05-21 20:44:37 +02:00
  • b505a654f8 fix(frontend): address M1-M3 polish from code-reviewer ux-frontend 2026-05-21 20:44:32 +02:00
  • 887182cfd7 docs: update CHANGELOG + tasks for the backend skeleton sprint 0 knacky 2026-05-21 20:34:19 +02:00
  • 5d9415bb9f test(backend): add pytest baseline (B0.8) knacky 2026-05-21 20:34:11 +02:00
  • 9fa4d61304 feat(backend): add Flask app factory, audit writer, flat CRUD + CLI (B0.7) knacky 2026-05-21 20:33:45 +02:00
  • 7f4ad85a68 feat(backend): add local auth + group-based RBAC matching F11 (B0.6) knacky 2026-05-21 20:33:31 +02:00
  • 104d73143a feat(backend): add Jinja2 sandbox + regex_extract filter (B0.5) knacky 2026-05-21 20:33:19 +02:00
  • 20112d61ff feat(backend): add C2Connector ABC + payload mapping + factory (B0.4) knacky 2026-05-21 20:33:06 +02:00
  • 22d37fb240 feat(backend): add §8 data model + Alembic baseline (B0.2, B0.3) knacky 2026-05-21 20:32:45 +02:00
  • a93c959444 chore(backend): bootstrap Python 3.12+ project skeleton (B0.1) knacky 2026-05-21 20:32:29 +02:00
  • 12bc33469c feat(frontend): wireframes for 5 MVP screens + audit (F0.3) ux-frontend 2026-05-21 20:31:24 +02:00
  • ef081c8c28 feat(frontend): role-aware app shell + routing skeleton (F0.4) ux-frontend 2026-05-21 20:31:01 +02:00
  • 1562478a54 feat(frontend): provisional design system tokens + Logo placeholder (F0.2) ux-frontend 2026-05-21 20:30:41 +02:00
  • 80ca4641a3 feat(frontend): bootstrap Vite + React 19 + TS strict toolchain (F0.1) ux-frontend 2026-05-21 20:30:23 +02:00
  • 2ead16114d docs(spec): land D-011 (regex_extract) + D-012 (output_blob_ref storage) knacky 2026-05-21 20:20:27 +02:00
  • 524c6f1eb4 docs(spec): track open spec questions Q-001..Q-005 for sprint 0 knacky 2026-05-21 20:15:07 +02:00
  • 4ecf4b0b0e chore: tighten gitignore, align README stack, formalize D-010 (Ansible) knacky 2026-05-21 20:16:40 +02:00
  • b144c041a7 docs: drop ttp_version from B0.2 + seed groups requirement per D-008/D-009 knacky 2026-05-21 20:14:44 +02:00
  • d03ba062bf docs(spec): add D-008 (group RBAC vs F11) and D-009 (no ttp_version table) knacky 2026-05-21 20:13:14 +02:00
  • 047583eb9c chore: bootstrap repo skeleton with sprint 0 plan knacky 2026-05-21 20:10:47 +02:00
  • 030a018970 chore: init repo knacky 2026-05-21 20:07:38 +02:00