Repository navigation
Approvals and questions: say "for you", never the shell's internal client id - #280
Merged
Merged
Conversation
…ient id
The "Ask <app>" panel opens the app's conversation as the client instance
"shell-ask" (app_chat::INSTANCE), and that id reached the person: the
question card's "News's agent asks (shell-ask)", the sheet's "Asked by
Calendar's agent for shell-ask" and its toast "Calendar's agent for
shell-ask asks" (instrument run, frames 22 and 35). Request::asked_by and
approvals::sheet::caller_label printed any client as given.
A turn from one of the shell's own surfaces where the person talks to an
app's agent is the person's, so those labels now say so, beside the
existing "(for the assistant)" of the system agent's lane: "News's agent
asks (for you)", "Asked by Calendar's agent for you", "Calendar's agent
for you asks". approvals::sheet::persons_surface knows the two surfaces:
the panel and a card's in-card chat (glance_chat::INSTANCE, "card-chat",
the same leak). Any other client keeps the name it gave ("Rinx's agent for
weather"). The audit keeps the raw caller.
Tests: approvals (the caller label, the sheet line and its notice) and
questions (asked_by on each surface).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote
force-pushed
the
fix/no-client-id-in-prompts
branch
from
October 2, 2026 18:26
75a2bf3 to
20a62cb
Compare
Contributor
Author
|
Local CI passed on 20a62cb ( GitHub would run for this PR: desktop.yml, phone.yml, apps.yml. Merged on this local pass (macOS runner queue); GitHub CI runs on the merge commit on main.
Skipped (these did NOT pass; (!) marks a skip that blocks tools/ci-local-merge.sh):
Notes:
|
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.
A headless instrument run of the desktop shell (main f52620c, frames 22, 34 and 35) found the "Ask " panel's internal client id shown to the person:
Cause. The panel opens the app's conversation as the client instance
"shell-ask"(app_chat::INSTANCE). That id reaches the question asRequest::clientand the approval asCaller::OwnAgent { client }.questions::Request::asked_byandapprovals::sheet::caller_labelprinted any client as given. A card's in-card chat has the same leak with"card-chat"(glance_chat::INSTANCE).Fix. A turn from one of the shell's own surfaces where the person talks to an app's agent is the person's. The labels now say so, in the same form as the system agent's lane, which already reads "(for the assistant)":
approvals::sheet::persons_surfaceknows the two surfaces: the panel and a card's chat. Any other client keeps the name it gave, for example "Rinx's agent for weather". The audit keeps the raw caller (own_agent/shell-ask), as it does for every caller.Tests (Linux build host, from
phone/; this branch alone):cargo test --locked --features mobile-apps -p octosense-shell approvals: 59 passed, including the newthe_persons_own_surface_reads_for_you_never_its_instance_id(the caller label, the sheet line and its notice).… questions: 10 passed, including the newwho_asks_names_the_person_never_the_shells_instance_id(the panel, a card's chat, the system agent's lane, a Rinx mini app).… app_chat: 9 passed.… system_chat: 65 passed.phone.ymlruns it (cargo test --locked --features mobile-apps -p octosense-shell, withOCTOS_SHELL_TEST_KERNEL): 777 passed.Instrument (the same harness, on the Linux build host; before = main, after = this branch):
Overlap. This branch is on main 4f73ab3, after #272, #273 and #274 merged; the rebase had no conflicts. The open #255 edits
approvals/sheet.rsin other hunks, and #230 does not touch these files; both merge with this branch cleanly. The four fixes from the same run are independent, and each pair merges without conflicts: this one, #279, #281 and #282.🤖 Generated with Claude Code