Skip to content

Polish ExploitBot settings UI interactions#6

Open
jakimoai wants to merge 1 commit into
jjang-ai:mainfrom
jakimoai:jack/ui-fixes-2026-07-09
Open

Polish ExploitBot settings UI interactions#6
jakimoai wants to merge 1 commit into
jjang-ai:mainfrom
jakimoai:jack/ui-fixes-2026-07-09

Conversation

@jakimoai

Copy link
Copy Markdown

Summary

  • Improves Settings sidebar category row click behavior.
  • Polishes Settings Tools list layout and adds expandable tool descriptions.
  • Prevents short Settings pages from rubber-banding under scroll gestures.

Problem

Some Settings UI rows did not make their full visual area interactive, which
made navigation feel unexpectedly precise.

The Settings Tools list could also clip its right edge and visually drift from
the install-plan card above it, while giving users no inline explanation of
what each tool does.

Short Settings pages could temporarily move under trackpad or mouse-wheel
scroll even when there was no content to scroll.

Fix / This PR

  • Expands Settings sidebar category rows to the available row width.
  • Adds a rectangular hit-test shape so clicking empty space inside a category
    row selects that category.
  • Replaces the fixed-width Tools table with a full-width list.
  • Adds expandable/collapsible Tools rows with short descriptions.
  • Uses content-size-based vertical scroll bounce in Settings so pages that fit
    stay visually fixed while longer pages still scroll.

Visual Proof

  • Settings sidebar category hit area: confirmed by Jack in-app on 2026-07-09.
  • Settings Tools list layout and expandable descriptions: confirmed by Jack in-app on 2026-07-09.
  • Settings scroll containment: confirmed by Jack in-app on 2026-07-09.

Tests

  • uv run --with pytest python -m pytest ExploitBotEngine/testsuite/test_ui_accessibility_contracts.py
  • uv run --with pytest python -m pytest ExploitBotEngine/testsuite/test_tool_settings_real_inventory_contracts.py
  • swift build
  • git diff --check

Follow-up / Out Of Scope

  • Additional UI fixes remain out of scope until they get separate local branches,
    individual packets, tests, and visual gate records.

jjang-ai pushed a commit that referenced this pull request Jul 14, 2026
Attribution rows (linpeas, impacket, meterpreter session records) render
tool + host + session + user + summary in a single-line hstack that
truncates the summary and hides raw output entirely. LinPEAS privilege-
escalation evidence often lives in the deep tail of a 400-line output,
so the current UI could mask the exact proof the user needs.

Added an info button on each PostAttributionEntry row that opens
PostExploitAttributionDetailSheet: metadata grid (tool, host, session,
user, summary, producing tool) plus a scrollable selectable-text panel
with the raw output tail matched by tool name from ResultsStore.rawResults.
Same shape as Recon / Network / Web detail sheets landed earlier.

Likely-tool heuristic maps attribution.tool substring → the raw-results
tool key (linpeas variants, impacket / secretsdump, metasploit /
msfconsole) so the "producing tool" field is accurate.
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