← Back to PRs

#19962: feat(audit): config-based model traffic audit with redaction support

by lingzhua77 open 2026-02-18 10:40 View on GitHub →
docs channel: telegram gateway cli agents size: XL
## Summary This PR adds: 1. A fully configuration-based model traffic audit system with sensitive data redaction capabilities 2. New Telegram draft stream configuration options for immediate message acknowledgment ## Part 1: Model Traffic Audit ### Features - **Config-based activation**: `audit.modelTraffic.enabled` in `openclaw.json` - **Sensitive data redaction**: Keys/values masked as `head****tail` - **Granular controls**: Toggle `requestHeaders`, `requestBody`, `responseBody`, `responseHeaders` - **Dual mode support**: Config overrides env var ### Files Added/Modified - `src/gateway/audit-model-traffic.ts` - `src/config/types.audit.ts` - `src/agents/model-egress-audit.ts` - `src/infra/fetch-egress-audit.ts` - `docs/model-traffic-audit.md` ## Part 2: Telegram Draft Stream Improvements ### New Config Options - `channels.telegram.draftMinInitialChars`: Minimum chars before sending initial draft (default: 30). Set to 0 for immediate send. - `channels.telegram.initialDraftText`: Initial text to show immediately when processing starts ### Use Case Shows "收到了 我想一想🤔……" immediately when a message is received, then updates with actual AI response. Improves perceived responsiveness. ### Files Modified - `src/config/types.telegram.ts` - `src/config/zod-schema.providers-core.ts` - `src/telegram/bot-message-dispatch.ts` - `src/telegram/draft-stream.ts` ### Usage ```json { "channels": { "telegram": { "draftMinInitialChars": 0, "initialDraftText": "收到了 我想一想🤔……" } } } ``` ## Testing - [x] Audit logs work correctly - [x] Redaction masks sensitive fields - [x] Telegram config validation passes - [x] Hot reload applies config changes - [x] Tested in group chat - initial text appears immediately --- <!-- greptile_comment -->

Most Similar PRs