Skip to content

feat(mcp-store): rename team access switch to allow members to connect their own account - #90038

Merged
trunk-io[bot] merged 4 commits into
masterfrom
chris/mcp-store-member-connect-title
Aug 27, 2026
Merged

feat(mcp-store): rename team access switch to allow members to connect their own account#90038
trunk-io[bot] merged 4 commits into
masterfrom
chris/mcp-store-member-connect-title

Conversation

@cvolzer3

@cvolzer3 cvolzer3 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Problem

Admins in the MCP store (web and desktop) see a switch called "Available to team members" with a two-line description under it. The name does not say what turning it on lets people do. The description repeats the same idea in a second sentence.

Changes

  • Admins now see the switch as "Allow members to connect their own account", with no description under it.
  • Server detail pages (web Access panel, desktop Access section) use the server's name.
  • Add-server forms use the name typed in the form, and "server" while the name field is empty.
  • Mechanical: the desktop ToggleRow helper loses its unused sub prop, and the desktop test asserts the new text.

Before, web server detail:

Available to team members
Members can connect their own GitHub account.

After:

Allow members to connect their own GitHub account

No screenshots. The change is text and the removal of one line of text; the layout and the switch are unchanged.

How did you test this code?

  • GatewayAddServer.test.tsx (desktop, vitest) passes with the updated text assertion.
  • TypeScript checks for @posthog/frontend and the desktop ui package report no errors in the changed files.
  • Not done: a manual pass in the running web app or desktop app.

👉 Stay up-to-date with PostHog coding conventions for a smoother review.

Automatic notifications

  • Publish to changelog?

Docs update

None.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Claude Code (Fable 5) made the edits on the assignee's direction. Skills invoked: /writing-pr-descriptions, /reviewing-before-pr, /code-review.

Local review: the Greptile CLI is not installed in this environment, so the pre-PR review was the harness fallback (/code-review low), which reported no findings. The bot review still applies; no no-greptile label.

One decision: the desktop ToggleRow had a single caller, so its sub prop was removed rather than left optional and unused.

@cvolzer3 cvolzer3 self-assigned this Aug 27, 2026
@trunk-io

trunk-io Bot commented Aug 27, 2026

Copy link
Copy Markdown

😎 Merged successfully - details.

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

React Doctor found 4 issues in 2 files · 4 warnings.

4 warnings

packages/ui/src/features/mcp-gateway/components/parts/GatewayAddServer.tsx

packages/ui/src/features/mcp-gateway/components/parts/GatewayServerDetail.tsx

Reviewed by React Doctor for commit 6103e39.

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

Trunk lane — non-backend lane

This PR is assigned to the non-backend lane. It does not run backend Python tests and may merge in parallel with PRs in other lanes.

