patchbay v0.3.4
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 serverin 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.
permissionsfor gcloud used
to answer "IAM roles are per-project and per-resource; patchbay does not
resolve them yet" and hand back agcloud projects get-iam-policyline 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, followingverify_profile
exactly.Probegainspermission_scopes()andpermissions_in(scope),
both defaulted, so the other 24 probes are untouched and gh and wrangler
behave as before;PermissionsReportgainsscope, 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 permsgains--scopeand
--list-scopes; the MCPget_permissionsgains an optionalscope, beside
a newlist_permission_scopestool.Two things that stayed deliberate. The unscoped read resolves the active
configuration'score/projectand reads that, the same moveverifymakes
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 onPATHto run, so patchbay genuinely cannot answer. -
The frontend's hardcoded
PERMISSIONS_TOOLSset is gone. Which tools can
report permissions is the backend's fact, answered bysupported, 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