Add a minimal local IFC broker - #7593
Draft
jmecom wants to merge 1 commit into
Draft
Conversation
Signed-off-by: Jordan Mecom <jm@squareup.com>
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.
Adds
buzz broker serve,read, andreply: an opt-in Unix-socket broker for one public or private stream channel. The operator fixes the relay, channel, community, and requester at startup. Keyless clients can read recent messages or post plain text; they cannot select another destination or request arbitrary signatures.The broker owns the key and one
IfcSession, verifies relay-signed metadata and membership, validates incoming message signatures and scope, and sends the exact event bytes authorized by IFC. An observed policy change permanently blocks further publication. Requests, responses, and connection time are bounded; publications are never automatically retried.This is a prototype, not same-user OS isolation. There is no hardened helper or protected Keychain custody, and existing Desktop/ACP launch paths are unchanged. Membership checking and relay publication are separate requests, so the remaining race is also explicit. Setup and limits describe the fresh-agent-state requirement.
Stacked on #7497 (
jm/buzz-ifc-session-api), after #7349. No changes to the earlier PRs.Checked: 487 CLI unit tests, 31 IFC unit tests, 7 IFC doctests, formatting, strict CLI Clippy, and the file-size gate. The 14 broker tests cover socket/HTTP boundaries with a signed mock relay. A separate real-binary smoke test passed on macOS: broker startup, keyless clients with empty environments, read/reply, and Ctrl-C cleanup. No deployed relay or user account was used.