⚠️ Bundle size — 🔺 +22.6 KiB (+0.0%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 68.04 MiB · 🔺 +22.6 KiB (+0.0%)

File Size Δ vs base
render-query/src/render-query/render-query.js 21.74 MiB 🔺 +12.9 KiB (+0.1%)
exporter/src/exporter/scenes/ExporterNotebookScene.js 3.40 MiB 🔺 +2.3 KiB (+0.1%)
toolbar/src/toolbar/debug/chunk-EventDebugMenu.js 272.7 KiB 🔺 +2.1 KiB (+0.8%)
exporter/src/queries/schema.js 1.16 MiB 🔺 +2.1 KiB (+0.2%)
posthog-app/src/queries/schema.js 1.16 MiB 🔺 +2.1 KiB (+0.2%)

Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report

Eager graph — within budget

How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.37 MiB · 22 files no change ███░░░░░░░ 30.3% of 4.51 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.81 MiB · 3,245 files 🔺 +8.4 KiB (+0.1%) █████████░ 90.7% of 9.71 MiB

🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx

Largest files eagerly shipped from src/index.tsx
Size File
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
24.6 KiB ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js
6.3 KiB ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js
4.5 KiB ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js
3.9 KiB ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
1.4 KiB ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1.3 KiB src/RootErrorBoundary.tsx
912 B ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
789 B src/scenes/ChunkLoadErrorBoundary.tsx
762 B src/index.tsx
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
306.9 KiB ../node_modules/.pnpm/posthog-js@1.420.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js
267.7 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
260.9 KiB ../node_modules/.pnpm/posthog-js@1.420.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.js
252.5 KiB src/taxonomy/core-filter-definitions-by-group.json
154.2 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
104.7 KiB src/lib/api.ts
95.2 KiB ../packages/quill/packages/quill/dist/index.js
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
90.6 KiB ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js

Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479

Toolbar bundle — eager 2.25 MiB within budget

What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.

Metric Size Δ vs base Budget
Eager (shipped)
entry + static imports
2.25 MiB · 18 files 🔺 +94 B (+0.0%) ████░░░░░░ 39.4% of 5.72 MiB
Deferred (lazy) 2.11 MiB · 45 files 🔺 +2.1 KiB (+0.1%) n/a — loads on demand
Loader dist/toolbar.js 1.1 KiB no change █░░░░░░░░░ 5.8% of 19.5 KiB
Largest eagerly-shipped chunks
Size File
748.8 KiB dist/toolbar/toolbar-app-XYGAYFW6.css
585.4 KiB dist/toolbar/chunk-chunk-WAAZXMI4.js
484.7 KiB dist/toolbar/chunk-chunk-QMGLBVDO.js
133.8 KiB dist/toolbar/chunk-chunk-WIGPXHXA.js
131.8 KiB dist/toolbar/chunk-chunk-FDH2IBXT.js
71.3 KiB dist/toolbar/toolbar-app-IO2JX2X2.js
69.0 KiB dist/toolbar/chunk-chunk-TSAL54PB.js
35.6 KiB dist/toolbar/chunk-chunk-ENVYWGUI.js
20.9 KiB dist/toolbar/chunk-chunk-HEUIHINI.js
6.8 KiB dist/toolbar/chunk-chunk-DV7IWQNF.js

Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile

Dist folder size — 🔺 +356.3 KiB (+0.0%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 1449.72 MiB · 🔺 +356.3 KiB (+0.0%)

@hosthog

hosthog Bot commented Aug 27, 2026

Copy link
Copy Markdown

HostHog preview — posthog-desktop-web

The previews for this PR have been torn down and no longer serve.

@trunk-io

trunk-io Bot commented Aug 27, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@cvolzer3
cvolzer3 force-pushed the chris/mcp-store-member-connect-title branch from 5002dd7 to f179826 Compare August 27, 2026 12:21
@cvolzer3
cvolzer3 marked this pull request as ready for review August 27, 2026 15:59
@github-actions
github-actions Bot temporarily deployed to preview-pr-90038 August 27, 2026 15:59 Destroyed
@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ✅ ready

▶ Open the preview

🔑 Login test@posthog.com / 12345678 (demo data)
🧩 Running this PR's backend and frontend, on the PostHog :master base
🔗 Link stable across rebuilds — a re-push swaps the box underneath, the URL stays
🔒 Access tailnet only (PostHog VPN)
🛠️ Admin inspect & debug state in hogland
💤 Idle sleeps after ~30 min idle (snapshot to S3, zero node cost) and wakes on your next visit in ~30s, behind a brief "waking up" screen

commit 6103e39 · box box-84f8132f5a0c · ready in 714s (push → usable) · build log · rebuilds on every push, torn down on close

@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested review from a team August 27, 2026 15:59
@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor
Prompt To Fix All With AI
### Issue 1
products/desktop/packages/ui/src/features/mcp-gateway/components/parts/GatewayAddServer.tsx:244
**Raw names distort labels**

When an admin enters a whitespace-only name or surrounding whitespace, the new label interpolates the raw value instead of the trimmed value used by validation and submission. This produces malformed spacing, bypasses the `server` fallback for whitespace-only input, and can display a name different from the one eventually saved; the web add-server form has the same issue.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "feat(mcp-store): rename team access swit..." | Re-trigger Greptile

@cvolzer3 cvolzer3 added hogbox-preview Spin up a per-PR PostHog preview on a hogland hogbox and removed hogbox-preview Spin up a per-PR PostHog preview on a hogland hogbox labels Aug 27, 2026
@cvolzer3 cvolzer3 added the stamphog Request AI approval (no full review) label Aug 27, 2026
stamphog[bot]
stamphog Bot previously approved these changes Aug 27, 2026

@stamphog stamphog Bot 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.

Pure UI copy change (renaming a toggle label, dropping its subtext) with no touch to auth, billing, data models, or CI — outside risky territory, so no independent assurance is required. The one unresolved reviewer comment flags a cosmetic edge case (untrimmed name in the label for whitespace-only input), not a functional or safety issue.

  • Author wrote 46% of the modified lines and has 8 merged PRs in these paths (familiarity MODERATE).
  • 👍 on the PR from greptile-apps[bot].
  • Unresolved Greptile comment: whitespace-only/untrimmed server name is interpolated raw into the new label text on both desktop and web add-server forms, producing malformed spacing in that edge case — worth a quick follow-up fix but not blocking.
Gate mechanics and policy version
Gate Result
prerequisites all clear
deny-list no deny categories matched
size 41L, 4F substantive, 45L/5F incl. docs/generated/snapshots — within ceiling
tier T1-agent / T1b-small (45L, 5F, single-area, feat)
stamphog 2.0.0b4 .stamphog/policy.yml @ f179826 · reviewed head f179826

@stamphog
stamphog Bot dismissed their stale review August 27, 2026 18:43

A new stamphog review started for this PR — the fresh verdict replaces this approval.

@github-actions
github-actions Bot requested a deployment to preview-pr-90038 August 27, 2026 18:43 In progress
…ts/parts/GatewayAddServer.tsx

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
@github-actions
github-actions Bot requested a deployment to preview-pr-90038 August 27, 2026 18:50 In progress
@cvolzer3 cvolzer3 added stamphog Request AI approval (no full review) and removed stamphog Request AI approval (no full review) labels Aug 27, 2026
stamphog[bot]
stamphog Bot previously approved these changes Aug 27, 2026

@stamphog stamphog Bot 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.

Pure UI copy change (toggle label/description text) across web and desktop MCP store views, consistently applied and covered by the updated desktop test; no auth/data/API logic changed despite the access-control wording. Not risky territory, so no independent assurance is required.

  • Author wrote 47% of the modified lines and has 8 merged PRs in these paths (familiarity MODERATE).
  • 👍 on the PR from greptile-apps[bot].
  • PR description claims the switch is renamed to 'Allow members to connect their own account' with the description line removed, but the actual diff instead renames it to 'Enabled for your organization' and keeps (and lengthens) the description text — the description appears stale relative to the shipped diff; author should update it.
  • Greptile flagged that the new labels interpolate the raw (untrimmed) server name instead of the trimmed value used for validation/submission, which can produce a malformed label for whitespace-padded input — minor cosmetic issue, not a functional blocker.
Gate mechanics and policy version
Gate Result
prerequisites all clear
deny-list no deny categories matched
size 41L, 4F substantive, 45L/5F incl. docs/generated/snapshots — within ceiling
tier T1-agent / T1b-small (45L, 5F, single-area, feat)
stamphog 2.0.0b4 .stamphog/policy.yml @ f769941 · reviewed head f769941

Drop the two blank lines inside the ToggleRow JSX that the last suggestion commit introduced. `biome ci .` in products/desktop was failing on the formatting diff.

Generated-By: PostHog Desktop
Task-Id: c7aa7d64-4a0b-498d-ac6d-0f513f4a9f86
@stamphog
stamphog Bot dismissed their stale review August 27, 2026 19:00

A new stamphog review started for this PR — the fresh verdict replaces this approval.

<div>
<Text as="div" className="font-medium text-sm">
Available to team members
Enabled for your organization

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The title "Enabled for your organization" contradicts the PR description which states it should be "Allow members to connect their own account". The PR description explicitly gives an example showing "Allow members to connect their own GitHub account" as the expected output.

Suggested change
Enabled for your organization
Allow members to connect their own {server.name} account

Spotted by Graphite

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

@stamphog stamphog Bot 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.

Purely cosmetic UI copy changes (switch labels/descriptions/aria-label) across desktop and web MCP store surfaces; the underlying access-control boolean and enforcement logic are untouched, tests were updated to match, and no reviewer flagged an outstanding concern on the current head.

  • Author wrote 47% of the modified lines and has 8 merged PRs in these paths (familiarity MODERATE).
  • 👍 on the PR from greptile-apps[bot].
  • The PR description claims the labels became name-interpolated ("Allow members to connect their own account", add-server forms using the typed name) but the actual diff uses generic non-interpolated text like "Enabled for your organization" in the add-server forms — description appears stale relative to the final diff, though the resulting code is low-risk.
  • Greptile's inline comment about raw (untrimmed) name interpolation in GatewayAddServer.tsx doesn't correspond to any interpolation present in this diff, suggesting it was reviewing an earlier revision; no current-diff evidence the flagged bug still applies.
Gate mechanics and policy version
Gate Result
prerequisites all clear
deny-list no deny categories matched
size 39L, 4F substantive, 43L/5F incl. docs/generated/snapshots — within ceiling
tier T1-agent / T1b-small (43L, 5F, single-area, feat)
stamphog 2.0.0b4 .stamphog/policy.yml @ 6103e39 · reviewed head 6103e39

@cvolzer3

Copy link
Copy Markdown
Contributor Author

/trunk merge

@trunk-io
trunk-io Bot merged commit c4f5c11 into master Aug 27, 2026
215 checks passed
@trunk-io
trunk-io Bot deleted the chris/mcp-store-member-connect-title branch August 27, 2026 20:04
@deployment-status-posthog

deployment-status-posthog Bot commented Aug 27, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-08-27 20:48 UTC Run
prod-us ✅ Deployed 2026-08-27 21:26 UTC Run
prod-eu ⏳ Pending

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stamphog Request AI approval (no full review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant