Repository navigation
CONTRACT: feat(ui-server): prepare durable turn egress records - #2399
Draft
schlessera wants to merge 2 commits into
Draft
schlessera wants to merge 2 commits into
schlessera wants to merge 2 commits into
Conversation
This branch has not been deployed
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.
Refs #1665
What changed
Adds the typed
egress_connectiongovernance event and an internal per-turn proxy recorder. Real completed/refused HTTP connections persist host, port, method, visible path, bytes, duration and outcome in SQLite; recorder failure cancels the owning turn. Outward destinations wait for the existing approval bridge, and voice has no approval surface. The ordinary turn runner and both backend defaults remain unchanged.Why this shape
This is the independent server recording prerequisite from #1665. The combined ordinary activation draft remains unpublished because actual managed-storage server qualification, supported custom-origin/native authentication compatibility, Pi integration and the complete first-party/socket gate remain unfinished. It adds no public extension seam or new credential authority.
Proof
Current head
15609967cb233ca76812440f398ecc3ea0b1a049, source treee6c647d5e62a23a2a61ae72d485c936f48f28488, original base775eb17aab740fa759c2182f306c38fc17acbcbe. Current live base additionally contains the unrelated SDK worker-placement test correction from #2389; original receipts retain their source attribution.TURN_EGRESS_ZERO_CAP_ADMISSION_VALID. The correction admits the zero ceiling and refuses real HTTP/inference requests before upstream contact or credential resolution, retaining zero-byte connection/denial records. Negative, fractional, nonfinite and unsafe integer ceilings remain refused.TURN_EGRESS_FAILED_RECORD_ABORTS; restoration passes. The correction preserves that production helper and cancellation behavior./tmpstorage failures (child exit 143, preflight exit 1). This is incomplete, with no full passing preflight claim./tmproot still hit the host disk floor.Checklist
Anything left open
#1665 was manually closed again after the retained owner reopen, without a closing commit or comment. This PR does not treat that closure as implementation delivery. Coordinated ownership reconciliation is pending; all original ordinary activation and compatibility/security/runtime/measurement criteria remain undelivered by this partial contribution. #1666/#1667 remain blocked on that output; #1673 remains downstream. Local Pi preparation stays dormant/unpublished. #2364 preserves persistent private-publication history incompatibility. #2284 remains stopped and unresolved; this contribution neither investigates nor changes host-writer lifetime admission.
The separate local actual server/WebSocket attempt stopped before container/loop creation: the ambient Docker image inspection hung, and subsequent explicit original-socket controls with fresh configuration and bounded deadlines also timed out. Those are failed prerequisites, not native proof; no retry or scope reduction supplies a passing claim. Earlier full native PR #2361 proof retains its own exact source attribution.