Commit Graph
100 Commits
Author SHA1 Message Date
Alexander Myasoedov f43472cc9b fix: ci poetry installs into system python
poetry.toml sets virtualenvs.create=false, so pipx poetry installed into
the runner's system Python 3.12 and failed uninstalling Debian packages.
Force venv creation in CI via POETRY_VIRTUALENVS_CREATE. Drop the poetry
cache from release, which never creates a venv.
2026-09-22 16:58:07 +03:00
Alexander Myasoedov bdf2208f6b Merge pull request #346 from jiawenlai1109/fix/audio-temp-leak-on-save-error
fix(audio_generator): clean up temp file when gTTS save() fails
2026-09-22 16:53:32 +03:00
Alexander Myasoedov 2340bc2f5a Merge pull request #345 from Anai-Guo/fix/hybrid-classifier-self-annotation
fix(refusal_classifier): quote self-referential annotation to fix import NameError
2026-09-11 10:08:39 +03:00
Alexander MyasoedovandClaude Fable 5.1 1f2413e2b0 fix: ci pre-commit poetry env
Install poetry before setup-python and enable the poetry cache so
setup-python activates the 3.14 interpreter. With virtualenvs.create=false
poetry otherwise installs into the runner's system Python 3.12 and fails
uninstalling Debian dist-packages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bk6CFfaN3YJFZ6yztQja7D
2026-09-07 14:08:49 +03:00
Alexander Myasoedov a49706457c fix: pc 2026-09-07 14:03:57 +03:00
Alexander Myasoedov 5a9e80b9af fix: cosmetic 2026-09-07 14:03:57 +03:00
Alexander Myasoedov 3e6b184c4f fix: template fix 2026-09-07 14:03:57 +03:00
Alexander Myasoedov f286ebf21a fix: docs 2026-09-07 14:03:57 +03:00
Alexander Myasoedov b5aa075927 Merge pull request #340 from rwinkelman/feat/scan-cli-spec-309
feat(cli): add stateless scan command for agent-invocable runs (#309)
2026-09-07 13:36:03 +03:00
Alexander Myasoedov 35379d1124 fix: build 2026-09-07 13:35:20 +03:00
Alexander Myasoedov fd43b13bb7 fix: syntax error 2026-09-07 13:24:28 +03:00
Alexander Myasoedov c75df250c7 Merge pull request #343 from TianHengZhuang/main
docs: document module interface and add ModuleProtocol
2026-09-07 13:16:03 +03:00
Alexander Myasoedov 80015fd803 Merge pull request #342 from Sabina8205/docs/cli-reference
docs: add CLI reference and correct configuration filename
2026-09-07 13:14:19 +03:00
Alexander Myasoedov 73f84b7aa8 Merge pull request #338 from rwinkelman/fix/scan-route-logging-199
feat: add structured logging to scan API routes (#199)
2026-09-01 16:16:22 +03:00
Alexander Myasoedov 797180ca3a Merge pull request #336 from rwinkelman/fix/verify-integration-error-status-173
fix(ui): mark integration verify failure on network errors
2026-08-31 14:17:34 +03:00
Alexander Myasoedov 1ef131421e feat: move to python 3.14 baseline, patch remaining dependabot alerts
- requires-python >=3.14, pyupgrade --py314-plus, Dockerfile python:3.14-slim
- test matrix 3.14 only
- fastapi ^0.141.1 + starlette 1.6.0 (unblocks 5 starlette alerts)
- python-multipart ^0.0.31 (4 alerts)
- fix TemplateResponse for starlette 1.x request-first signature
- drop teyit hook: abandoned, incompatible with python 3.14
2026-08-18 19:14:05 +03:00
Alexander Myasoedov 11024e6fca fix(deps): patch 47 dependabot alerts via lock bump 2026-08-18 19:07:13 +03:00
Alexander Myasoedov 2f128ae16c fix(deps): bump pyarrow to 25.0.1 for cp314 wheels 2026-08-18 19:01:16 +03:00
Alexander Myasoedov 3b1067c317 fix(pc): 2026-08-18 18:49:56 +03:00
Alexander Myasoedov 27c160eaa3 Merge pull request #326 from chiruu12/fix/hybrid-classifier-guards
fix(hybrid): guard zero total weight and log skipped detectors
2026-08-18 18:40:07 +03:00
Alexander Myasoedov de16779806 Merge pull request #328 from feiiiiii5/fix-circuit-breaker-half-open
fix(circuit-breaker): reopen on failure during half-open probation
2026-08-18 18:39:03 +03:00
Alexander Myasoedov 017ba7c168 Merge pull request #329 from feiiiiii5/fix-p95-percentile-index
fix(executor): compute p95 latency as a real 95th percentile
2026-08-18 18:38:25 +03:00
Alexander Myasoedov 43922ced3d Merge pull request #330 from ChrisJr404/code-block-stenography
Add code_block stenography transform (embed prompt in a docstring)
2026-08-18 18:37:40 +03:00
Alexander Myasoedov 14e45f3788 Merge pull request #331 from ChrisJr404/feat/owasp-llm-badges
Add OWASP LLM Top 10 category badges to the scan UI
2026-08-18 18:36:50 +03:00
Alexander Myasoedov c8458d73c5 Merge pull request #320 from DevamShah/fix-cors-credentials-and-icon-traversal
fix: wildcard CORS + credentials spec violation, path-traversal guard on /icons proxy
2026-07-31 19:27:20 +03:00
Alexander Myasoedov 42615e506a fix(build): 2026-06-23 10:20:10 +03:00
Alexander Myasoedov e6459a551a Merge pull request #321 from DevamShah/config-pluggable-detectors
feat: config-pluggable refusal classifiers and leak detectors
2026-06-23 10:12:26 +03:00
Alexander Myasoedov 8e12141df8 Merge pull request #318 from nakshaatraa/docs/fuzzer-module-docstring
docs: add module-level docstring and document constants in fuzzer.py
2026-06-15 12:55:19 +03:00
Alexander Myasoedov b90b80a0af Merge pull request #317 from nakshaatraa/fix/image-generator-matplotlib-warnings
fix: set matplotlib Agg backend and sanitize prompt whitespace
2026-06-15 12:54:41 +03:00
Alexander Myasoedov b827a0b186 Merge pull request #316 from jasoncobra3/chore/delete-agno-dead-code-v2
chore: delete Agno dead code (Phase 1)
2026-06-15 12:52:19 +03:00
Alexander Myasoedov 21f7517ef9 Merge pull request #314 from JackSpiece/chore/remove-mcp
chore: delete MCP server and client
2026-06-11 17:46:04 +03:00
Alexander Myasoedov 438f30bfb2 Merge pull request #313 from JackSpiece/chore/remove-agno
chore: remove leftover Agno artifacts
2026-06-10 23:55:45 +03:00
Alexander Myasoedov 13b03b958f Merge pull request #310 from zhanz5/fix/cost-calculation-model-aware
fix: make cost calculation model-aware instead of hardcoded to deepseek-chat
2026-06-05 10:12:41 +03:00
Alexander Myasoedov 6ae9ea8bfe fix(pc): 2026-06-04 18:32:42 +03:00
Alexander Myasoedov 40a8284656 feat(clean readme): 2026-06-04 18:29:25 +03:00
Alexander Myasoedov ead8f85836 feat(feat(refusal): detect Docker/K8s sandbox escape probes (#280)): 2026-06-04 18:28:12 +03:00
Alexander Myasoedov 6dcda7c931 fix(fix(security): bind server to 127.0.0.1 instead of 0.0.0.0 by default): 2026-06-04 17:53:35 +03:00
Alexander Myasoedov 7b8d238254 Merge pull request #305 from zhanz5/fix/remove-duplicate-probedataset-msj
fix: remove duplicate ProbeDataset class from msj_data.py
2026-06-04 17:47:17 +03:00
Alexander Myasoedov 3b26e57b9e fix(pc): 2026-06-03 15:13:19 +03:00
Alexander Myasoedov 5ce4ed5d91 Merge pull request #301 from JackSpiece/fix/tailwind-v4-static-classes
fix: migrate static UI to Tailwind v4
2026-06-03 15:10:49 +03:00
Alexander Myasoedov 816c8c6bc7 fix(make litellm optional import): 2026-06-03 15:08:23 +03:00
Alexander Myasoedov a193ef9c2c fix(pc): 2026-06-03 15:05:59 +03:00
Alexander Myasoedov 67cedfb116 Merge pull request #299 from RheagalFire/feat/add-litellm-provider
feat: add LiteLLM as provider for 100+ LLM backends
2026-06-03 15:04:18 +03:00
Alexander Myasoedov 50266554fe Merge pull request #297 from ykd007/feat/mcp-claude-docs-193
document Claude MCP usage in README
2026-06-03 15:02:59 +03:00
Alexander Myasoedov 1fa66bd292 Merge pull request #300 from JackSpiece/fix/mcp-client-usage-examples
docs: add MCP client usage examples
2026-06-03 15:01:02 +03:00
Alexander Myasoedov 1bfb7dcc20 fix(use_agg_backend): 2026-06-03 14:59:43 +03:00
Alexander Myasoedov c0322d1130 Merge pull request #303 from Carlos-Projects/feat/agno-mcp-integration
feat: add MCP+Agno integration docs and report chart tests
2026-06-03 14:55:58 +03:00
Alexander Myasoedov a47543e5e0 Merge pull request #304 from zhanz5/fix/scan-csv-route-implementation
fix: implement scan-csv route to actually use uploaded CSV data
2026-06-03 14:54:28 +03:00
Alexander Myasoedov 47ee4f09a6 fix(security alerts): 2026-06-03 14:52:45 +03:00
Alexander Myasoedov bcc12a9443 fix(cost fn): 2026-06-03 14:52:29 +03:00
Alexander Myasoedov d2bbad32b4 fix(fmt): 2026-05-27 22:05:37 +03:00
Alexander Myasoedov 40e59860c0 Merge pull request #302 from Carlos-Projects/main
fix: strip Content-Length and make hardcoded values configurable (closes #139, #167)
2026-05-27 22:00:20 +03:00
Alexander Myasoedov 2aabcef414 Merge pull request #291 from Dawn-Fighter/feat/pii-leak-detector
feat: add PII leak detector
2026-05-14 20:25:09 +03:00
Alexander Myasoedov 2896974005 fix(pc): 2026-05-14 19:23:22 +03:00
Alexander Myasoedov e38365c904 Merge pull request #290 from ykd007/feat/google-sheets-dataset-support
feat(datasets): support Google Sheets URLs in dataset loader
2026-05-14 19:20:49 +03:00
Alexander Myasoedov 669169bd11 feat(vercel): 2026-05-14 19:19:44 +03:00
Alexander Myasoedov cb64a3b70c fix(script): 2026-05-14 19:16:51 +03:00
Alexander Myasoedov e2bf837e00 fix(docs): 2026-05-14 19:15:12 +03:00
Alexander Myasoedov 0fba1ccadf feat(docs/vercel.sh): 2026-05-14 19:14:09 +03:00
Alexander Myasoedov d5cd85f8cb fix(ci): 2026-05-14 19:08:40 +03:00
Alexander Myasoedov 695eac4144 fix(build): 2026-05-14 19:04:16 +03:00
Alexander Myasoedov 50785b9850 fix(pc): 2026-05-14 18:59:37 +03:00
Alexander Myasoedov a0b2b9ec70 feat(py upgrade): 2026-05-14 18:56:24 +03:00
Alexander Myasoedov 46ec775266 feat(deprecate ui): 2026-05-14 18:40:27 +03:00
Alexander Myasoedov 5b90eb032a Merge pull request #277 from niveshdandyan/add-full-event-log
feat: add full event log export for all scan events
2026-02-03 18:54:09 +02:00
Alexander Myasoedov 796bd33432 Merge pull request #276 from msoedov/feat/research-enhancements
Feat/research enhancements
2026-01-28 21:09:00 +02:00
Alexander Myasoedov bc7fdd7cfa fix(pc): 2026-01-28 21:04:29 +02:00
Alexander Myasoedov 8d42a84a9d fix(cleanup): 2026-01-28 21:00:08 +02:00
Alexander Myasoedov 49b2243258 docs: Update PRD and progress for US-005 completion 2026-01-28 18:52:42 +02:00
Alexander Myasoedov b38a27d78c feat: US-005 - Enhanced Refusal Detection with Hybrid Approach
Implement hybrid refusal classifier combining multiple detection methods:
- Add confidence scoring to refusal detection (HybridResult)
- Implement weighted voting with configurable thresholds
- Support require_unanimous mode for strict classification
- Add factory function create_hybrid_classifier for common setup
- Include 32 unit tests with table-driven test patterns
2026-01-28 18:52:20 +02:00
Alexander Myasoedov d5e2746567 docs: Update PRD and progress for US-004 completion 2026-01-28 18:35:07 +02:00
Alexander Myasoedov 41567925aa feat: US-004 - Unified LLM Provider Abstraction
Create unified provider abstraction layer for direct LLM integrations beyond
HTTP specs, inspired by FuzzyAI's comprehensive provider system.

- Add BaseLLMProvider abstract class with standard interface (generate, chat,
  sync_generate, sync_chat methods)
- Implement OpenAIProvider supporting chat completions API
- Implement AnthropicProvider supporting messages API
- Create provider factory for instantiation by name (create_provider,
  get_provider_class)
- Add 60 unit tests covering all provider implementations
2026-01-28 18:34:38 +02:00
Alexander Myasoedov 29decc5c4e docs: Update PRD and progress for US-003 completion 2026-01-28 18:29:44 +02:00
Alexander Myasoedov f8e3f6f4a5 feat: US-003 - Composable Fuzzing Chain System
Implement FuzzNode and FuzzChain classes for multi-step attack chains
with pipe operator syntax, inspired by FuzzyAI architecture.

- FuzzNode: Single LLM call with {var} template substitution
- FuzzChain: Sequential execution passing output as input
- Pipe operator (|) for composing nodes into chains
- LLMProvider protocol for provider abstraction
- 22 unit tests covering composition and execution
2026-01-28 18:29:22 +02:00
Alexander Myasoedov d5ec249b6c docs: Update PRD and progress for US-002 completion 2026-01-28 18:23:30 +02:00
Alexander Myasoedov ef35c1f82e feat: US-002 - YAML-based Attack Rule System
Implement a YAML-based rule system for defining attack patterns and success
conditions, inspired by Promptmap's 50+ YAML rule definitions.

Features:
- AttackRule model with name, type, severity, prompt, pass/fail conditions
- RuleLoader for parsing YAML files with validation
- Support for recursive directory loading and filtering by type/severity
- Template variable substitution in prompts
- Dataset integration for converting rules to ProbeDataset format
- YAMLRulesDatasetLoader for loading rules from multiple directories

Tested with 47 unit tests covering models, loader, and dataset integration.
Successfully loads 69 rules from promptmap research directory.
2026-01-28 18:23:04 +02:00
Alexander Myasoedov 93a85029cb docs: Update PRD and progress for US-001 completion 2026-01-28 18:18:32 +02:00
Alexander Myasoedov 32f103acbc feat: US-001 - Dual-LLM Evaluation for Attack Success Detection
Add LLM-based refusal classifier inspired by Promptmap's dual-LLM
architecture. The controller LLM evaluates whether an attack succeeded
by analyzing the target's response against pass/fail conditions.

- Create LLMRefusalClassifier plugin integrating with existing system
- Support OpenAI and Anthropic providers with lazy initialization
- Add configurable system prompts and pass/fail conditions
- Include 20 unit tests for comprehensive coverage
2026-01-28 18:18:09 +02:00
Alexander Myasoedov ce7636fe9e feat(restruct tests): 2025-12-26 22:58:21 +02:00
Alexander Myasoedov 433c999600 feat(clean up obsolete agents): 2025-12-24 08:21:48 +02:00
Alexander Myasoedov 268f9ecf86 Merge pull request #275 from msoedov/poc-concurrency-reporting-unified
Poc concurrency reporting, general improvements
2025-12-24 08:20:42 +02:00
Alexander Myasoedov 5238d67846 feat(cleanup): 2025-12-24 08:18:17 +02:00
Alexander Myasoedov a9adb22458 fix(pc): 2025-12-24 08:16:21 +02:00
Alexander Myasoedov 2dc41af98d feat(cleanup): 2025-12-24 08:11:43 +02:00
Alexander Myasoedov 48125bd106 feat(add executor): 2025-12-24 08:10:08 +02:00
Alexander Myasoedov 5285fdd0a0 codex quality run #1 2025-12-10 23:06:40 +02:00
Alexander Myasoedov bf628db5c4 codex quality run #1 2025-12-10 22:53:55 +02:00
Alexander Myasoedov d56b406e1a fix(tests runtime): 2025-12-09 20:00:04 +02:00
Alexander Myasoedov b9dc5de708 feat(add cache dir): 2025-12-09 19:51:47 +02:00
Alexander Myasoedov 9a4fb05491 fix(pc): 2025-11-30 18:50:00 +02:00
Alexander Myasoedov 3e2df49976 fix(pc): 2025-11-30 18:47:15 +02:00
Alexander Myasoedov 14eefb7a67 fix(clean up): 2025-11-30 18:43:37 +02:00
Alexander Myasoedov 7a9c884333 fix(pc): 2025-11-30 18:41:00 +02:00
Alexander Myasoedov a8b5876883 fix(ga): 2025-11-30 18:38:41 +02:00
Alexander Myasoedov fbe9885c0b fix(simplify workflow): 2025-11-30 18:37:23 +02:00
Alexander Myasoedov 583eec1a67 fix(gh): 2025-11-30 18:36:33 +02:00
Alexander Myasoedov f19664f95c fix(pc): 2025-11-30 18:32:58 +02:00
Alexander Myasoedov b3ae0026fb fix(warnings): 2025-11-30 18:30:55 +02:00
Alexander Myasoedov 8ddfec303f feat(poetry update): 2025-11-30 14:21:20 +02:00
Alexander Myasoedov c45778f196 Merge pull request #252 from Davda-James/feat/mcp_client_logging
logging added for mcp client operations
2025-08-21 15:00:22 +03:00