fix(lint): clear S-rule violations in backend/ (security bucket) #111
No reviewers
Labels
No labels
agentic-osint
audit
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:preflight
blocked:verify-failed
bug
chore
deferred
enhancement
feature-request
in-progress
lint-baseline
lint-cleanup
needs-decompose
needs-triage
performance
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/osint-hub!111
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/100-ruff-security"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #100 ruff cleanup — the bucket-security workstream (kanban t_5eecc109). Branch fix/100-ruff-security off origin/main (
bd0fb0f).Result
cd backend && ruff check . --select S --statistics→ 0 errors (was 128).cd backend && ruff check app/ --config ../pyproject.toml --select S→ 0 errors.Real fixes (no suppression)
assert case_id is not Nonein consolidator.py (guards above already return);assert call_hash is not None/assert result_dict is not None→ explicitif x is None: raise RuntimeError(...)in orchestrator.py; isinstance assert →raise LLMParsingErrorin llm_entity_extraction.py (feeds existing legacy-format fallback).shell=Falseon subprocess.run in video_frame_extractor.py (x2), video_metadata.py, services/llm/tools/browser.py (list-arg calls, behavior-neutral).pass/continuebecomelogger.debug(..., exc_info=True)(+continue).Suppressions (each with one-line justification, listed per card rule)
# ruff: noqa: S110/S110, S112on 29 no-logger best-effort files (27 modules + tests/ci_quality_gate.py + tests/integration/test_integration_resilience.py): try/except/pass is the documented project pattern — pyproject globally ignores S110/S112 common pattern; modules are best-effort OSINT fetchers with no logger; adding loggers to 40+ modules is a behavior change outside this bucket.# ruff: noqa: S311on tests/performance/locustfile.py (load-test tool, pseudo-random payloads by design; pyproject ignores S311 false positives for rate limiting).Notes for verifier (t_7755ce59)
b81dc67= 24; after this bucket ~54 — every new suppression carries a justification mirroring the project pyproject ignore rationale; none are blanket.