Settings → Organization → API Keys and Connected apps build each row's caption as two inline-flex clauses so a narrow row "never strands a lone ·" (the comment in both tabs). The second clause starts with its ·, so when the row wraps the second line begins with · — the stranded separator moved from the end of line one to the start of line two.
Seen on staging at 1440 px in Connected apps (a disconnected row: Connected by you · All sites / · Last used 21m ago · Disconnected 24/09/2026). Screenshot: Pulse/docs/data/24-09-2026-pulse-mcp-build/m3-staging/ui/d6-connected-apps.png. API Keys uses the identical construction (WorkspaceApiKeysTab.tsx, the caption block).
A user-visible change, so it gets an options round first (house rule); fix both tabs together — Connected apps is ruled to twin API Keys.
Tracking
Plane: PULSE-50 — https://plane-sks.ciphera.net/ciphera/projects/7f1d6ca7-7bcb-4af3-ba59-b5051602efa1/issues/0f48404c-cc84-4393-ba47-b1ecdf71027d
Settings → Organization → API Keys and Connected apps build each row's caption as two inline-flex clauses so a narrow row "never strands a lone ·" (the comment in both tabs). The second clause starts with its
·, so when the row wraps the second line begins with·— the stranded separator moved from the end of line one to the start of line two.Seen on staging at 1440 px in Connected apps (a disconnected row:
Connected by you · All sites/· Last used 21m ago · Disconnected 24/09/2026). Screenshot:Pulse/docs/data/24-09-2026-pulse-mcp-build/m3-staging/ui/d6-connected-apps.png. API Keys uses the identical construction (WorkspaceApiKeysTab.tsx, the caption block).A user-visible change, so it gets an options round first (house rule); fix both tabs together — Connected apps is ruled to twin API Keys.
Tracking
Plane: PULSE-50 — https://plane-sks.ciphera.net/ciphera/projects/7f1d6ca7-7bcb-4af3-ba59-b5051602efa1/issues/0f48404c-cc84-4393-ba47-b1ecdf71027d