0xallam and Ahmed Allam
e1d54f11f8
fix: run tool server as module to ensure correct sys.path for workers
2026-01-17 22:19:21 -08:00
0xallam and Ahmed Allam
2534396d82
style: remove redundant sudo -E flag
2026-01-17 22:19:21 -08:00
0xallam and Ahmed Allam
7519ff850c
fix: add initial delay and increase retries for tool server health check
2026-01-17 22:19:21 -08:00
0xallam and Ahmed Allam
e5c9480ed2
fix: replace pgrep with health check for tool server validation
2026-01-17 22:19:21 -08:00
0xallam and Ahmed Allam
ce53702473
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
0xallam and Ahmed Allam
bc6bb1699f
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
0xallam and Ahmed Allam
5132cc36ec
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
0xallam and Ahmed Allam
d3be648fa2
fix(tool_server): use get_running_loop() instead of deprecated get_event_loop()
2026-01-16 01:11:02 -08:00
0xallam and Ahmed Allam
65c2103f4f
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
0xallam and Ahmed Allam
c59f79e440
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
796d538582
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
0xallam and Ahmed Allam
ce76cce9ee
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
0xallam and Ahmed Allam
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 and Ahmed Allam
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 and GitHub
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 and Ahmed Allam
66e964e934
chore(prompt): discourage literal \n in tool params
2026-01-14 21:29:06 -08:00
0xallam and Ahmed Allam
4841fc6394
chore(prompt): enforce single tool call per message and remove stop word usage
2026-01-14 19:51:08 -08:00
0xallam and Ahmed Allam
264e412783
fix: restore ollama_api_base config fallback for Ollama support
2026-01-14 18:54:45 -08:00
0xallam and Ahmed Allam
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 and Ahmed Allam
40a6347aee
fix(agent): use correct agent name in identity instead of class name
2026-01-14 11:24:24 -08:00
0xallam and Ahmed Allam
c7226b697c
chore: add defusedxml dependency
2026-01-14 10:57:32 -08:00
0xallam and Ahmed Allam
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 and Ahmed Allam
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 and Ahmed Allam
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 and Ahmed Allam
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 and GitHub
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 and Ahmed Allam
88489aeafb
docs: document config persistence in README
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
427e7cf960
fix: allow clearing saved config by setting empty env var
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
75b9e13d1a
fix: apply saved config at module level before strix imports
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
67c89077c3
fix: handle chmod failure on Windows gracefully
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
8ec139f207
refactor: add explicit STRIX_IMAGE validation
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
873c0b08ba
refactor: remove unused LLMRequestQueue constructor params
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
2288c20eae
refactor: replace type ignores with inline fallbacks
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
87e3486116
refactor: use Config.get() in validate_environment()
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
3f4691aa19
fix: set restrictive permissions on config file
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
9ac8ebc001
refactor: remove STRIX_IMAGE constant, use Config.get() instead
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
6ef491ea50
fix: remove default for strix_llm, keep it required
2026-01-10 15:49:03 -08:00
0xallam and Ahmed Allam
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
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 and Ahmed Allam
2608166895
fix: restrict result type check to dict or str
2026-01-09 16:44:05 -08:00