This website requires JavaScript.
24d4a3b146
Merge pull request 'feat(c2): integrate Mythic command and control (sprint 8)' (#11 ) from sprint/8-c2 into main
main
knacky
2026-06-11 10:29:19 +00:00
8b5b5d94d8
fix(frontend): floating dropdowns and matrix modal frame use bg-paper
sprint/9-ui-contrast
Knacky
2026-06-11 11:12:07 +02:00
76bcb04c8f
style(frontend): inputs + outline buttons inside cards use bg-paper
Knacky
2026-06-11 11:11:59 +02:00
88b97cef2e
feat(frontend): 2-column layout for EngagementFormPage in edit mode
Knacky
2026-06-11 11:01:09 +02:00
e4b1d6cb57
style(frontend): tint canvas light to #f3f5f8 for cards-on-canvas contrast
Knacky
2026-06-11 11:01:00 +02:00
a9fe2fc528
docs(sprint-9): plan UI 2-col engagement + global contrast pass
Knacky
2026-06-11 10:53:16 +02:00
38e282a126
fix(backend): complete c2 task→simulation mapping per spec + sanitize adapter errors (sprint 8 code-review)
Knacky
2026-06-10 20:28:49 +02:00
7d3d39639e
fix(backend): expose c2_task.source in GET /c2/tasks response
Knacky
2026-06-10 20:24:22 +02:00
184a2a16c9
fix(frontend): a11y on clickable rows + correct c2 source field + pill metric alignment (sprint 8 design-review)
Knacky
2026-06-10 20:22:45 +02:00
7ff153905b
feat(frontend): c2 tasks panel + history import (sprint 8 phase 2)
Knacky
2026-06-10 20:11:12 +02:00
8f23f59601
feat(backend): c2 callback history + task import (sprint 8 M4)
Knacky
2026-06-10 20:09:29 +02:00
b83316f715
fix(backend): repair 0006 migration tests for alembic 1.18.x proxy api
Knacky
2026-06-10 20:02:46 +02:00
873e52a2a1
feat(backend): c2 poll-on-read + output mapping (sprint 8 M3)
Knacky
2026-06-10 19:56:06 +02:00
5ff6ae8940
feat(frontend): c2 config card + execute modal (sprint 8 phase 1)
Knacky
2026-06-10 19:50:11 +02:00
53755a31d6
feat(backend): c2 callbacks + execute endpoints (sprint 8 M2)
Knacky
2026-06-10 19:34:18 +02:00
9a9c98beab
feat(backend): c2 crypto + config CRUD + adapter scaffolding (sprint 8 M1)
Knacky
2026-06-10 19:20:52 +02:00
813e69ee01
docs(spec): add C2 integration section (sprint 8 commit #1 )
Knacky
2026-06-10 19:07:35 +02:00
6ca614a3f3
Merge pull request 'feat(design): terminal-SOC aesthetic refresh (sprint 7)' (#10 ) from sprint/7-design into main
knacky
2026-06-10 16:40:20 +00:00
1997a8c621
feat(frontend): side-by-side red-team/SOC columns on simulation screen
Knacky
2026-06-10 18:17:54 +02:00
573281f454
fix(design): code-reviewer polish — dedupe tag-mitre recipe, drop dead boxShadow tokens, cover StatusBadge classes
Knacky
2026-06-10 05:53:53 +02:00
6995c4c860
fix(design): address design-reviewer findings F1-F6 — nav slab, spinner, badge coverage, mono discipline
Knacky
2026-06-09 19:43:08 +02:00
7ea2fe490c
docs: add sprint 7 terminal-SOC design refresh to CHANGELOG
Knacky
2026-06-09 19:01:29 +02:00
0e69eb901c
test(frontend): update vitest assertions for new design tokens
Knacky
2026-06-09 18:46:03 +02:00
5cc830554c
refactor(pages): apply terminal-SOC aesthetic to all 8 pages
Knacky
2026-06-09 18:44:47 +02:00
ec7800ae38
refactor(components): squared shapes + mono data cells across all components
Knacky
2026-06-09 18:42:26 +02:00
c791e50108
feat(design): bundle JetBrains Mono for data cells
Knacky
2026-06-09 18:39:13 +02:00
64da94f10d
feat(design): refresh tailwind tokens for brutalist terminal aesthetic
Knacky
2026-06-09 18:38:43 +02:00
6c05cc2e11
docs(design): rewrite DESIGN.md for terminal-SOC aesthetic
Knacky
2026-06-09 18:37:44 +02:00
5627d7dcfa
docs(sprint 7): plan — terminal-SOC design refresh
Knacky
2026-06-09 18:34:45 +02:00
c85ece46b9
chore(agents): frontend-builder must invoke Skill frontend-design before UI work
Knacky
2026-06-09 18:34:36 +02:00
e27babed5b
Merge pull request 'feat: sprint 6 — engagement export (md/csv/pdf)' (#9 ) from sprint/6-export into main
knacky
2026-06-09 16:19:02 +00:00
e41679b331
fix(export): render PDF in A4 landscape for 7-column readability
Knacky
2026-06-09 18:13:46 +02:00
2d1c113f0c
docs: log 2 MEDIUM security fixes in CHANGELOG (post-refactor)
Knacky
2026-06-08 19:29:59 +02:00
3a9d9d3203
fix(security): defuse CSV formula injection in multiline exécution cell + HTML-escape Markdown table cells
Knacky
2026-06-08 19:29:10 +02:00
4d9447082f
docs: sprint 6 amendment — 7-column schema in CHANGELOG + PR body
Knacky
2026-06-08 19:23:02 +02:00
aeb4bdb025
test(e2e): adapt export specs to 7-column schema (Scénario/Test/...)
Knacky
2026-06-08 19:21:51 +02:00
7335b9f2c6
refactor(export): switch render output to fixed 7-column schema (Scénario, Test, ...)
Knacky
2026-06-08 19:15:49 +02:00
fdab324217
docs(spec): export — switch to fixed 7-column handoff schema
Knacky
2026-06-08 19:10:42 +02:00
e4a672c443
docs: sprint 6 wrap-up — README + CHANGELOG + 6 lessons
Knacky
2026-06-08 18:35:21 +02:00
b572a67066
test(e2e): sprint 6 acceptance — US-29 / US-30 / US-31
Knacky
2026-06-08 18:31:32 +02:00
3725d4415e
chore: code-review cleanups (NITs + filename defense-in-depth test)
Knacky
2026-06-08 18:23:39 +02:00
123d9812bc
test: cover Content-Disposition fallback in ExportEngagementButton
Knacky
2026-06-08 18:20:29 +02:00
57dbd14347
fix(security): defuse CSV formula injection in engagement export (MEDIUM)
Knacky
2026-06-08 18:13:16 +02:00
25877c4092
test: ExportEngagementButton + EngagementDetailPage RBAC tests
Knacky
2026-06-08 18:04:56 +02:00
100441bdeb
feat: ExportEngagementButton + exports API client
Knacky
2026-06-08 18:04:49 +02:00
5471c8fd89
test: add export endpoint + render unit tests (226 → 249 passing)
Knacky
2026-06-08 17:57:40 +02:00
f1a7965ab9
chore: add WeasyPrint system deps to Dockerfile python stage
Knacky
2026-06-08 17:57:31 +02:00
87e4409530
feat: add engagement export service and endpoint (md/csv/pdf)
Knacky
2026-06-08 17:57:22 +02:00
cf006a2ba8
docs(plan): sprint 6 — apply spec-reviewer Pass 1 fixes (1 BLOCKER + 6 WARN)
Knacky
2026-06-07 18:38:41 +02:00
01434c04a7
docs(plan): sprint 6 — engagement export (md/csv/pdf) plan
Knacky
2026-06-07 18:29:59 +02:00
7aaa5ccc6d
docs(spec): add § Export d'engagement section (sprint 6)
Knacky
2026-06-07 18:29:49 +02:00
678ee8fbfb
Merge pull request 'feat: sprint 5 — simulation templates + instantiation + nav + dropdown' (#8 ) from sprint/5-templates into main
knacky
2026-06-07 16:08:38 +00:00
e18ec2bf79
docs(lessons): sprint 5 — fold in the recurrent SPEC-uncommitted lesson with concrete fix candidates
Knacky
2026-05-28 07:25:09 +02:00
cbc176ab82
docs(spec): carry over sprint 5 SPEC update missed in sprint 5 commits
Knacky
2026-05-28 07:24:43 +02:00
54959c7d5b
test(e2e): sprint 5 acceptance — US-26 / US-27 / US-28 + adaptations dropdown sprint 2-4
Knacky
2026-05-28 07:23:33 +02:00
2e59743af5
docs: sprint 5 wrap-up — CHANGELOG + README + 6 lessons + plan final
Knacky
2026-05-28 07:18:21 +02:00
7c011db6d9
test(e2e): sprint 5 acceptance tests — US-26 → US-28 + dropdown adaptations
Knacky
2026-05-28 07:15:04 +02:00
55f993fa24
fix(backend): sprint 5 post-review — name fallback, isinstance guards, 400 tests
Knacky
2026-05-28 07:04:25 +02:00
33a0ca30bb
fix(frontend): sprint 5 post-code-review — dropdown close-on-outside + empty-state dropdown
Knacky
2026-05-28 07:02:34 +02:00
20783118ee
fix(frontend): sprint 5 design-review — dropdown dark + Plus icon + re-shoots
Knacky
2026-05-28 06:50:19 +02:00
2b700115e8
fix(frontend): sprint 5 — correct API path /simulation-templates → /templates
Knacky
2026-05-28 06:43:33 +02:00
90fc5bab6c
feat(frontend): sprint 5 — templates CRUD pages + nav + picker modal + dropdown
Knacky
2026-05-28 06:36:10 +02:00
1f327e9aa8
feat(backend): sprint 5 — SimulationTemplate CRUD + instantiation
Knacky
2026-05-28 06:25:19 +02:00
9873c535c6
Merge pull request 'feat: sprint 4 — UI polish + dark mode + workflow tightening + process hygiene' (#7 ) from sprint/4-ui-polish into main
knacky
2026-05-28 04:01:21 +00:00
6d2bb091e2
docs: sprint 4 wrap-up — CHANGELOG + README + 7 lessons + plan final
Knacky
2026-05-27 21:41:47 +02:00
43ab7073f1
test(e2e): un-skip AC-21.6 — backend matrix fix landed
Knacky
2026-05-27 21:38:17 +02:00
7d81ce9785
test(e2e): fill coverage gaps — +N suffix + focus-trap cycle
Knacky
2026-05-27 21:33:18 +02:00
a824df06b2
fix(backend): AC-21.6 — matrix tactic_id returns TA-format (TA0007 not slug)
Knacky
2026-05-27 21:30:48 +02:00
5aa839d105
test(e2e): sprint 4 acceptance tests — US-17 to US-23
Knacky
2026-05-27 21:27:12 +02:00
e99286ef8e
fix(frontend): sprint 4 post-code-review — btn-ink uses slab token + unify New CTA label
Knacky
2026-05-27 20:40:06 +02:00
988de841e5
fix(backend): sprint 4 post-review — relative paths + dead branch removal
Knacky
2026-05-27 20:39:37 +02:00
fc530af78b
fix(frontend): post-code-review NITs — btn-ink uses @apply bg-slab, unify New engagement label
Knacky
2026-05-27 20:39:01 +02:00
9964d058f4
fix(frontend): sprint 4 design-review — slab token + UsersAdmin alignment + dark hairlines + badge contrast
Knacky
2026-05-27 20:28:32 +02:00
892692f3b8
fix(frontend): post-design-review — slab token split + badge contrast + modal backdrop + dark shadows
Knacky
2026-05-27 20:19:16 +02:00
f5ea9d16af
feat(frontend): sprint 4 — dark mode + matrix overhaul + tactic selection + done read-only + UI polish
Knacky
2026-05-27 20:06:01 +02:00
d5ab1fd26f
feat(backend): sprint 4 — tactic_ids + done guard + engagement auto-status
Knacky
2026-05-27 19:52:02 +02:00
0f6ae857b3
feat(infra): design-reviewer agent + PR helper (US-24 + US-25)
Knacky
2026-05-27 19:41:34 +02:00
89eccad1eb
docs(sprint-4): plan + SPEC updates (Done terminal, engagement auto, UI/UX, workflows)
Knacky
2026-05-27 19:41:16 +02:00
ba313a3880
docs(spec): carry over sprint 3 SPEC update missed in PR #6
Knacky
2026-05-27 19:14:25 +02:00
27573f5228
Merge pull request 'feat: sprint 3 — multi-technique simulations + MITRE matrix modal' (#6 ) from sprint/3-mitre-matrix into main
knacky
2026-05-27 17:11:22 +00:00
b001f57774
docs: sprint 3 wrap-up — README + CHANGELOG + lessons + plan final
Knacky
2026-05-27 04:55:12 +02:00
df8a6b605b
test(e2e): sprint 3 acceptance tests — US-13 to US-16
Knacky
2026-05-27 04:51:34 +02:00
393b6ed416
fix(backend): sprint 3 post-review — migration nullable + dead code + tactic names + tests
Knacky
2026-05-27 04:31:10 +02:00
4596f09e71
fix(backend): sprint 3 post-review — nullable migration + dead code + tactic names
Knacky
2026-05-27 04:25:20 +02:00
39f4076a81
fix(frontend): sprint 3 post-review — real dedup test + Apply 0 guard + Link stopPropagation
Knacky
2026-05-27 04:22:23 +02:00
771483f3b0
feat(frontend): sprint 3 — multi-technique MITRE selection + matrix modal
Knacky
2026-05-27 04:04:23 +02:00
673b25e0b0
fix(backend): PATCH technique_ids returns 503 when MITRE bundle not loaded
Knacky
2026-05-27 03:58:30 +02:00
b5ea2929de
feat(backend): sprint 3 — multi-technique simulations + MITRE matrix
Knacky
2026-05-27 03:56:02 +02:00
e1d9738f23
Merge pull request 'sprint/2-simulations' (#5 ) from sprint/2-simulations into main
knacky
2026-05-26 17:06:31 +00:00
ddf48dd1d1
docs(changelog): post-QA fixes summary + e2e suite now fully green
Knacky
2026-05-26 16:14:37 +02:00
da2ce68660
test(e2e): align assertions with i18n fix — French→English labels
Knacky
2026-05-26 16:13:33 +02:00
2a7d27bf02
fix(frontend): post-QA sprint 2 — i18n + alignment + textarea + action bar layout
Knacky
2026-05-26 16:08:46 +02:00
52611337c2
Merge pull request 'fix(make): auto-detect docker/podman so Makefile works on either engine' (#4 ) from sprint/2-simulations into main
knacky
2026-05-26 10:34:01 +00:00
b3124ba4dd
fix(make): auto-detect docker/podman so Makefile works on either engine
Knacky
2026-05-26 12:20:29 +02:00
868097d78a
Merge pull request 'sprint/2-simulations' (#3 ) from sprint/2-simulations into main
knacky
2026-05-26 10:14:35 +00:00
9ace9ac0d8
docs: sprint 2 wrap-up — README + CHANGELOG + lessons + plan final
Knacky
2026-05-26 11:41:23 +02:00
54e90f78bb
test(e2e): refresh us4 AC-4.9 — placeholder replaced by SimulationList (sprint 2)
Knacky
2026-05-26 11:37:51 +02:00
da905cc0a0
test(e2e): sprint 2 acceptance tests — US-7 through US-12
Knacky
2026-05-26 11:35:29 +02:00
cf0e8a8a6b
fix(frontend): sprint 2 review fixes — MitrePicker input retention + SPA navigation
Knacky
2026-05-26 11:22:48 +02:00
c9032a9057
fix(frontend): post-review fixes sprint 2
Knacky
2026-05-26 11:22:05 +02:00