Fix execution workspace company routing

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
dotta 2026-03-28 11:53:31 -05:00
parent cbeefbfa5a
commit 84e35b801c
3 changed files with 25 additions and 0 deletions

View file

@ -343,6 +343,7 @@ export function App() {
<Route path="projects/:projectId/workspaces" element={<UnprefixedBoardRedirect />} />
<Route path="projects/:projectId/workspaces/:workspaceId" element={<UnprefixedBoardRedirect />} />
<Route path="projects/:projectId/configuration" element={<UnprefixedBoardRedirect />} />
<Route path="execution-workspaces/:workspaceId" element={<UnprefixedBoardRedirect />} />
<Route path="tests/ux/runs" element={<UnprefixedBoardRedirect />} />
<Route path=":companyPrefix" element={<Layout />}>
{boardRoutes()}

View file

@ -0,0 +1,23 @@
import { describe, expect, it } from "vitest";
import {
applyCompanyPrefix,
extractCompanyPrefixFromPath,
isBoardPathWithoutPrefix,
toCompanyRelativePath,
} from "./company-routes";
describe("company routes", () => {
it("treats execution workspace paths as board routes that need a company prefix", () => {
expect(isBoardPathWithoutPrefix("/execution-workspaces/workspace-123")).toBe(true);
expect(extractCompanyPrefixFromPath("/execution-workspaces/workspace-123")).toBeNull();
expect(applyCompanyPrefix("/execution-workspaces/workspace-123", "PAP")).toBe(
"/PAP/execution-workspaces/workspace-123",
);
});
it("normalizes prefixed execution workspace paths back to company-relative paths", () => {
expect(toCompanyRelativePath("/PAP/execution-workspaces/workspace-123")).toBe(
"/execution-workspaces/workspace-123",
);
});
});

View file

@ -6,6 +6,7 @@ const BOARD_ROUTE_ROOTS = new Set([
"org",
"agents",
"projects",
"execution-workspaces",
"issues",
"routines",
"goals",