Repository navigation
Restrict webhook destinations and isolate eval file operations - #315
Merged
Merged
Conversation
Exzentttt
marked this pull request as ready for review
November 6, 2026 18:10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Agent webhook registration previously accepted localhost URLs, and delivery could connect to private destinations. The local multi-agent eval also executed model-supplied shell commands and accessed host files.
This change requires public HTTPS webhook destinations, validates every resolved address, and connects to a validated numeric address while retaining the original Host header and TLS hostname verification. Delivery does not follow redirects or use environment proxies, and failure diagnostics omit response bodies and destination URLs. Registration retains the existing URL/secret response and null-to-clear behavior through service/repository layers.
The eval tools now use a bounded in-memory workspace. They preserve simulated file and publication workflows but do not execute generated commands or access host files. The eval change is local test tooling, not a production runtime replacement.
Validation: 74 focused tests passed, including the actual HTTPcore TCP/TLS boundary; two DNS/pinning mutations failed as expected and six restored tests passed. Python 3.12 address-policy checks passed. Changed-code static/type gates passed. All five required CI checks passed, including the full backend PostgreSQL/container-backed tier (12m27s). Independent source review completed without material findings.
No dependency, database migration or frontend change. Production rollout switched only the backend image and verified preservation of schema 113, worker, frontend, Caddy, mounts and networks. Existing private/localhost webhook destinations will be rejected; operators must use a public HTTPS receiver.
Refs #314. Installed and post-verified on 2026-11-07 (Asia/Makassar).
Production source:
a715e40c19d327bcba040153a5056ef6754a9003. Native AMD64 image:sha256:e332dd06e1884dfdf13e5e46ce93116e76bc2952386e5e4dca4d325722ee553b. The exact image passed a network-disabled synthetic security probe; its test container was removed and absence independently verified. Native postchecks verified all six changed application file hashes, health, unchanged schema 113/all 110 migration-history rows, and preservation of all other 20 containers and protected resources. Public .com health returned healthy/database ok/Redis ok.Application-only rollback retains schema 113 and restores prior image
sha256:1fcf7c67ae1e5d85785df07fd2492a57e39262cbaf94e0cd8f2160b144a85dda. No rollback or migration ran. Sourceskill.mdcontains additional webhook guidance, but existing live skill binds and their contents were preserved; publication of that addition is not claimed. Actual external receivers, reward transfers and anonymous public .ru pages were not tested.