This website requires JavaScript.
9e003d3acd
Merge branch 'merge-rehearsal' into dev
anti
2026-05-01 02:27:20 -04:00
776861a1b7
fix(types): T7 — eliminate all remaining 38 mypy errors; fix DeckyRow subscript in engine tests
anti
2026-05-01 02:07:53 -04:00
bd50b0d8b2
fix(types): T6 — suppress scapy attr-defined on lazy imports in tcpfp.py
anti
2026-05-01 01:53:59 -04:00
f6e67c036d
fix(types): T5 — narrow AsyncClient|None with inline if; rename loop variable t→task to avoid no-redef
anti
2026-05-01 01:53:10 -04:00
d187304e99
fix(types): T4 — stop spreading TopologySummary as dict; fix heartbeat .get() and scope param
anti
2026-05-01 01:51:43 -04:00
0f90dcfd3e
fix(types): T3 — narrow str|None at 12 sites; fix LANRow/DeckyRow subscript in mutator tests
anti
2026-05-01 01:47:04 -04:00
65a2bdf0e7
fix(types): T2 — add missing method stubs to BaseRepository; fix get_logs/add_lan/edge/decky signatures
anti
2026-05-01 01:28:50 -04:00
ed6263a53d
fix(types): T1 — remove 15 stale type: ignore comments confirmed unused by mypy
anti
2026-05-01 01:26:24 -04:00
ee24a7551f
fix(types): T7 — eliminate all remaining 38 mypy errors; fix DeckyRow subscript in engine tests
anti
2026-05-01 02:07:53 -04:00
7e4da95091
fix(types): T6 — suppress scapy attr-defined on lazy imports in tcpfp.py
anti
2026-05-01 01:53:59 -04:00
b9684254f0
fix(types): T5 — narrow AsyncClient|None with inline if; rename loop variable t→task to avoid no-redef
anti
2026-05-01 01:53:10 -04:00
e387acf79d
fix(types): T4 — stop spreading TopologySummary as dict; fix heartbeat .get() and scope param
anti
2026-05-01 01:51:43 -04:00
d637ff515e
fix(types): T3 — narrow str|None at 12 sites; fix LANRow/DeckyRow subscript in mutator tests
anti
2026-05-01 01:47:04 -04:00
502ac42518
fix(types): T2 — add missing method stubs to BaseRepository; fix get_logs/add_lan/edge/decky signatures
anti
2026-05-01 01:28:50 -04:00
f597ab2810
fix(types): T1 — remove 15 stale type: ignore comments confirmed unused by mypy
anti
2026-05-01 01:26:24 -04:00
19271f9319
fix(types): P3 — annotate transport in all template protocol servers; 0 errors in templates/
anti
2026-05-01 01:09:14 -04:00
52b5074149
chore(types): P2 — mark sqlmodel_repo complete in STATIC-TYPES.md
anti
2026-05-01 00:50:00 -04:00
614780f144
fix(types): P2 — wire _MixinBase + col() across sqlmodel_repo; suppress pydantic/SQLModel column typing false positives
anti
2026-05-01 00:49:18 -04:00
d777a1c4e0
chore(types): P1 — mark all P1 items complete in STATIC-TYPES.md
anti
2026-05-01 00:23:30 -04:00
9cf7bc5aab
fix(types): P1 — remove 2 stale type: ignore[no-untyped-def] in clustering adapters
anti
2026-05-01 00:22:33 -04:00
5a240a3d55
fix(types): P1 — widen _send_json data param to dict | list in elasticsearch server
anti
2026-05-01 00:22:16 -04:00
05cdd72d51
fix(types): P1 — annotate ranges: list[Range] in geoip/rir and asn/iptoasn providers
anti
2026-05-01 00:21:44 -04:00
6f8f2ed573
fix(types): P1 — type: ignore[abstract] for plugin-discovery cls() call in registry
anti
2026-05-01 00:21:09 -04:00
23caa86266
fix(types): P1 — pydantic.mypy plugin, types-PyYAML stub, pin mypy<1.20
anti
2026-05-01 00:20:54 -04:00
909913e912
fix(types): P0 mypy — explicit binascii import, drop dead or None in ntlmssp
anti
2026-05-01 00:09:00 -04:00
fc1f0914b7
refactor(topology): introduce TopologyRepository protocol with DTO return types
anti
2026-04-30 23:51:41 -04:00
3456d3ab45
fix(models): Literal types on topology enum fields, hoist _MUTATION_OPS, top-level json import
anti
2026-04-30 23:17:24 -04:00
3cb0203d07
fix(frontend): layout viewport selector, credentials tab order, Attackers.css shared import
anti
2026-04-30 22:16:46 -04:00
eb34d0b1ea
fix(event_kinds): remove probe_forwarded from INTERACTION_EVENT_TYPES
anti
2026-04-30 22:16:11 -04:00
78d3e3a6b9
refactor(auth): hoist _CREDENTIALS_EXCEPTION constant, tighten JWT dependency chain
anti
2026-04-30 22:16:06 -04:00
0b5228eb94
feat(config): add swarmctl-host to INI, env, CLI; drop hardcoded bind from systemd unit
anti
2026-04-30 22:16:00 -04:00
57fecb8071
refactor(frontend): ApiError interface, tempIdSuffix rename, NET_GRID constants, extract onPaletteDrop handlers
anti
2026-04-30 22:14:20 -04:00
b754e9aa8b
refactor(validate): move forwards_l3 overload explanation into check docstring
anti
2026-04-30 22:10:41 -04:00
402d6584ba
fix(topology_store): use sqlite3.Row for named column access in current()
anti
2026-04-30 22:09:51 -04:00
9ad62d8177
fix(compose): name the topology_id prefix length constant
anti
2026-04-30 22:09:26 -04:00
eb7ccd0006
fix(reuse_worker): remove noqa: BLE001 (rule not in ruff select) fix(generator): correct service pool count in _SVC_MIN/_SVC_MAX comment
anti
2026-04-30 22:06:44 -04:00
17480093a9
refactor(topology_ops): decompose apply() into focused helpers
anti
2026-04-30 21:56:48 -04:00
d1ed2701e7
refactor(generator): promote nested functions; rename used_combos to seen_service_pairs
anti
2026-04-30 21:53:45 -04:00
07e6bafff8
fix(validate): narrow bare except to ImportError in psutil port-collision check
anti
2026-04-30 21:53:05 -04:00
84e0ac4a43
fix(topology): cache IPAllocator host set; type repo params as BaseRepository
anti
2026-04-30 21:52:29 -04:00
257857338c
fix(api): replace threading.Lock with asyncio.Lock for hydration guard
anti
2026-04-30 21:24:11 -04:00
3fce597a70
docs(bodies): document intentional shared _body_canary in dispatch table
anti
2026-04-30 21:19:07 -04:00
2629a8a0de
fix(fake): rename prompt to _prompt, drop noqa suppression
anti
2026-04-30 21:18:55 -04:00
a8c69155ff
fix(planner): surface dropped weight entries in PUT /realism/config response
anti
2026-04-30 21:18:41 -04:00
8a40f6ced0
fix(personas_pool): re-stat after read to avoid caching stale mtime
anti
2026-04-30 21:17:50 -04:00
1e1c92abc3
fix(bodies): type make_body_with_llm persona parameter via TYPE_CHECKING
anti
2026-04-30 21:17:26 -04:00
ebe15310ab
fix(api): hydrate planner from DB exactly once on first GET, not on every read
anti
2026-04-30 21:17:03 -04:00
c7fcd86be4
fix(planner): guard apply_payload and reset_to_defaults with a lock
anti
2026-04-30 21:15:12 -04:00
f597d70430
fix(realism): use minute-precision datetime in in_active_hours
anti
2026-04-30 21:14:36 -04:00
f6422f2529
fix(heartbeat): replace remaining bare except Exception with SQLAlchemyError and typed builtins
anti
2026-04-30 21:08:26 -04:00
542d129d6f
refactor(services_live): replace string-sniffed error dispatch with typed exception subclasses
anti
2026-04-30 20:49:29 -04:00
a5487eb55f
refactor(enroll-bundle): extract bundle_builder and move DTOs to swarm models
anti
2026-04-30 20:39:42 -04:00
e124f9e296
refactor(swarm): extract _shard_payload helper and promote _dispatch to module-level
anti
2026-04-30 20:25:38 -04:00
c648d8b04e
fix(heartbeat): replace bare except Exception with specific types and intent comments
anti
2026-04-30 20:19:52 -04:00
72498f81b2
fix(ui): surface attacker date_hdr in mail table and drawer
anti
2026-04-30 14:11:08 -04:00
d0b07bdf52
fix(smtp_relay): inject From: header if absent so attacker address shows in client
anti
2026-04-30 12:43:41 -04:00
4d12fb6a03
fix(smtp_relay): upgrade to STARTTLS before AUTH if server advertises it
anti
2026-04-30 12:40:17 -04:00
633594b110
fix(smtp_relay): use correct async-for bus subscription in probe listener
anti
2026-04-30 12:35:45 -04:00
761c23a07c
fix(smtp_relay): emit service=smtp_relay in syslog so ingester can gate probe publish
anti
2026-04-30 12:31:29 -04:00
f0d47c5195
fix(smtp): chmod quarantine dir before dropping to logrelay
anti
2026-04-30 12:25:37 -04:00
8ae7b9636e
feat(smtp_relay): move probe forwarding to realism worker via bus
anti
2026-04-30 12:10:58 -04:00
4c0a1309f0
fix(smtp_relay): log upstream error reason in probe_forwarded event
anti
2026-04-30 11:57:07 -04:00
c78ba6f698
fix(deploy): pre-remove container by name before force-recreate
anti
2026-04-30 11:54:00 -04:00
fdf38a9d8c
feat(smtp_relay): add upstream_sender to fix SPF on probe forwarding
anti
2026-04-30 11:47:18 -04:00
24cdef9246
feat(smtp_relay): ingest probe_forwarded as probe_relay bounty
anti
2026-04-30 11:32:14 -04:00
9a4fe2677b
feat(smtp_relay): forward probe emails upstream so attackers verify relay works
anti
2026-04-30 11:21:04 -04:00
4b7cb42ab1
fix(profiler): extract commands when MSGID=command, not just MSGID=NIL
anti
2026-04-30 10:57:29 -04:00
bbb1762250
fix(export): one attacker per line in exported JSON
anti
2026-04-30 10:45:03 -04:00
2ddba04f79
feat(attackers): add JSON export endpoint and download button
anti
2026-04-30 10:43:46 -04:00
f0756dcdec
fix(ui): use overflow: clip on dash panels so inner scrollbars aren't masked
anti
2026-04-30 00:34:40 -04:00
18393f1e1c
fix(ui): bound dashboard height so panels don't overflow viewport
anti
2026-04-30 00:32:16 -04:00
9ed0094045
fix(ui): reset live feed scroll to top on log update
anti
2026-04-30 00:30:46 -04:00
fca0953439
fix(ui): dashboard grid fills available viewport height
anti
2026-04-30 00:27:47 -04:00
b364c41736
fix(ui): dashboard panel heights + missing icon
anti
2026-04-30 00:24:27 -04:00
fbc9877ef2
fix(ui): follow-up polish — icons, dashboard bar, filter redesign, bounty/creds sort
anti
2026-04-30 00:20:25 -04:00
9adee07d21
feat(ui): frontend polish sweep — 8 UX fixes
anti
2026-04-29 23:56:38 -04:00
a322d88b3c
fix(tarpit): resolve topology container name in watcher before PID lookup
anti
2026-04-29 21:14:21 -04:00
917f7e8e54
feat(tarpit): MazeNET topology-scoped tarpit — Inspector controls + topology API
anti
2026-04-29 21:10:02 -04:00
f84c66cf9b
feat(ui): tarpit controls on DeckyCard — three-dot dropdown + enable/disable
anti
2026-04-29 20:56:51 -04:00
07b32e2abe
fix(tests): patch add_service/remove_service at the router import, not the module
anti
2026-04-29 18:50:21 -04:00
5f4005c47a
feat(tarpit): port-selective tc netem tarpit mode with live log events
anti
2026-04-29 18:49:42 -04:00
2fc5f1bdc5
feat(canary): auto-deregister fingerprint slug after first valid beacon
anti
2026-04-29 17:49:31 -04:00
b26dd8f529
feat(canary): API-trashing defense — 4-layer fingerprint validation
anti
2026-04-29 17:41:04 -04:00
f86dc79990
feat(canary): ship Node helper with wheel + install-toolchain CLI
anti
2026-04-29 16:53:27 -04:00
907ade9142
feat(realism): wire fingerprint_html/svg through taxonomy + UI
anti
2026-04-29 16:44:03 -04:00
de6d5cd1a8
fix(canary): include fingerprint_* in KNOWN_GENERATORS stability test
anti
2026-04-29 16:26:09 -04:00
dd807bc55e
feat(canary): worker decodes ?d=/?o=/?s=&i=&n=&d= fingerprint params
anti
2026-04-29 16:25:17 -04:00
f64e78f78c
feat(canary): fingerprint_html + fingerprint_svg generators
anti
2026-04-29 16:22:18 -04:00
12cd7ad9cb
feat(canary): per-mint JS obfuscator wrapper + fingerprint payload
anti
2026-04-29 16:16:37 -04:00
eefab020d4
fix(swarm): propagate service mutations to worker agent via shard re-dispatch
anti
2026-04-29 12:51:16 -04:00
94b06ee862
feat(services): initial config on ADD SERVICE — schema modal in DeckyCard, MazeNET drag, and Inspector
anti
2026-04-29 12:44:47 -04:00
77ceb9d6f3
feat(services): config schemas for the rest of the registry + textarea base64 transport
anti
2026-04-29 12:23:56 -04:00
d8fa7cc73d
feat(ui): per-service config in the deploy wizard's CONFIGURATION step
anti
2026-04-29 12:08:17 -04:00
97260daf8d
fix(ui): make .info-banner usable inside the deploy-wizard modal
anti
2026-04-29 12:01:42 -04:00
8d3f5c646a
fix(network): accept CAP_NET_ADMIN in lieu of euid==0 for macvlan setup
anti
2026-04-29 11:56:40 -04:00
5912608f78
fix(ui): wizard CONFIGURATION step + drop bogus --archetype custom preview
anti
2026-04-29 11:56:29 -04:00
ba0e7ca476
style(ui): rebuild ServiceConfigForm in inspector terminal vocabulary
anti
2026-04-29 11:50:35 -04:00
e51666ee14
fix(ui): stop ServiceConfigForm from re-fetching schema every render
anti
2026-04-29 11:48:20 -04:00
bd7f2dfaed
feat(ui): schema-driven ServiceConfigForm in Fleet & MazeNET inspectors
anti
2026-04-29 11:41:43 -04:00
75b1ce3a31
feat(api): per-service config schema endpoint + PUT/POST update+apply for fleet & topology
anti
2026-04-29 11:38:06 -04:00