Skip to content

Bring hackbot1 up to date with hackbot (19 commits)#1

Merged
JMAN730 merged 19 commits into
mainfrom
claude/wonderful-wozniak-r6gd50
Jun 23, 2026
Merged

Bring hackbot1 up to date with hackbot (19 commits)#1
JMAN730 merged 19 commits into
mainfrom
claude/wonderful-wozniak-r6gd50

Conversation

@JMAN730

@JMAN730 JMAN730 commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Moves all commits from hackbot into hackbot1.

The two repositories shared the commit 8f0a97e Update README.md, which was the tip of hackbot1/main and a strict ancestor of hackbot/main. hackbot had built 19 additional commits on top of it that hackbot1 was missing. hackbot1 had no unique commits, so this is a clean fast-forward — no conflicts and nothing discarded.

Commits added

hackbot was left unchanged (copy, not a destructive move).

claude and others added 19 commits June 14, 2026 18:17
The agent runs LLM-generated commands via ToolRunner. Execution was
inconsistent across paths: POSIX sync used shlex.split (safe), but the
Windows sync path used shell=True (cmd.exe) and execute_async() used
create_subprocess_shell — both shell-injection surfaces. validate_command
only checked the first token against the allowlist and never rejected
shell operators or command substitution.

- execute(): use shell=False on all platforms. On Windows the raw string
  goes to CreateProcess (no cmd.exe), so metacharacters are not interpreted.
- execute_async(): replace create_subprocess_shell with create_subprocess_exec
  and bring it to parity with execute() (plugin interception, risky-command
  confirmation, output truncation, FileNotFoundError handling, logging,
  on_output) so it can never become a future footgun.
- validate_command(): reject command substitution ($(...), backticks) and
  standalone shell-operator tokens (; | || & && > >> < <<) via a token-based
  check that does not false-positive on URLs (& inside a quoted arg). Handle
  unbalanced quotes gracefully instead of crashing.
- Factor truncation into _truncate_output() (removes a duplicated long line).

Adds 12 tests covering operator/substitution rejection, URL-with-ampersand
acceptance, unbalanced-quote handling, shell-free proof (chained command's
second half never runs; $HOME not interpolated), and async parity.

Full suite: 755 passed, 40 skipped.
Harden command execution: shell-free and consistent across all paths
…lover

[codex] feat: add DeepSeek key management
…un-sidebar-collapse

[codex] Improve GUI agent auto-run and sidebar collapse
Spec for a new agent `install` action plus ToolInstaller module that
auto-installs missing security tools through the existing hardened
ToolRunner boundary. Allowlist-bounded by default, layered package
managers (apt/dnf/pacman/brew + pipx/pip/go), respects safe_mode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…tall drivers

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remove package managers from the global allowlist so the agent cannot run
them via a normal execute action. ToolInstaller.install now invokes them
through a dedicated allow_install_drivers bypass on ToolRunner that permits
only config.INSTALL_DRIVERS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…l-install

feat: autonomous security-tool installation
@JMAN730
JMAN730 marked this pull request as ready for review June 23, 2026 16:07
@JMAN730
JMAN730 merged commit 563c252 into main Jun 23, 2026
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.

2 participants