画面共有 — a grant, not a panel #21
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
v2
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wayfinder:ticket
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiko/denpa#21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What to build
Card 5d. Hermes has its own vision tools, so the client only decides whether they are open. Camera and the browser panel are already gone; screen sharing survives, reduced to a single grant row.
screen.readrelay row. Every frame she takes lands in the log with a thumbnail, so "when did she look" is answerable after the fact rather than a matter of trust.Acceptance criteria
Blocked by
Reality audit
Governing rule: build to reality, Hermes leads. Not doing something is acceptable if it does not break core functionality. Breaking the design is acceptable. Building UI that does nothing is not.
Audited against the actual wire surface:
hermes-agent 0.19.0, verified running):/health,/v1/models,/v1/runs,/v1/runs/{id},/v1/runs/{id}/events,/v1/runs/{id}/stop,/v1/runs/{id}/approvalmessage.delta,tool.started,tool.completed,run.completed,run.cancelled,run.failed/run.errored,reasoning.availablefull-text,audio,control,error,set-model-and-conf,config-switched,config-files,background-files,history-list,history-data,new-history-created,history-deleted,user-input-transcription,backend-synth-complete,force-new-message,tool_call_status,interrupt-signal,heartbeat-ack,group-updatetext-input,mic-audio-data,mic-audio-end,raw-audio-data,ai-speak-signal,interrupt-signal,fetch-history-list,fetch-and-set-history,create-new-history,delete-history,fetch-configs,switch-config,fetch-backgrounds,audio-play-start,request-init-config,heartbeatCut: images cannot reach Hermes
HermesAgent.chat()builds its prompt with_to_text_prompt(input_data), which iteratesinput_data.textsonly.input_data.imagesis never read. The Hermes path is text-only end to end.So a captured frame has nowhere to go. There is also no message type by which Hermes could request one.
The whole grant would be an indicator, a picker and a toggle wired to nothing. Cut, and the camera and browser panel are already being removed in #9 — this makes that removal total rather than partial.
Not a loss of core functionality: she is a voice companion with tools, and her own vision tools run server-side where the client has no part to play.
Reopen if the Hermes agent path grows image support.
Reopening — the blocker is real, but it was named wrong
This was cut with the reopen condition "if the Hermes agent path grows image support." Hermes already has image support:
_normalize_multimodal_contentacceptsimage_urlandinput_imagein native OpenAI vision format (gateway/platforms/api_server.py:471-547).It is just not on the endpoint the bridge uses. Precisely:
/v1/chat/completions(_handle_chat_completions,api_server.py:3747) normalizes multimodal content. Images work./v1/runs(_handle_runs,api_server.py:6084+) readsraw_input[-1].get("content","")and never normalizes.conversation_historyentries are coerced withstr(entry["content"]). Images cannot get in.So the client-side observation in the cut comment stands —
HermesAgent.chat()builds its prompt frominput_data.textsand a captured frame has nowhere to go — but the fix is not "wait for Hermes to grow vision". It is a decision about which surface the bridge talks to, and that decision is not free.Why this is not simply unblocked
The same surface split runs the other way for approvals:
/v1/runs(bridge is here)/v1/chat/completionsargstoolCallIdapproval.request+waiting_for_approval_approval_notifylives inside_handle_runs(api_server.py:6250). Migrating wholesale would trade approvals — already unblocked, already scoped at #19 — for images and args. That is not obviously a win.Actual blocked-by
One of:
/v1/runsaccepts multimodal content — an upstream change toNousResearch/hermes-agent, which is the honest version of the original reopen condition.ollvt-hermes-bridge#19.Until one lands there is still no path for a captured frame, so nothing in this issue should be built yet. Reopened because the blocker is now correctly identified and partly within our control, not because it is ready.
Consequence for #9: screen-capture code stays parked rather than being deleted. That instruction is reverted there.
Closing in favour of #31, rewritten against the ADRs.
This issue's premise changed with ADR-0001: Denpa is a Hermes gateway Platform adapter and the
api_serverHTTP surface is abandoned entirely. Patching the body would have left a trail of corrections on top of a stale audit block - the same pattern that got 承認 wrongly cut once already.Decisions now live in
docs/adr/in the go-between repo (branchdocs/hermes-platform-adrs). The replacement issue references them rather than restating them.