Alexander Myasoedov
71c1f20a51
fix: unquote self-referential annotation for pyupgrade
...
pyupgrade --py314-plus rewrites the quoted return annotation added in #345 ,
failing pre-commit. The project requires Python 3.14, where annotations are
evaluated lazily (PEP 649), so the unquoted form imports fine.
2026-09-22 17:26:45 +03:00
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 Myasoedov and Claude 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