VOK-166 Hosted Linear connection management is blocked without a selected node#159
Open
vkforeman[bot] wants to merge 2 commits into
Open
VOK-166 Hosted Linear connection management is blocked without a selected node#159vkforeman[bot] wants to merge 2 commits into
vkforeman[bot] wants to merge 2 commits into
Conversation
Author
|
PR #159 has a failing server test in CI: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Request
Prompt context:
<title>Hosted Linear connection management is blocked without a selected node</title> ## SummaryCommit
0ea027fab7b6647e366c978839a8a386c01d9cdc(Gate desktop Linear pages on selected Foreman node, merged by PR#158ase3bfc337a0afc2b00c40ec338dc12a9e6da164a0on May 1, 2026) fixes the raw error path fromVOK-160, but it also turns the entire Hosted Linear Connections page into a no-op wheneverselectedNodeIdis null.That is broader than the API contract: the desktop still talks to the hosted proxy for connection management, so users with a valid proxy session but no selected node can no longer inspect existing hosted workspaces, disconnect stale ones, or start a new hosted Linear connection.
Concrete repo evidence
Commit in the scan window:
0ea027fab7b6647e366c978839a8a386c01d9cdcGate desktop Linear pages on selected Foreman nodeHosted Linear page now exits before loading any hosted connection state when there is no selected node:
foreman-desktop/src/features/projects/components/LinearPageView.tsx:70-10082-86return early on!nextSelectedNodeId, which clearsstatus,selectedConnectionId, andcatalogbefore any hosted proxy request runs.The same commit codifies that behavior in the desktop test suite:
foreman-desktop/src/features/projects/components/LinearPageView.test.tsxrenders a guided prerequisite state and skips hosted Linear requests without a selected nodeasserts thatgetLinearConnectionsStatusandgetLinearConnectionCatalogare not called.But the connection-management API remains proxy-owned, not node-owned:
foreman-desktop/src/lib/api.ts:2778-2824startLinearConnection,disconnectLinearConnection, andgetLinearConnectionsStatusall usetransport: 'proxy'.Targeted verification on the fetched
origin/mainworktree confirms the new behavior is active and tested:That run passed, including the new
skips hosted Linear requests without a selected nodecase.User-visible impact
When the desktop has a proxy session but no selected node:
Connect Linearstays disabled even though the connect flow is proxy-ownedThis is a regression from the pre-
0ea027fbehavior, where the page could still manage hosted connections independently of node selection.Smallest safe fix
Keep the guided no-node messaging from
VOK-160, but narrow the gate:getLinearConnectionsStatus()and allowstartLinearConnection()/disconnectLinearConnection()with only proxy authselectedNodeIdDuplicate check
I checked existing Foreman Linear issues before filing. The closest matches were:
VOK-160Linear desktop pages fail when no Foreman node is selected— fixed the raw error path, but did not cover this follow-up regressionVOK-138Linear page can no longer add a second hosted workspace— older, resolved bug about the connect button after one existing workspaceThis issue appears distinct from both.
Bug
Linear issue VOK-166: Hosted Linear connection management is blocked without a selected node
Issue URL: https://linear.app/vokality/issue/VOK-166/hosted-linear-connection-management-is-blocked-without-a-selected-node
Team: Vokality
State: Todo
Labels: Bug
Summary
Commit
0ea027fab7b6647e366c978839a8a386c01d9cdc(Gate desktop Linear pages on selected Foreman node, merged by PR#158ase3bfc337a0afc2b00c40ec338dc12a9e6da164a0on May 1, 2026) fixes the raw error path fromVOK-160, but it also turns the entire Hosted Linear Connections page into a no-op wheneverselectedNodeIdis null.That is broader than the API contract: the desktop still talks to the hosted proxy for connection management, so users with a valid proxy session but no selected node can no longer inspect existing hosted workspaces, disconnect stale ones, or start a new hosted Linear connection.
Concrete repo evidence
Commit in the scan window:
0ea027fab7b6647e366c978839a8a386c01d9cdcGate desktop Linear pages on selected Foreman nodeHosted Linear page now exits before loading any hosted connection state when there is no selected node:
foreman-desktop/src/features/projects/components/LinearPageView.tsx:70-10082-86return early on!nextSelectedNodeId, which clearsstatus,selectedConnectionId, andcatalogbefore any hosted proxy request runs.The same commit codifies that behavior in the desktop test suite:
foreman-desktop/src/features/projects/components/LinearPageView.test.tsxrenders a guided prerequisite state and skips hosted Linear requests without a selected nodeasserts thatgetLinearConnectionsStatusandgetLinearConnectionCatalogare not called.But the connection-management API remains proxy-owned, not node-owned:
foreman-desktop/src/lib/api.ts:2778-2824startLinearConnection,disconnectLinearConnection, andgetLinearConnectionsStatusall usetransport: 'proxy'.Targeted verification on the fetched
origin/mainworktree confirms the new behavior is active and tested:That run passed, including the new
skips hosted Linear requests without a selected nodecase.User-visible impact
When the desktop has a proxy session but no selected node:
Connect Linearstays disabled even though the connect flow is proxy-ownedThis is a regression from the pre-
0ea027fbehavior, where the page could still manage hosted connections independently of node selection.Smallest safe fix
Keep the guided no-node messaging from
VOK-160, but narrow the gate:getLinearConnectionsStatus()and allowstartLinearConnection()/disconnectLinearConnection()with only proxy authselectedNodeIdDuplicate check
I checked existing Foreman Linear issues before filing. The closest matches were:
VOK-160Linear desktop pages fail when no Foreman node is selected— fixed the raw error path, but did not cover this follow-up regressionVOK-138Linear page can no longer add a second hosted workspace— older, resolved bug about the connect button after one existing workspaceThis issue appears distinct from both.
Session comment:
This thread is for an agent session with foreman.
Summary
Fixed the cancel-during-validation race and added deterministic server regression coverage
Checks
foreman-server-format: passed (exit status 0)foreman-server-checks: passed (exit status 0)foreman-server-tests: passed (exit status 0)Foreman Metadata
019deaff-3075-79d1-b3bd-d2900fe808b5019deb01-77e0-7023-b07f-a666ce20a8f1019deb0d-b07e-7c60-a5f7-d43419b3e1e52foreman/019deaff-3075-79d1-b3bd-d2900fe808b5