Share watchdog timeout assessments for the MCP foundation #1598

Closed
sean wants to merge 1 commit from feat/mcp-timeout-watches into trunk
Owner

Summary

This is the timeout foundation only. It does not implement or enable the MCP endpoint.

  • Extract the existing policy selection into StallAssessment.evaluate/2; the watchdog calls this shared function.
  • Add a read-only description of the policy mode, selection reason, clock, limits, sample statistics, and threshold assessment.
  • Preserve all existing policy functions, exclusions, headroom, and recovery behavior.
  • Add Bash/jq fixture checks and document the remaining MCP work.

Validation

  • Red: the new assessment fixture failed before the module existed.
  • Green: 13 assessment fixtures pass.
  • All 24 existing watchdog tests pass.
  • BINJOVI_TEST_PG_PORT=65432 make check passes, including 2,258 existing tests, repository contracts, the dependency audit, formatting, and compilation.
  • The extracted policy functions match their original contents, ignoring formatting.

MCP dependency blocker

The ExMCP 1.3.0 dependency probe selected Cowlib 2.20.0 through mandatory Plug.Cowboy. The audit failed on EEF-CVE-2026-43966, EEF-CVE-2026-43969, and EEF-CVE-2026-43971. The probe was removed: mix.lock is unchanged and no audit exceptions were added.

The MCP transport, OAuth service, sessions, tools, command receipts, and watches remain pending a dependency decision. A possible solution is a pinned ExMCP fork that makes the unused Cowboy transport optional. This PR does not introduce that fork or change production configuration.

## Summary This is the timeout foundation only. It does not implement or enable the MCP endpoint. - Extract the existing policy selection into StallAssessment.evaluate/2; the watchdog calls this shared function. - Add a read-only description of the policy mode, selection reason, clock, limits, sample statistics, and threshold assessment. - Preserve all existing policy functions, exclusions, headroom, and recovery behavior. - Add Bash/jq fixture checks and document the remaining MCP work. ## Validation - Red: the new assessment fixture failed before the module existed. - Green: 13 assessment fixtures pass. - All 24 existing watchdog tests pass. - BINJOVI_TEST_PG_PORT=65432 make check passes, including 2,258 existing tests, repository contracts, the dependency audit, formatting, and compilation. - The extracted policy functions match their original contents, ignoring formatting. ## MCP dependency blocker The ExMCP 1.3.0 dependency probe selected Cowlib 2.20.0 through mandatory Plug.Cowboy. The audit failed on EEF-CVE-2026-43966, EEF-CVE-2026-43969, and EEF-CVE-2026-43971. The probe was removed: mix.lock is unchanged and no audit exceptions were added. The MCP transport, OAuth service, sessions, tools, command receipts, and watches remain pending a dependency decision. A possible solution is a pinned ExMCP fork that makes the unused Cowboy transport optional. This PR does not introduce that fork or change production configuration.
refactor: share watchdog timeout assessments for MCP
Some checks failed
binjovi/ci Binjovi failed the frozen plan
1a72029030
sean closed this pull request 2026-09-12 14:27:22 +00:00
Some checks failed
binjovi/ci Binjovi failed the frozen plan
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/binjovi!1598
No description provided.