0xallam
8c86f9cc43
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
0xallam
6ee13a42ad
fix(tui): suppress stderr output in python renderer
2026-01-15 17:44:49 -08:00
0xallam
9ad20cadcf
fix(executor): include error type in httpx RequestError messages
...
The str() of httpx.RequestError was often empty, making error messages
unhelpful. Now includes the exception type (e.g., ConnectError) for
better debugging.
2026-01-15 17:40:21 -08:00
0xallam
3cfb7bb96c
docs(tools): add comprehensive multiline examples and remove XML terminology
...
- Add professional, realistic multiline examples to all tool schemas
- finish_scan: Complete pentest report with SSRF/access control findings
- create_vulnerability_report: Full SSRF writeup with cloud metadata PoC
- file_edit, notes, thinking: Realistic security testing examples
- Remove XML terminology from system prompt and tool descriptions
- All examples use real newlines (not literal \n) to demonstrate correct usage
2026-01-15 17:25:28 -08:00
Ahmed Allam
03bf88bcd3
Update README
2026-01-16 02:34:30 +04:00
0xallam
625a0c87cc
chore(release): bump version to 0.6.1
2026-01-14 21:30:14 -08:00
0xallam
66e964e934
chore(prompt): discourage literal \n in tool params
2026-01-14 21:29:06 -08:00
0xallam
4841fc6394
chore(prompt): enforce single tool call per message and remove stop word usage
2026-01-14 19:51:08 -08:00
0xallam
264e412783
fix: restore ollama_api_base config fallback for Ollama support
2026-01-14 18:54:45 -08:00
0xallam
8e67c10c8b
fix(agent): fix agent loop hanging and simplify LLM module
...
- Fix agent loop getting stuck by adding hard stop mechanism
- Add _force_stop flag for immediate task cancellation across threads
- Use thread-safe loop.call_soon_threadsafe for cross-thread cancellation
- Remove request_queue.py (eliminated threading/queue complexity causing hangs)
- Simplify llm.py: direct acompletion calls, cleaner streaming
- Reduce retry wait times to prevent long hangs during retries
- Make timeouts configurable (llm_max_retries, memory_compressor_timeout, sandbox_execution_timeout)
- Keep essential token tracking (input/output/cached tokens, cost, requests)
- Maintain Anthropic prompt caching for system messages
2026-01-14 18:54:45 -08:00
0xallam
40a6347aee
fix(agent): use correct agent name in identity instead of class name
2026-01-14 11:24:24 -08:00
0xallam
c7226b697c
chore: add defusedxml dependency
2026-01-14 10:57:32 -08:00
0xallam
35339ff419
fix(agent): fix tool schemas not retrieved on pyinstaller binary and validate tool call args
2026-01-14 10:57:32 -08:00
0xallam
a7ca0a335a
chore(deps-dev): bump virtualenv from 20.34.0 to 20.36.1
...
Bumps [virtualenv](https://github.com/pypa/virtualenv ) from 20.34.0 to 20.36.1.
- [Release notes](https://github.com/pypa/virtualenv/releases )
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst )
- [Commits](https://github.com/pypa/virtualenv/compare/20.34.0...20.36.1 )
---
updated-dependencies:
- dependency-name: virtualenv
dependency-version: 20.36.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-13 17:15:58 -08:00
0xallam
11c5b95a32
chore(deps): bump filelock from 3.20.1 to 3.20.3
...
Bumps [filelock](https://github.com/tox-dev/py-filelock ) from 3.20.1 to 3.20.3.
- [Release notes](https://github.com/tox-dev/py-filelock/releases )
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst )
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.20.1...3.20.3 )
---
updated-dependencies:
- dependency-name: filelock
dependency-version: 3.20.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-13 17:15:43 -08:00
0xallam
759a5b8f1c
chore(deps): bump azure-core from 1.35.0 to 1.38.0
...
Bumps [azure-core](https://github.com/Azure/azure-sdk-for-python ) from 1.35.0 to 1.38.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-python/releases )
- [Commits](https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.35.0...azure-core_1.38.0 )
---
updated-dependencies:
- dependency-name: azure-core
dependency-version: 1.38.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-13 17:15:22 -08:00
Ahmed Allam
40c32eb12c
Update README
2026-01-14 05:00:16 +04:00
0xallam
6d769f4d97
chore: Bump strix version to 0.6.0
2026-01-12 09:19:19 -08:00
0xallam
f3b48e97fb
feat: modernize TUI status bar with sweep animation
...
- Replace braille spinner with ping-pong sweep animation using colored squares
- Add smooth gradient fade with 8 color steps from dim to bright green
- Modernize keymap styling: keys in white, actions in dim, separated by ·
- Move "esc stop" to left side next to animation
- Change ctrl-c to ctrl-q for quit
- Simplify "Initializing Agent" to just "Initializing"
- Remove italic styling from status text
- Waiting state shows only "Send message to resume" hint
- Remove unused action verbs and related dead code
2026-01-11 23:54:24 -08:00
0xallam
b95864ab9e
fix: correct GitHub repository URL in README
2026-01-10 15:53:10 -08:00
0xallam
88489aeafb
docs: document config persistence in README
2026-01-10 15:49:03 -08:00
0xallam
427e7cf960
fix: allow clearing saved config by setting empty env var
2026-01-10 15:49:03 -08:00
0xallam
75b9e13d1a
fix: apply saved config at module level before strix imports
2026-01-10 15:49:03 -08:00
0xallam
67c89077c3
fix: handle chmod failure on Windows gracefully
2026-01-10 15:49:03 -08:00
0xallam
8ec139f207
refactor: add explicit STRIX_IMAGE validation
2026-01-10 15:49:03 -08:00
0xallam
873c0b08ba
refactor: remove unused LLMRequestQueue constructor params
2026-01-10 15:49:03 -08:00
0xallam
2288c20eae
refactor: replace type ignores with inline fallbacks
2026-01-10 15:49:03 -08:00
0xallam
87e3486116
refactor: use Config.get() in validate_environment()
2026-01-10 15:49:03 -08:00
0xallam
3f4691aa19
fix: set restrictive permissions on config file
2026-01-10 15:49:03 -08:00
0xallam
9ac8ebc001
refactor: remove STRIX_IMAGE constant, use Config.get() instead
2026-01-10 15:49:03 -08:00
0xallam
6ef491ea50
fix: remove default for strix_llm, keep it required
2026-01-10 15:49:03 -08:00
0xallam
e586cd7f61
feat: add centralized Config class with auto-save to ~/.strix/cli-config.json
...
- Add Config class with all env var defaults in one place
- Auto-load saved config on startup (env vars take precedence)
- Auto-save config after successful LLM warm-up
- Replace scattered os.getenv() calls with Config.get()
2026-01-10 15:49:03 -08:00
0xallam
21e8e37a3e
fix: add missing 'low' value to reasoning effort options
2026-01-09 20:17:46 -08:00
Ahmed Allam and greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
8b65094a24
Update args in strix/interface/main.py
...
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-01-09 20:00:01 -08:00
0xallam and Claude Opus 4.5
66518c8a0e
feat: add STRIX_REASONING_EFFORT env var to control thinking effort
...
- Add configurable reasoning effort via environment variable
- Default to "high", but use "medium" for quick scan mode
- Document in README and interface error panel
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-09 20:00:01 -08:00
0xallam
88a02e539a
docs: reformat recommended models as bulleted list
2026-01-09 16:49:16 -08:00
0xallam
00f9c62d8e
docs: add Gemini 3 Pro Preview to recommended models
2026-01-09 16:47:33 -08:00
0xallam
2608166895
fix: restrict result type check to dict or str
2026-01-09 16:44:05 -08:00
0xallam
66de693618
fix: handle string results in tool renderers
...
Previously, tool renderers assumed result was always a dict and would
crash with AttributeError when result was a string (e.g., error messages).
Now all renderers properly check for string results and display them.
2026-01-09 16:44:05 -08:00
Daniel Sangorrin
82cff89bb9
fix: add thinking blocks
2026-01-09 15:40:21 -08:00
Ahmed Allam
c6e984ed6d
Remove title from README
2026-01-10 02:35:20 +04:00
0xallam
dc26a440b5
Simplify stats panel display format
2026-01-09 14:25:00 -08:00
0xallam
7aa9a771b1
Modernize vulnerability detail dialog styling
2026-01-09 14:25:00 -08:00
0xallam
f1820b76fc
Add PostHog integration for analytics and error debugging
2026-01-09 14:24:04 -08:00
0xallam
4682657644
chore(deps): bump pypdf from 6.4.0 to 6.6.0
...
Bumps [pypdf](https://github.com/py-pdf/pypdf ) from 6.4.0 to 6.6.0.
- [Release notes](https://github.com/py-pdf/pypdf/releases )
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md )
- [Commits](https://github.com/py-pdf/pypdf/compare/6.4.0...6.6.0 )
---
updated-dependencies:
- dependency-name: pypdf
dependency-version: 6.6.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-09 12:28:41 -08:00
0xallam
5ba69a2800
fix: reduce spacing between consecutive tool calls in TUI
2026-01-08 17:53:16 -08:00
0xallam
ef4068d376
fix: use fixed per-request timeout for tool server health checks
...
The previous implementation divided total timeout by retries, making the
timeout behavior confusing and the actual wait time unpredictable. Now
uses a consistent 5-second timeout per request for clearer semantics.
2026-01-08 17:41:44 -08:00
0xallam
916a9000af
feat: add tool server health check and show error details in CLI
...
- Add _wait_for_tool_server_health() to verify tool server is responding after init
- Show error details in CLI mode when penetration test fails
- Simplify error message (remove technical URL details)
2026-01-08 17:41:44 -08:00
0xallam
3a1820a1ff
feat: add tool server health check during sandbox initialization
...
- Add _wait_for_tool_server_health() method with retry logic and exponential backoff
- Check tool server /health endpoint after container initialization
- Add async _verify_tool_server_health() for health check when reusing containers
- Raise SandboxInitializationError with helpful message if tool server is not responding
- Add TOOL_SERVER_HEALTH_TIMEOUT and TOOL_SERVER_HEALTH_RETRIES constants
2026-01-08 17:41:44 -08:00
0xallam
3f19ab1188
fix: add timeout handling for Docker operations and improve error messages
...
- Add SandboxInitializationError exception for sandbox/Docker failures
- Add 60-second timeout to Docker client initialization
- Add _exec_run_with_timeout() method using ThreadPoolExecutor for exec_run calls
- Catch ConnectionError and Timeout exceptions from requests library
- Add _handle_sandbox_error() and _handle_llm_error() methods in base_agent.py
- Handle sandbox_error_details tool in TUI for displaying errors
- Increase TUI truncation limits for better error visibility
- Update all Docker error messages with helpful hint:
'Please ensure Docker Desktop is installed and running, and try running strix again.'
2026-01-08 17:41:44 -08:00