Skip to content

Consumer build exposes Block-internal skill discovery flow #168

Description

@potseeslc

Summary

Consumer Berd can expose the Skill Discovery / Discover surface, which invokes sq agents skills list-remote --include-team --json. That command targets Block's internal BuilderBot/KGoose marketplace and redirects unauthenticated consumer users to Block Cloudflare Zero Trust / Okta auth.

For consumer users without Block credentials, this looks like Berd is asking them to sign in to an internal Block website.

Observed behavior

  • The Skills Discover UI initially showed: Skill discovery needs the sq-agents CLI.
  • After installing a compatible sq CLI shim, Berd ran sq agents skills list-remote --include-team --json.
  • The command failed with:
`sq agents skills list-remote --include-team --json` failed: {"error":{"code":"cli_error","exit_code":1,"message":"deserialize GET /v1/marketplace/skills?limit=5000 response: expected value at line 1 column 1"}}
  • Running the CLI auth flow opened:
https://kgoose.sqprod.co/cash-app/goose/v1/auth/login?type=cli&returnTo=http://127.0.0.1:<port>/callback
  • The browser displayed Block Cloudflare Zero Trust / Okta FastPass login.

Local investigation

  • Installed app: Berd 0.6.2, consumer install.
  • /Applications/Berd.app/Contents/Resources/runtime-config.json has empty featureToggles: {}.
  • Local WebKit localStorage contained goose:experimental-features with:
{"version":2,"experiments":{"skill-discovery":{"enabled":true},"avatar-collection-page":{"enabled":true}}}
  • Manually setting skill-discovery.enabled to false hides the problematic surface after restart.

Expected behavior

Consumer builds should not surface Block-internal marketplace discovery or route users to Block Zero Trust auth. If the feature remains in consumer builds, it should be gated behind a distribution/runtime flag that defaults off and cannot be enabled accidentally through stale/local experimental preferences.

Notes

The source definition already documents skill-discovery as opt-in because it requires the optional sq-agents CLI and remote catalog requests. The issue appears to be that a consumer user can still have this experiment enabled locally, resulting in an internal-auth dead end.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions