fix(bridge): send room approval request_id - #121
Open
danclaw93 wants to merge 1 commit into
Open
Conversation
danclaw93
force-pushed
the
fix/room-approval-request-id
branch
from
September 4, 2026 06:00
3df3e42 to
b18b60f
Compare
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.
What and why
Room-scoped approvals require the exact
request_id, butrespond_to_approval()sends that identifier asapprovalId. Current Hermes therefore rejects spoken approval responses with HTTP 400approval_request_required, leaving the pending action blocked.Send the approval event identifier under the Hermes run API's
request_idfield and update the surrounding contract documentation and regression expectation.Fixes #120
How to test
The regression test was changed first and failed on
mainbecause the emitted payload still containedapprovalId:With this fix:
env -u TALK_PREFER_CODEX_OAUTH uv run --extra dev pytest -q tests/test_approval_bridge.py::test_respond_to_approval_carries_the_request_id_when_given env -u TALK_PREFER_CODEX_OAUTH uv run --extra dev pytest -q uv run --extra dev ruff check .An integration check using the real Talk request builder and current Hermes approval handler also returned HTTP 200 with
resolved: 1for the room-scoped request.Platforms
Live receipt
Not required: this changes the local Hermes run-approval API payload, not a provider lane, credential-resolution path, or delegation implementation. The Talk-to-Hermes handler integration was exercised locally with an inert pending approval and temporary
HERMES_HOME.Checklist
pytest -qandruff check .pass locally on the pinned ruffCHANGELOG.md[Unreleased]entry added