Commit Graph
271 Commits
Author SHA1 Message Date
0xallamandAhmed Allam e6d965bedd docs: add benchmarks directory with XBEN results 2026-01-23 11:04:22 -08:00
Ahmed AllamandGitHub b0bc230bae Update README 2026-01-23 06:56:10 +04:00
Ahmed AllamandGitHub 19ee363ecd Update README 2026-01-23 06:55:35 +04:00
0xallam 750aacfaec docs: update screenshot and add to intro page 2026-01-22 13:09:45 -08:00
0xallam 4fb8835d52 chore: unify token stats color scheme 2026-01-22 11:37:21 -08:00
0xallam efc820ca47 chore: improve stats panel layout 2026-01-22 11:17:32 -08:00
0xallamandAhmed Allam 00a9ad5bde docs: update Discord links 2026-01-21 20:27:28 -08:00
0xallamandAhmed Allam 43909fb42c docs: improve introduction page with use cases, tools, and architecture 2026-01-21 20:27:28 -08:00
0xallam d916121713 docs: remove custom Docker image example from config 2026-01-21 15:35:26 -08:00
0xallamandAhmed Allam 52a08c1120 docs: update configuration documentation
- Add missing config options: STRIX_LLM_MAX_RETRIES, STRIX_MEMORY_COMPRESSOR_TIMEOUT, STRIX_TELEMETRY
- Remove non-existent options: LLM_RATE_LIMIT_DELAY, LLM_RATE_LIMIT_CONCURRENT
- Fix defaults: STRIX_SANDBOX_EXECUTION_TIMEOUT (500 -> 120), STRIX_IMAGE (0.1.10 -> 0.1.11)
- Add config file documentation section
- Add --config CLI option to cli.mdx
2026-01-21 15:13:15 -08:00
0xallamandAhmed Allam e0e8810e7a docs: update skills documentation for markdown format
Reflect PR #275 changes - skills now use Markdown files with YAML
frontmatter instead of Jinja templates with XML-style tags.
2026-01-21 14:54:09 -08:00
0xallamandAhmed Allam f65d85b8f8 docs: add documentation to main repository 2026-01-20 21:13:32 -08:00
0xallamandAhmed Allam 5778070753 fix(llm): collect usage stats from final stream chunk
The early break on </function> prevented receiving the final chunk
that contains token usage data (input_tokens, output_tokens).
2026-01-20 20:36:00 -08:00
d246e2984b refactor: simplify --config implementation to reuse existing config system
- Reuse apply_saved() instead of custom override logic
- Add force parameter to override existing env vars
- Move validation to utils.py
- Prevent saving when using custom config (one-time override)
- Fix: don't modify ~/.strix/cli-config.json when --config is used

