Fix: build error + ACTS consensus + ChainAnalyzer + rate limit + timer + venv path\n\n Build error fix:\n - requirements.txt: Remove atheris (requires Clang+libFuzzer, unavailable in HF Spaces)\n - fuzzing_engine.py: Graceful atheris fallback, detects availability at runtime,\n falls back to Hypothesis automatically\n - Dockerfile: Renamed builder stage to base, runtime inherits directly, eliminates\n broken reference to nonexistent 'builder' stage name in COPY --from\n\n ACTS Consensus bug (hermes_orchestrator.py):\n - _run_acts_consensus now calls all 3 models individually and concurrently,\n passing all 3 raw verdicts to compute_acts() so disagreement penalty works\n - Previously merged result collapsed to 1-item list (agreement_factor always 1.0)\n\n ChainAnalyzerTool in Hermes registry (hermes_orchestrator.py):\n - Added ChainAnalyzerTool with name=chain_analysis registered in _TOOL_REGISTRY\n - Hermes can now autonomously synthesize exploit chains without human UI click\n - _HERMES_SYSTEM prompt updated to document the new tool\n\n LLM rate limit backoff (hermes_orchestrator.py):\n - _hermes_llm_call retries on 429 with delays 15s/30s/60s\n - Single 429 no longer aborts the entire research session\n\n Timer consolidation (app.py):\n - get_combined_refresh() returns all 8 live-update outputs at once\n - 3 concurrent gr.Timer.tick() SSE streams collapsed to single tick\n - Reduces HF Space connection pressure under multiple simultaneous users\n\n Venv path fix (app.py):\n - execute_approved_harness uses VENV_DIR constant, not hardcoded string\n - Creates venv on-demand if missing so standalone Security Research tab works 59dc700
Rhodawk Agent commited on