fix: keep owner tools available in WebChat#101271
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 7, 2026, 2:56 AM ET / 06:56 UTC. Summary PR surface: Source +12, Tests +166. Total +178 across 7 files. Reproducibility: yes. Source inspection shows current main always resolves sender policy and Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land the shared capability-profile fix only after maintainers accept that wildcard sender policy is for unidentified or external senders, while keeping external channels and non-owner WebChat restricted by the new tests. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main always resolves sender policy and Is this the best way to solve the issue? Yes, with maintainer acceptance. The shared capability-profile layer is the narrow maintainable fix because core tool construction, plugin harness policy, and AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against e024eacf176c. Label changesLabel justifications:
Evidence reviewedPR surface: Source +12, Tests +166. Total +178 across 7 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
|
Land-ready maintainer review complete. Canonical-fix verdict: this PR is the best-fit fix. The owner exception remains at the resolved sender-policy boundary, applies only to authenticated internal WebChat owner turns, and does not bypass global, agent, group, sandbox, subagent, or inherited tool policy. External-channel owners and non-owner/untrusted WebChat contexts remain restricted. Bounded preparation also propagated Prepared head: Evidence:
The old-head lint and compact-shard failures were stale-base failures and both pass on the prepared exact head. No rebase or force-push was used. Proof gap: no screenshot was captured because the authorization result is a runtime tool-schema boundary rather than visible UI state; the GUI message flow and direct owner/non-owner tool assertions cover the behavior. |
|
Merged via squash.
|
* fix: keep owner tools available in WebChat * fix: align WebChat owner policy checks
* fix: keep owner tools available in WebChat * fix: align WebChat owner policy checks
* fix: keep owner tools available in WebChat * fix: align WebChat owner policy checks
What Problem This Solves
Fixes an issue where authenticated owners using Control UI/WebChat could receive only restricted web/media tools when an installation configured a restrictive default sender policy.
Why This Change Was Made
Trusted owner turns on the internal WebChat channel now bypass the wildcard sender policy that is intended for unidentified external senders. External channels continue applying that wildcard policy, and plugin harnesses use the same owner-aware capability decision.
User Impact
Owners can use their configured shell, filesystem, and other tools from WebChat without granting those tools to unidentified or external senders.
Evidence
node scripts/test-projects.mjs src/agents/conversation-capability-profile.test.ts src/agents/harness/selection.test.ts— 68 tests passed.node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-webchat-owner-final.tsbuildinfo— passed.node scripts/build-all.mjs— passed.upstream/mainreported no actionable findings.exec,read,write, andprocess, and successfully executed a shell command. Before the fix, the same WebChat session compiled 6 restricted tools.