Skip to content

patchbay v0.3.4

Choose a tag to compare

@github-actions github-actions released this 17 Aug 07:44
· 5 commits to main since this release

Added

  • MCP servers can be added, edited, copied and removed from the panel. The
    matrix could already show you that Cursor was missing the server Claude Code
    has, and then leave you to go and fix it somewhere else. A row now opens a
    drawer: the clients that have that server as chips, an editable form for the
    one you picked — transport, command and arguments or url, env vars, headers —
    a "copy here" beside every client that is missing it, and a remove. + add server in the head opens the same drawer empty, with a checkbox per client
    to say where it should land.

    The form always shows exactly one client's copy and says whose, because that
    is the truth: six clients keep six files and Cursor's definition of a server
    can differ from Codex's, so a save writes one file rather than flattening the
    difference. Every write goes through the same core path the CLI uses, keeping
    the rolling backup, the parse–modify–serialize round trip and the atomic
    rename; the report says which file was written, where the backup is, and
    repeats core's caveats, the restart hint included. Saving is an explicit
    button — nothing autosaves, and closing a dirty drawer asks first. A Claude
    Code entry in a project scope is shown and explained rather than offered:
    patchbay does not write that scope, and now says so where you would try.

    The value boundary the matrix was built on is unchanged. mcp_list, which
    fills the table and refreshes after every write, still reports env var and
    header names and a count of arguments. Values are read by one new command,
    for one named server of one named client, because you opened its drawer —
    and a copy still reports which values travelled between files by name.

  • gcloud permissions are read, not described. permissions for gcloud used
    to answer "IAM roles are per-project and per-resource; patchbay does not
    resolve them yet" and hand back a gcloud projects get-iam-policy line to
    paste — a bare command where an action would have worked, which is the one
    thing CONTRIBUTING says the panel does not do. It now runs the read itself
    and reports the account's roles on the project.

    That needed a shape the report did not have, because IAM grants live on the
    resource: a Google account has no roles of its own, only roles on a
    project
    . So permissions became optionally scoped, following verify_profile
    exactly. Probe gains permission_scopes() and permissions_in(scope),
    both defaulted, so the other 24 probes are untouched and gh and wrangler
    behave as before; PermissionsReport gains scope, omitted from JSON when
    there is none. The panel shows a searchable project picker (type to filter,
    arrows and enter to choose, the configured project preselected) that appears
    only once the backend says the tool has scopes — listing them execs gcloud,
    so nothing runs until you press the button. pb perms gains --scope and
    --list-scopes; the MCP get_permissions gains an optional scope, beside
    a new list_permission_scopes tool.

    Two things that stayed deliberate. The unscoped read resolves the active
    configuration's core/project and reads that, the same move verify makes
    with the active profile, rather than answering a question it could work out
    for itself. And the copyable line survives in exactly one place — when there
    is no gcloud on PATH to run, so patchbay genuinely cannot answer.

  • The frontend's hardcoded PERMISSIONS_TOOLS set is gone. Which tools can
    report permissions is the backend's fact, answered by supported, not a list
    in the UI that goes stale the moment a probe learns a new trick.

Fixed

  • The main pane no longer scrolls sideways. 0.3.3 stopped the window
    sliding as one sheet but left the board scrolling in both axes, so reaching
    the last client column of the MCP matrix dragged the view's title, its notes
    and its "Config paths" list off to the left with it — everything you needed
    as a reference left the screen at the moment you needed it. The board now
    scrolls down only; the tables scroll inside their own frame, which is what
    that frame was always for. Errors wrap instead of running off the edge, since
    a clipped error is worse than a wide one.

    The MCP table also stopped asking for width it never used: its floor was
    760px against the 686px of pane a 900px window gives, so the matrix scrolled
    even when it would have fitted. Six client columns of one glyph each carried
    10px of side padding around nothing; at 7px, and with the floor at 640px —
    the same as the vault's, and above the ~613px the headers themselves need —
    a typical matrix comes to 666px and fits the smallest window with room over.

What's Changed

  • [fix] main pane never scrolls sideways; wide tables scroll in their own container by @YJack0000 in #12
  • [feature] MCP servers: add, edit, copy and remove from the panel by @YJack0000 in #14
  • [feature] gcloud permissions: pick a project, read its IAM roles in-panel by @YJack0000 in #15

Full Changelog: v0.3.3...v0.3.4