Bug Summary
During web penetration testing, the retest queue accumulates pending items in the TUI but never clears them after inspection is complete. The agent claims items are processed ("should be cleared now") but the TUI still shows all items as pending.
Root Cause
WebRetest.updateStatus() and WebRetest.next() are defined in packages/cyberstrike/src/session/web/web-retest.ts but never called from anywhere in the codebase. The retest queue lifecycle is incomplete:
- Enqueue works:
WebRetest.checkTriggers() is called from web-write-object-value.ts:54 and web-write-role.ts:54, creating items with status: "pending"
- TUI display works:
WebRetest.getPending() and WebRetest.count() are read by the server route (session.ts:1022-1023) and web_get_session_context tool
- Consumption is broken: No code ever calls
updateStatus(id, "processing") or updateStatus(id, "completed") — items stay "pending" forever
Additionally, there is no agent-facing tool to dequeue or complete retest items. The agent can see the queue via web_get_session_context(include: ["retest_queue"]) but has no mechanism to mark items as done.
Steps to Reproduce
- Run a web pentest session with
hackbrowser against any target with multiple credentials
- Let the proxy-analyzer discover objects/roles — this triggers
WebRetest.checkTriggers() via web_write_object_value and web_write_role
- Observe the TUI showing pending retest items (e.g. "25 HTTP requests pending")
- Let the agent complete its testing cycle
- Observe the TUI still showing the same pending items — they never clear
Expected Behavior
Retest queue items should transition through pending → processing → completed as the agent works through them. Completed items should no longer appear in the TUI pending count.
Affected Files
packages/cyberstrike/src/session/web/web-retest.ts — updateStatus() (L146) and next() (L162) are dead code
packages/cyberstrike/src/tool/web-get-session-context.ts — exposes queue to agent (read-only, no write)
packages/cyberstrike/src/tool/web-write-object-value.ts — enqueues retests (L54)
packages/cyberstrike/src/tool/web-write-role.ts — enqueues retests (L54)
packages/cyberstrike/src/server/routes/session.ts — TUI reads pending items (L1022-1023)
Suggested Fix
- Wire
WebRetest.next() into the ingest/processing pipeline so items are dequeued and processed
- Call
WebRetest.updateStatus(id, "completed") after the agent finishes testing each request
- Consider adding a
web_complete_retest tool (or extending an existing tool) so the agent can mark items as done
- The Bus event (
web_retest.updated) already propagates to the TUI — once updateStatus is called, the TUI will update automatically
Priority
High — this is a user-visible bug that makes the TUI unreliable during active pentest sessions. Users lose trust in the queue status and cannot tell which items still need attention.
Labels
bug, web-testing, tui
Bug Summary
During web penetration testing, the retest queue accumulates pending items in the TUI but never clears them after inspection is complete. The agent claims items are processed ("should be cleared now") but the TUI still shows all items as pending.
Root Cause
WebRetest.updateStatus()andWebRetest.next()are defined inpackages/cyberstrike/src/session/web/web-retest.tsbut never called from anywhere in the codebase. The retest queue lifecycle is incomplete:WebRetest.checkTriggers()is called fromweb-write-object-value.ts:54andweb-write-role.ts:54, creating items withstatus: "pending"WebRetest.getPending()andWebRetest.count()are read by the server route (session.ts:1022-1023) andweb_get_session_contexttoolupdateStatus(id, "processing")orupdateStatus(id, "completed")— items stay "pending" foreverAdditionally, there is no agent-facing tool to dequeue or complete retest items. The agent can see the queue via
web_get_session_context(include: ["retest_queue"])but has no mechanism to mark items as done.Steps to Reproduce
hackbrowseragainst any target with multiple credentialsWebRetest.checkTriggers()viaweb_write_object_valueandweb_write_roleExpected Behavior
Retest queue items should transition through
pending → processing → completedas the agent works through them. Completed items should no longer appear in the TUI pending count.Affected Files
packages/cyberstrike/src/session/web/web-retest.ts—updateStatus()(L146) andnext()(L162) are dead codepackages/cyberstrike/src/tool/web-get-session-context.ts— exposes queue to agent (read-only, no write)packages/cyberstrike/src/tool/web-write-object-value.ts— enqueues retests (L54)packages/cyberstrike/src/tool/web-write-role.ts— enqueues retests (L54)packages/cyberstrike/src/server/routes/session.ts— TUI reads pending items (L1022-1023)Suggested Fix
WebRetest.next()into the ingest/processing pipeline so items are dequeued and processedWebRetest.updateStatus(id, "completed")after the agent finishes testing each requestweb_complete_retesttool (or extending an existing tool) so the agent can mark items as doneweb_retest.updated) already propagates to the TUI — onceupdateStatusis called, the TUI will update automaticallyPriority
High — this is a user-visible bug that makes the TUI unreliable during active pentest sessions. Users lose trust in the queue status and cannot tell which items still need attention.
Labels
bug,web-testing,tui