Commit Graph
224 Commits
Author SHA1 Message Date
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
0xallamandAhmed Allam 492ca9b3d8 fix(tui): suppress stderr output in python renderer 2026-01-15 17:44:49 -08:00
0xallam 06b291ccf5 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 583c9e3df0 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 AllamandGitHub 6998987c93 Update README 2026-01-16 02:34:30 +04:00
0xallam 9de137c132 chore(release): bump version to 0.6.1 2026-01-14 21:30:14 -08:00
0xallamandAhmed Allam da78cab2b9 chore(prompt): discourage literal \n in tool params 2026-01-14 21:29:06 -08:00
0xallamandAhmed Allam 2295bb6ba7 chore(prompt): enforce single tool call per message and remove stop word usage 2026-01-14 19:51:08 -08:00
0xallamandAhmed Allam b4662af44b fix: restore ollama_api_base config fallback for Ollama support 2026-01-14 18:54:45 -08:00
0xallamandAhmed Allam 2052d66e27 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
0xallamandAhmed Allam 19f9139032 fix(agent): use correct agent name in identity instead of class name 2026-01-14 11:24:24 -08:00
0xallamandAhmed Allam 02f816ccef chore: add defusedxml dependency 2026-01-14 10:57:32 -08:00
0xallamandAhmed Allam 54c11868f8 fix(agent): fix tool schemas not retrieved on pyinstaller binary and validate tool call args 2026-01-14 10:57:32 -08:00
0xallamandAhmed Allam 55f6e01f22 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
0xallamandAhmed Allam 85596b6e7b 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
0xallamandAhmed Allam 0983cd5c56 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 AllamandGitHub f17a49aa80 Update README 2026-01-14 05:00:16 +04:00
0xallam c723a2c289 chore: Bump strix version to 0.6.0 2026-01-12 09:19:19 -08:00
0xallam e2ebf13f2c 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 c0ee00c89c fix: correct GitHub repository URL in README 2026-01-10 15:53:10 -08:00
0xallamandAhmed Allam 6c5933811d docs: document config persistence in README 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 9a8f5e8305 fix: allow clearing saved config by setting empty env var 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 4d3be8ee71 fix: apply saved config at module level before strix imports 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam ace523b4f8 fix: handle chmod failure on Windows gracefully 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam e629c52ec5 refactor: add explicit STRIX_IMAGE validation 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 4eec3b0d58 refactor: remove unused LLMRequestQueue constructor params 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 0ff6d231ad refactor: replace type ignores with inline fallbacks 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 62325ea3b9 refactor: use Config.get() in validate_environment() 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 5adda5c068 fix: set restrictive permissions on config file 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 1cc382249c refactor: remove STRIX_IMAGE constant, use Config.get() instead 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam a0a94baf59 fix: remove default for strix_llm, keep it required 2026-01-10 15:49:03 -08:00
0xallamandAhmed Allam 543b785d1a 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 2d35a4e0bd fix: add missing 'low' value to reasoning effort options 2026-01-09 20:17:46 -08:00
Ahmed Allamandgreptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> 071acf86f5 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
02a791b17d 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 049f7c23ba docs: reformat recommended models as bulleted list 2026-01-09 16:49:16 -08:00
0xallam 25a4895358 docs: add Gemini 3 Pro Preview to recommended models 2026-01-09 16:47:33 -08:00
0xallamandAhmed Allam 82c5b7363a fix: restrict result type check to dict or str 2026-01-09 16:44:05 -08:00
0xallamandAhmed Allam 8f1f221039 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 SangorrinandAhmed Allam 07102553f8 fix: add thinking blocks 2026-01-09 15:40:21 -08:00
Ahmed AllamandGitHub 34a3e57ff3 Remove title from README 2026-01-10 02:35:20 +04:00
0xallamandAhmed Allam 3c91b5f742 Simplify stats panel display format 2026-01-09 14:25:00 -08:00
0xallamandAhmed Allam 66f4ce9684 Modernize vulnerability detail dialog styling 2026-01-09 14:25:00 -08:00
0xallam 6e7a77cf78 Add PostHog integration for analytics and error debugging 2026-01-09 14:24:04 -08:00
0xallamandAhmed Allam 0b39bd38ba 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 d8fe2b42ae fix: reduce spacing between consecutive tool calls in TUI 2026-01-08 17:53:16 -08:00
0xallamandAhmed Allam aeaaa0a9d2 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
0xallamandAhmed Allam 449025c64d 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