Skip to content

Wire SecurityFilter (LogFilter) as middleware into pipeline agents #26

@admin-init

Description

@admin-init

Problem

security/log_filter.py implements LogFilter with 7 regex patterns for PII/secret redaction. It is fully tested (20 tests) but not wired as middleware into any agent or pipeline.

Per plan.html Section 9 (Supporting Systems) and AGENTS.md, the SecurityFilter should intercept tool call args/results to redact secrets.

Required Changes

Create a SecurityFilterMiddleware class that wraps LogFilter as a deepagents AgentMiddleware:

class SecurityFilterMiddleware(AgentMiddleware):
    def wrap_tool_call(self, request, handler):
        # Filter tool call args for secrets
        # Filter tool call results for secrets
        response = handler(request)
        return filtered_response

Wire it into orchestrator.py alongside MonitorMiddleware, OutputCleanerMiddleware, and CostTrackingMiddleware.

Files to Create/Change

  • New: src/uni_dev/middleware/security_filter.py — SecurityFilterMiddleware wrapping LogFilter
  • Change: src/uni_dev/middleware/__init__.py — export SecurityFilterMiddleware
  • Change: src/uni_dev/orchestrator.py — add to middleware list
  • New: tests/test_security_filter_middleware.py — tests for the middleware wrapper

Acceptance Criteria

  • SecurityFilterMiddleware class exists wrapping LogFilter
  • Wired into orchestrator middleware list
  • Tests verify PII redaction in tool call args and results
  • pytest passes
  • uvx ruff check src/ passes

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions