Skip to content

Archive REVIEW_FU-P12-T1-3_multi_client_widgets_v2 report#87

Merged
SoundBlaster merged 15 commits into
mainfrom
claude/implement-flow-commands-hAdSp
Feb 19, 2026
Merged

Archive REVIEW_FU-P12-T1-3_multi_client_widgets_v2 report#87
SoundBlaster merged 15 commits into
mainfrom
claude/implement-flow-commands-hAdSp

Conversation

@SoundBlaster
Copy link
Copy Markdown
Owner

@SoundBlaster SoundBlaster commented Feb 19, 2026

FU-P13-T12 — Enforce local Unix-socket security boundary for broker clients

∙	Implemented _get_peer_uid() (macOS getpeereid + Linux SO_PEERCRED)
∙	Socket chmod(0o600) on startup
∙	Peer UID verification in _handle_client() with -32003 JSON-RPC error on mismatch
∙	5 new tests, 559 total passing
∙	Archived: SPECS/ARCHIVE/FU-P13-T12_.../

FU-P13-T13 — Make broker startup transactional when transport bind/start fails

∙	Restructured start() with try/except rollback around all post-_launch_upstream() steps
∙	Added _rollback_startup() method (cancel read task → terminate upstream → clean files → state=STOPPED)
∙	BrokerState.READY now only set after all startup steps succeed
∙	6 new tests, 559 total passing
∙	Archived: SPECS/ARCHIVE/FU-P13-T13_.../

Both have full SELECT → PLAN → EXECUTE → ARCHIVE → REVIEW → FOLLOW-UP → ARCHIVE-REVIEW cycles committed and pushed.

Move post-fix review for FU-P12-T1-3 to _Historical/ and register
it in ARCHIVE/INDEX.md.
…r clients

- Add _get_peer_uid() using getpeereid() (macOS) / SO_PEERCRED (Linux)
- Set socket file to 0600 permissions in UnixSocketServer.start()
- Reject connections from different-UID peers with JSON-RPC -32003
- Store verified peer UID on ClientSession.peer_uid
- Add 5 new tests: same-UID accept, different-UID reject, UID stored,
  OSError fail-closed, socket 0600 permissions
- Update docs/broker-mode.md with Security boundary section
…t bind/start fails

- Restructure BrokerDaemon.start() with try/except around all post-launch steps
- Add _rollback_startup() to cancel read task, terminate upstream, clean files
- Move state=READY assignment to after all startup steps succeed
- Add TestStartupRollback class (6 tests) covering all rollback scenarios
- Add troubleshooting doc for broker bind error and automatic rollback behaviour

https://claude.ai/code/session_01GMFnmxsDeKCTWf9Zk7S9Hg
Verdict: Approve
Low: _stopped_event/_stop_event not set after rollback (non-reachable paths)
Low: upstream stdin not closed in _rollback_startup (harmless in context)
Nit: rollback log message lacks exception context

https://claude.ai/code/session_01GMFnmxsDeKCTWf9Zk7S9Hg
…rtup event consistency

Low-priority follow-up: set _stopped_event and _stop_event in _rollback_startup()
to make STOPPED state contract complete for future callers.

https://claude.ai/code/session_01GMFnmxsDeKCTWf9Zk7S9Hg
- Add broker bind-error section to DocC Troubleshooting.md (mirrors docs/troubleshooting.md)
- Reformat tests/unit/test_broker_daemon.py (ruff format)

https://claude.ai/code/session_01GMFnmxsDeKCTWf9Zk7S9Hg
@SoundBlaster SoundBlaster merged commit fc0a2b0 into main Feb 19, 2026
9 checks passed
@SoundBlaster SoundBlaster deleted the claude/implement-flow-commands-hAdSp branch February 19, 2026 19:39
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.

2 participants