Co-Authored-By: FeedClogger <feedclogger@users.noreply.github.com>
2026-01-20 17:02:29 -08:00
FeedCloggerandAhmed Allam 8481438b10 Added .env variable override through --config param 2026-01-20 17:02:29 -08:00
0xallam 690991cdf1 chore: update Discord invite link 2026-01-20 12:58:14 -08:00
0xallamandAhmed Allam f0b1cad454 docs: update skills README for markdown format 2026-01-20 12:50:59 -08:00
0xallamandAhmed Allam 47caa0f525 refactor: standardize vulnerability skills format 2026-01-20 12:50:59 -08:00
0xallamandAhmed Allam af91825505 fix: remove icon from ListFilesRenderer 2026-01-20 12:50:59 -08:00
0xallamandAhmed Allam c6f9aee0ba fix: exclude scan_modes and coordination from available skills 2026-01-20 12:50:59 -08:00
0xallamandAhmed Allam e8b893a2c1 refactor: migrate skills from Jinja to Markdown 2026-01-20 12:50:59 -08:00
0xallam ceefb6a799 fix: remove unintended margin from stats panel 2026-01-19 21:48:56 -08:00
0xallam e08ba84165 refactor: improve stats panel styling and add version display 2026-01-19 21:46:13 -08:00
0xallam 2b44e46487 refactor: update agent tree status indicators 2026-01-19 21:23:29 -08:00
0xallamandAhmed Allam 1d67b8fe82 feat: remove docker container on shutdown
Add automatic cleanup of Docker containers when the application exits.
Uses a singleton runtime pattern and spawns a detached subprocess for
cleanup to ensure fast exit without blocking the UI.
2026-01-19 18:26:41 -08:00
0xallamandAhmed Allam c24227c48a refactor: redesign finished dialogs and UI elements 2026-01-19 16:52:02 -08:00
0xallamandAhmed Allam 1a6fca08c6 refactor: revamp proxy tool renderers for better UX
- Show actual request/response data with visual flow (>> / <<)
- Display all relevant params: filters, sort, scope, modifications
- Add type-safe handling for streaming edge cases
- Use color-coded status codes (2xx green, 3xx yellow, 4xx/5xx red)
- Show search context (before/after) not just matched text
- Show full request details in send/repeat request renderers
- Show modifications on separate lines with full content
- Increase truncation limits for better visibility (200 char lines)
- Use present tense lowercase titles (listing, viewing, searching)
2026-01-19 15:33:53 -08:00
0xallamandAhmed Allam e1c239a5ab fix: remove 'unknown' fallback display in browser tool renderer 2026-01-19 13:46:20 -08:00
0xallamandAhmed Allam 5b52d5e173 fix: strip ANSI codes from Python tool output and optimize highlighting
- Add comprehensive ECMA-48 ANSI pattern to strip escape sequences from output
- Fix _truncate_line to strip ANSI before length calculation
- Cache PythonLexer instance (was creating new one per call)
- Memoize token color lookups to avoid repeated parent chain traversal
2026-01-19 12:21:08 -08:00
0xallamandAhmed Allam 20c98055ae perf: optimize TUI streaming rendering performance
- Pre-compile regex patterns in streaming_parser.py
- Move hot-path imports to module level in tui.py
- Add streaming content caching to avoid re-rendering unchanged content
- Track streaming length to skip unnecessary re-renders
- Reduce UI update interval from 250ms to 350ms
2026-01-19 11:46:38 -08:00
0xallamandAhmed Allam d8f76c2b7c fix: always show shell restart warning after install 2026-01-18 19:22:44 -08:00
0xallamandAhmed Allam 1a37e52751 fix: improve install script PATH handling for more shells
- Add ZDOTDIR support for zsh users who relocate their config
- Add XDG_CONFIG_HOME paths for zsh and bash
- Add ash and sh shell support (Alpine/BusyBox)
- Warn user instead of silently creating .bashrc when no config found
- Add user feedback on what file was modified
- Handle non-writable config files gracefully
2026-01-18 19:11:44 -08:00
0xallam 863e89efff chore: bump version to 0.6.2 and sandbox to 0.1.11 2026-01-18 18:29:44 -08:00
0xallamandAhmed Allam 8fbf8a0971 refactor: share single browser instance across all agents
- Use singleton browser with isolated BrowserContext per agent instead of
  separate Chromium processes per agent
