Skip to content

bl apps: fix outputs that misled agents on Blox workstations - #47

Merged
nathan-thillairajah merged 3 commits into
mainfrom
irving/apps-eval-round3-fixes
Nov 5, 2026
Merged

nathan-thillairajah merged 3 commits into
mainfrom
irving/apps-eval-round3-fixes

Conversation

@nathan-thillairajah

@nathan-thillairajah nathan-thillairajah commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Two agents on bb-public Blox workstations used bl apps for a non-technical user, and several outputs sent them the wrong way. The community help still said community commands don't work from a workstation. community list needed a local login the workstation doesn't have. A plain list hid the app quota. get said "everyone in your workspace" for a one-member workspace.

What changes:

  • The community help drops the stale sentence.
  • community list goes through the Blox proxy on workstations that set BL_APPS_COMMUNITY_SHARING=enabled, the same opt-in BOT-2527: share with communities through the Blox proxy where it's enabled #41 added for grant and revoke. Everywhere else it works as before.
  • Plain bl apps list and --scope manageable also read the owned listing for quota. If that read fails or takes more than 5 seconds, the list prints without quota.
  • bl apps get --json adds audience.summary and audience.member_count. Apps Platform doesn't report workspace size yet, so the count is null.
  • When community sharing is refused on a workstation that hasn't opted in, the next step points only to Share & manage.

On opted-in workstations, bl apps get also shows community names instead of IDs, because its lookup uses the same proxy. That lookup can add up to 5 seconds.

The Share & manage link keeps workspace, because the portal ignores the link unless it has both app and workspace.

🤖 Generated with Claude Code

- Drop the stale "community commands don't work from a Blox workstation
  yet" sentence from the community help.
- Route `bl apps community list` through the Blox proxy on workstations
  that opt in to community sharing, so an agent can resolve a community
  by name without a local login.
- Include the owner quota in a plain `bl apps list`.
- Add `audience.member_count` (null, because Apps Platform doesn't report
  workspace size) and `audience.summary` to `bl apps get --json`.

Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nathan-thillairajah
nathan-thillairajah requested a review from a team as a code owner November 5, 2026 22:25
nathan-thillairajah and others added 2 commits November 5, 2026 17:41
A plain `bl apps list` reads the owned listing for its quota with the
same 3 minute timeout as every other control plane call, so a hung read
stalled the whole list. It now uses the 5 second limit that community
name lookups already use, and drops quota quietly on timeout.

Tests now also cover a hung owned read, an owned read without quota,
community names resolved through the proxy on `get`, a Kgoose origin
that isn't the workstation proxy, and the exact error when the opt-in is
off. The README quota paragraph is rewrapped and mentions
`--scope manageable`.

Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…is refused

The community-sharing refusal only fires on a Blox workstation, where an
agent can't run `bl auth login` or choose another `--base-url`. Drop
that advice so the next step is just Share & manage.

Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@kalvinnchau kalvinnchau left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Code-only review: no actionable findings at c12b781. Reviewed the complete diff, proxy-origin/authentication guards, command dispatch and config resolution, supplementary request timeout/error handling, audience serialization, and process-test coverage. Quota enrichment preserves the original listing and fails open only for optional metadata; community lookup requires the exact opt-in and existing workstation origin check without sending a local session. The added tests exercise production command paths, including refusal and timeout cases. No tests, builds or live Blox flows were executed for this code-only review.

@nathan-thillairajah
nathan-thillairajah merged commit f068409 into main Nov 5, 2026
4 checks passed
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