fix: add DB-level agent safety triggers for 52 governed tables #75
Merged
wasabi opened 2 days ago

Summary

Adds PostgreSQL-level enforcement for agent safety rules, closing the gap where direct SQL could bypass the Python safety layer.

Changes

  • New trigger function assert_agent_safety(): reads app.agent_id from transaction context via SET LOCAL, blocks status escalation to verified/published when agent context is present
  • Applied to 52 governed tables with status columns (excluding ai_summary and agent_task which already have CHECK constraints)
  • set_agent_context(conn, agent_id) helper in services/agents/safety.py for Python callers

Coverage

Tables include: impact_claim, carbon_credit, stakeholder_feedback, data_stream_post, crisp_risk_assessment, threat, delphi_recommendation, metric_proposal, stakeholder_outcome, credit_retirement, credit_class, and 41 more.

Tests

17 tests (8 unit + 9 DB integration) covering trigger creation, agent blocking, and human operation allowance.

Commits were merged into target branch
1/1
Submitter wasabi
Target main
Source fix/agent-safety-db-triggers
Jobs
Merge Strategy
Create Merge Commit
Watchers (1)
Reference
pull request KI-75
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover