Skip to content

feat: agent monitoring controls#1979

Merged
bokelley merged 7 commits intomainfrom
bokelley/optional-agent-fields
Apr 8, 2026
Merged

feat: agent monitoring controls#1979
bokelley merged 7 commits intomainfrom
bokelley/optional-agent-fields

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented Apr 7, 2026

Summary

  • Adds proper User-Agent headers (e.g. AAO-HealthCheck/1.0, AAO-Discovery/1.0, AAO-ComplianceCheck/1.0) to all automated outbound requests to agent endpoints
  • Creates an outbound request log (agent_outbound_requests table) so agent owners can see what AAO is hitting their endpoints with
  • Adds owner controls to pause monitoring or adjust check frequency (6h-168h) via dashboard and API
  • Adds a 30-day retention cleanup job for the request log

Prompted by member feedback (Jeff Mahoney / Equativ) about unexpected high-volume automated traffic to their agent endpoint.

Follow-up needed: PropertyCrawler and comply() in @adcp/client don't accept userAgent config yet — separate PR against adcp-client.

Test plan

  • TypeScript compiles cleanly
  • All 563 unit tests pass, no regressions
  • Verify migration applies cleanly on staging DB
  • Test pause/resume via PUT /api/registry/agents/{url}/monitoring/pause
  • Test interval change via PUT /api/registry/agents/{url}/monitoring/interval
  • Verify dashboard renders monitoring controls and request log panel
  • Confirm User-Agent appears in agent server access logs

🤖 Generated with Claude Code

bokelley and others added 6 commits April 8, 2026 08:01
…nterval)

Addresses member feedback about unexpected automated traffic to agent
endpoints. Adds proper User-Agent identification, an outbound request
log visible to agent owners, and controls to pause or adjust check
frequency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lient@4.22.0

Now that @adcp/client supports userAgent in PropertyCrawlerConfig and
TestOptions (adcp-client#427), pass AAO-Discovery and AAO-ComplianceCheck
User-Agent strings through the remaining two outbound paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename "Pause monitoring" to "Pause automated checks"
- Disable and dim interval dropdown when paused
- Show inline warning when paused: "Compliance status will not update"
- Use design tokens for select padding/border-radius
- Add User-Agent column to request log table (shows short name, full UA on hover)
- Increase default request log from 20 to 50 rows

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The pause toggle was only gating the compliance heartbeat
(getAgentsDueForCheck). The property crawler and capability probe
ran against all agents regardless. Now both filter out paused agents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Reject non-integer interval_hours (e.g. 6.7, Infinity)
- Log warning when getPausedAgentUrls query fails
- escapeHtml on data.total in request log panel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Migration 376 was taken on main by admin_accounts_perf_indexes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bokelley bokelley force-pushed the bokelley/optional-agent-fields branch from e6df627 to 98646ef Compare April 8, 2026 12:02
Previous lock file was missing platform-specific transitive deps
(e.g. @emnapi/core for sharp on Linux) that npm ci requires on CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit e4b4181 into main Apr 8, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant