Skip to content

release: 0.1.5 - #6

Merged
jolovicdev merged 11 commits into
mainfrom
feat/redesign
Sep 15, 2026
Merged

jolovicdev merged 11 commits into
mainfrom
feat/redesign

Conversation

@jolovicdev

Copy link
Copy Markdown
Owner

Summary

Redesign the campaign workspace around an adaptive topology map and pin exploit-run tracking to each run so reused daemon job ids cannot corrupt another run's outcome. Bumps the release version to 0.1.5.

UI

  • Campaign workspace gains summary cards (hosts, services, sessions, credentials), a resizable inspector, focus mode, and per-stage map controls; Discover hosts, Scan services, and Export report sit directly above the map.
  • The topology map groups hosts into adaptive subnet columns with service counts, access states, and violet pivot routes. Hosts stay draggable with positions persisted; Arrange hosts replaces saved positions with an automatic layout.
  • Shared typography, spacing, and color tokens (graphite/mint) unify modals, empty states, scales, context menus, and badges, and the workspace adapts to narrow viewports.
  • Launch dialogs render boolean module options as checkbox rows; the module library and tables gain a reusable filter select.

Engine

  • Exploit runs are tracked by execution UUID in a new run registry. A run that finishes without opening a session logs a warning naming the module and job id.
  • Reconciliation and stop-grace timers are bound to their run and connection generation, so a daemon reusing a job id cannot resolve another run, and a displaced run settles with its own verdict.
  • Command echoes are stored in the engine transcript for replay.

Dependencies

  • jolovicdev/go-msf/v2 v2.0.1 → v2.1.0.

Docs

README refreshed for the new workspace: campaign overview screenshot, topology focus-mode shot, updated demo GIF with full-quality video, and a workflow walkthrough keyed to the summary cards and map controls.

Testing

  • go test ./... — engine suite covers the exploit-run lifecycle, job-id reuse, and stale-timer cases.
  • cd ui && npm test — graph layout and connect/launch form suites.

Add campaign summary cards, a resizable inspector, focus mode, and subnet
columns with routed pivot edges. Adapt the workspace to narrow viewports
with shared typography, spacing, and graphite and mint colors.

Track exploit runs by execution UUID and warn when a run finishes without
a session. Store command echoes in the engine transcript for replay.
Bind reconciliation and stop-grace timers to their run and connection
generation so reused job ids cannot resolve another run. The vanishing-job
test waits for both reconciliation and stop grace.
A run rekeyed onto a reused daemon job id settles the incumbent under
the vacated key: reuse proves the old job ended without a stop event,
so the incumbent enters stop grace. Timers remove their run by identity
across keys, and the reuse tests wait for each run's own verdict.
Number() per keystroke rendered NaN into the port box when the field
was emptied. Validation and submit parse the text instead.
The monitor can deliver a command's output while session.write is still
in flight; the echo now lands above that output in the transcript.
Host objects are recreated on every campaign update, so the address-keyed
node list resolves hosts through a Map instead of a linear scan per node.
The reconcile pass prunes sessions missing from session.list; the echo
tests inject session 5 by hand, so under -race the prune could remove it
before the re-attach and fail the suite.
@jolovicdev
jolovicdev marked this pull request as ready for review September 15, 2026 15:10
@jolovicdev
jolovicdev merged commit 2f9b571 into main Sep 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant