Repository navigation
BOT-2440: bl apps get says who can open an app - #40
Merged
Merged
Conversation
nathan-thillairajah
added a commit
that referenced
this pull request
Oct 29, 2026
Review fixes for #40: - Treat a blank BL_APPS_MANAGEMENT_BASE_URL as unset, prefer the flag, and name the env var when its value is invalid. - Build the handoff next_action from whether the audience is verified and whether a Share & manage link exists, so it never offers a link it lacks. - Without a portal origin, point owners to Hosted Apps in the BuilderLab portal. - Compose answers the community grant read with 409 community_grant_conflict when the app has no lifecycle. Add a deploy-first next_action to that 409 and use the same wording for the 200-with-no-lifecycle guard. - Update the README handoff section. Co-authored-by: Helly R <755566517b9f4a67070220593bc7ef951f4b6f39175135818360f233c6a5e152@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nathan-thillairajah
marked this pull request as ready for review
October 29, 2026 21:00
nathan-thillairajah
marked this pull request as draft
October 29, 2026 21:03
…e dead-end errors a next step `bl apps handoff` now reads the app and its access policy even when no portal origin is configured, omits the Share & manage link (management_url is null), and says how to pass --management-base-url. An invalid origin still errors, and the portal is still never inferred from a workstation or app hostname. The proxy refusal for `bl apps community` and the "app has no active sharing lifecycle" failure now carry a next_action pointing the owner to Share & manage, with the portal link when BL_APPS_MANAGEMENT_BASE_URL is set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The portal opens an app's dialog only when the URL has both app and workspace, so an app-only link lands on the plain list. Without a workspace, point at /hosted-apps and name the app to choose. The missing-lifecycle error uses the workspace_id from the sharing response when it carries one; the proxy refusal makes no request, so it never has one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The community grant read does not return a workspace_id, so the missing-lifecycle error could never build a deep link. Both community errors now use the workspace-less form and name the app to choose. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review fixes for #40: - Treat a blank BL_APPS_MANAGEMENT_BASE_URL as unset, prefer the flag, and name the env var when its value is invalid. - Build the handoff next_action from whether the audience is verified and whether a Share & manage link exists, so it never offers a link it lacks. - Without a portal origin, point owners to Hosted Apps in the BuilderLab portal. - Compose answers the community grant read with 409 community_grant_conflict when the app has no lifecycle. Add a deploy-first next_action to that 409 and use the same wording for the 200-with-no-lifecycle guard. - Update the README handoff section. Co-authored-by: Helly R <755566517b9f4a67070220593bc7ef951f4b6f39175135818360f233c6a5e152@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Prototype only; no tests yet. Verified against bb-public staging. Co-authored-by: Helly R <755566517b9f4a67070220593bc7ef951f4b6f39175135818360f233c6a5e152@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… errors `bl apps get` now reads the access policy too and prints one readable line about who can open the app, beside its link and the Share & manage link. `handoff` becomes a hidden alias for the same output, and `get --json` keeps its inspection fields with the handoff fields added. `visibility` and `community grant|revoke` print who can open the app afterwards unless `--json` is passed. Community names come from Kgoose when a local login is available, otherwise IDs are shown. Known Compose error codes get a CLI-written sentence and, when the server sends none, a next step. The server's error.message is still never printed, as in #19. Help text now says workspace and private, hides `access set` and its individual viewers, and fills in every sharing argument. Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nathan-thillairajah
force-pushed
the
bot-2440-handoff-fallback
branch
from
October 29, 2026 21:25
7c7c46f to
8967973
Compare
- community list errors use CLI-written text per status and code, never the Kgoose message or body, and a 200 that isn't a JSON object with a communities list is an error instead of an empty account - community_grant_conflict and community_grant_denied explain themselves - a bad BL_APPS_MANAGEMENT_BASE_URL drops only the link; a bad --management-base-url still fails before any request - the who-can-open count needs an owner to leave out, and the access-read and tier-resolution texts say what actually happened - tests for community list end to end, the session header, redaction and the no-community lookup short-circuit Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nathan-thillairajah
marked this pull request as ready for review
October 29, 2026 21:48
kalvinnchau
reviewed
Oct 29, 2026
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Code-only review: one actionable remediation issue below. No runtime validation was performed.
kalvinnchau
previously approved these changes
Oct 29, 2026
… is missing When the portal is configured but the app comes back without workspace_id, the handoff now says the workspace is missing and points the owner to Share & manage by app name, instead of asking for --management-base-url or BL_APPS_MANAGEMENT_BASE_URL again. Co-authored-by: Irving B <6c4c50b3b6dee89feaca78ea87eb5c8fde651d2d7b39d6da8c9354ce7a34e313@remote-agent-pilot.communities.buzz.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kalvinnchau
approved these changes
Oct 29, 2026
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.
Background
On bb-public, an app owner should be able to answer "who can open this?" from
bl appsas easily as from Share & manage. Todaygetprints raw JSON with no audience.visibilityandcommunityecho raw responses.handofffails when no portal origin is set, and errors show only a status and a code.What changes
bl apps getprints a short summary. It shows the app link, one "Who can open it" line, the Share & manage link and the status.handoffis a hidden alias forgetand works without a portal. In that casemanagement_urlandworkspace_idcan be null.visibilityandcommunity grant|revokeprint who can open the app afterwards. These commands now print text by default.--jsonoutput is unchanged, andget --jsonalso includes the handoff fields.bl apps community listlists your Buzz communities through Kgoose.--management-base-urlis still an error. A badBL_APPS_MANAGEMENT_BASE_URLonly drops the link and says why.Testing
just testandjust lintpass. Each behavior change has a test that fails without it. I also ran it against bb-public staging.Rollout and risk
This only changes the CLI. Scripts that parse this output without
--jsonwill now get text.🤖 Generated with Claude Code