diff --git a/server/src/routes/issues.ts b/server/src/routes/issues.ts
index 5b9bb641..ab6a4232 100644
--- a/server/src/routes/issues.ts
+++ b/server/src/routes/issues.ts
@@ -671,7 +671,6 @@ export function issueRoutes(
details: {
issueId: issue.id,
status: issue.status,
- securityPrinciples: ["Complete Mediation", "Fail Securely"],
},
});
return false;
@@ -694,7 +693,6 @@ export function issueRoutes(
holdId: activePauseHold.holdId,
rootIssueId: activePauseHold.rootIssueId,
mode: activePauseHold.mode,
- securityPrinciples: ["Complete Mediation", "Fail Securely", "Secure Defaults"],
},
});
return false;
@@ -928,7 +926,6 @@ export function issueRoutes(
const parsedOffset = rawOffset !== undefined && /^\d+$/.test(rawOffset)
? Number.parseInt(rawOffset, 10)
: null;
- const offset = parsedOffset ?? 0;
if (assigneeUserFilterRaw === "me" && (!assigneeUserId || req.actor.type !== "board")) {
res.status(403).json({ error: "assigneeUserId=me requires board authentication" });
@@ -954,6 +951,7 @@ export function issueRoutes(
res.status(400).json({ error: "offset must be a non-negative integer" });
return;
}
+ const offset = parsedOffset ?? 0;
const result = await svc.list(companyId, {
status: req.query.status as string | undefined,
diff --git a/server/src/services/issues.ts b/server/src/services/issues.ts
index 741d8ce3..104d12da 100644
--- a/server/src/services/issues.ts
+++ b/server/src/services/issues.ts
@@ -942,7 +942,8 @@ async function listIssueProductivityReviewMap(
isNull(issues.hiddenAt),
notInArray(issues.status, PRODUCTIVITY_REVIEW_TERMINAL_STATUSES),
),
- );
+ )
+ .orderBy(desc(issues.createdAt), desc(issues.id));
reviewRows.push(...rows);
}
@@ -985,6 +986,7 @@ async function listIssueProductivityReviewMap(
for (const row of reviewRows) {
if (!row.sourceIssueId) continue;
+ if (map.has(row.sourceIssueId)) continue;
const detail = triggerByReviewIssueId.get(row.reviewIssueId);
map.set(row.sourceIssueId, {
reviewIssueId: row.reviewIssueId,
diff --git a/ui/src/App.tsx b/ui/src/App.tsx
index c34d8d96..ec82de9d 100644
--- a/ui/src/App.tsx
+++ b/ui/src/App.tsx
@@ -14,6 +14,7 @@ import { ProjectWorkspaceDetail } from "./pages/ProjectWorkspaceDetail";
import { Workspaces } from "./pages/Workspaces";
import { Issues } from "./pages/Issues";
import { IssueDetail } from "./pages/IssueDetail";
+import { IssueChatLongThreadPerf } from "./pages/IssueChatLongThreadPerf";
import { Routines } from "./pages/Routines";
import { RoutineDetail } from "./pages/RoutineDetail";
import { UserProfile } from "./pages/UserProfile";
@@ -50,7 +51,7 @@ import { InviteLandingPage } from "./pages/InviteLanding";
import { JoinRequestQueue } from "./pages/JoinRequestQueue";
import { NotFoundPage } from "./pages/NotFound";
import { useCompany } from "./context/CompanyContext";
-import { useDialog } from "./context/DialogContext";
+import { useDialogActions } from "./context/DialogContext";
import { loadLastInboxTab } from "./lib/inbox";
import { shouldRedirectCompanylessRouteToOnboarding } from "./lib/onboarding-route";
@@ -98,6 +99,9 @@ function boardRoutes() {