- Add cleanup logic for stale browser/playwright on reconnect
- Add resource management instructions to browser schema (close tabs/browser when done)
- Suppress Kali login message in Dockerfile
2026-01-18 17:51:23 -08:00
0xallamandAhmed Allam aa29b6b72b fix: create fresh gql client per request to avoid transport state issues 2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam f82cb8209a fix: add telemetry module to Dockerfile for posthog error tracking 2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam 07bd570d75 refactor: simplify tool server to asyncio tasks with per-agent isolation
- Replace multiprocessing/threading with single asyncio task per agent
- Add task cancellation: new request cancels previous for same agent
- Add per-agent state isolation via ContextVar for Terminal, Browser, Python managers
- Add posthog telemetry for tool execution errors (timeout, http, sandbox)
- Fix proxy manager singleton pattern
- Increase client timeout buffer over server timeout
- Add context.py to Dockerfile
2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam ca0e5bb62d fix: run tool server as module to ensure correct sys.path for workers 2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam ba4dae755b style: remove redundant sudo -E flag 2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam f6d15997f0 fix: add initial delay and increase retries for tool server health check 2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam 55abf9b55f fix: replace pgrep with health check for tool server validation 2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam cbb5fa0154 refactor: simplify container initialization and fix startup reliability
- Move tool server startup from Python to entrypoint script
- Hardcode Caido port (48080) in entrypoint, remove from Python
- Use /app/venv/bin/python directly instead of poetry run
- Fix env var passing through sudo with sudo -E and explicit vars
- Add Caido process monitoring and logging during startup
- Add retry logic with exponential backoff for token fetch
- Add tool server process validation before declaring ready
- Simplify docker_runtime.py (489 -> 310 lines)
- DRY up container state recovery into _recover_container_state()
- Add container creation retry logic (3 attempts)
- Fix GraphQL health check URL (/graphql/ with trailing slash)
2026-01-17 22:19:21 -08:00
0xallamandAhmed Allam 8ee528b8ce chore(deps): bump pyasn1 from 0.6.1 to 0.6.2
Bumps [pyasn1](https://github.com/pyasn1/pyasn1) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/pyasn1/pyasn1/releases)
- [Changelog](https://github.com/pyasn1/pyasn1/blob/main/CHANGES.rst)
- [Commits](https://github.com/pyasn1/pyasn1/compare/v0.6.1...v0.6.2)

---
updated-dependencies:
- dependency-name: pyasn1
  dependency-version: 0.6.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-16 15:26:13 -08:00
0xallamandAhmed Allam 8ece95eb7a fix(tool_server): include request_id in worker errors and use get_running_loop
- Add request_id to worker error responses to prevent client hangs
- Replace deprecated get_event_loop() with get_running_loop() in execute_tool
2026-01-16 01:11:02 -08:00
0xallamandAhmed Allam 16c2d4ae3b fix(tool_server): use get_running_loop() instead of deprecated get_event_loop() 2026-01-16 01:11:02 -08:00
0xallamandAhmed Allam 2b4107591c fix(python): prevent stdout/stderr race on timeout
Add cancelled flag to prevent timed-out thread's finally block from
overwriting stdout/stderr when a subsequent execution has already
started capturing output.
2026-01-16 01:11:02 -08:00
0xallamandAhmed Allam d4461a1b0f fix(runtime): parallel tool execution and remove signal handlers
- Add ThreadPoolExecutor in agent_worker for parallel request execution
- Add request_id correlation to prevent response mismatch between concurrent requests
- Add background listener thread per agent to dispatch responses to correct futures
- Add --timeout argument for hard request timeout (default: 120s from config)
- Remove signal handlers from terminal_manager, python_manager, tab_manager (use atexit only)
- Replace SIGALRM timeout in python_instance with threading-based timeout

This fixes requests getting queued behind slow operations and timeouts.
2026-01-16 01:11:02 -08:00
0xallam 291ecfed10 fix(llm): remove hardcoded temperature from dedupe check
Allow the model's default temperature setting to be used instead of
forcing temperature=0 for duplicate detection.
2026-01-15 18:56:48 -08:00
0xallamandAhmed Allam d3dc518b36 fix(config): keep non-LLM saved env values
When LLM env differs, drop only LLM-related saved entries instead of
clearing all saved env vars, preserving other config like API keys.
2026-01-15 18:37:38 -08:00
0xallamandAhmed Allam 1d34ccbf36 fix(config): canonicalize LLM env and respect cleared vars
Drop saved LLM config if any current LLM env var differs, and treat
explicit empty env vars as cleared so saved values are removed and
not re-applied.
2026-01-15 18:37:38 -08:00