feat(agents): sort recent issues by most recent activity including comments

Update addComment to touch issue updatedAt so comment activity is
reflected in recency sorting. Sort assigned issues on agent detail
page by updatedAt desc so the most recently active issues appear first.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dotta
2026-03-02 16:55:37 -06:00
parent cabd16bc70
commit ae5c85adb9
2 changed files with 13 additions and 4 deletions

View File

@@ -788,7 +788,7 @@ export function issueService(db: Db) {
if (!issue) throw notFound("Issue not found");
return db
const [comment] = await db
.insert(issueComments)
.values({
companyId: issue.companyId,
@@ -797,8 +797,15 @@ export function issueService(db: Db) {
authorUserId: actor.userId ?? null,
body,
})
.returning()
.then((rows) => rows[0]);
.returning();
// Update issue's updatedAt so comment activity is reflected in recency sorting
await db
.update(issues)
.set({ updatedAt: new Date() })
.where(eq(issues.id, issueId));
return comment;
},
createAttachment: async (input: {

View File

@@ -289,7 +289,9 @@ export function AgentDetail() {
enabled: !!resolvedCompanyId,
});
const assignedIssues = (allIssues ?? []).filter((i) => i.assigneeAgentId === agent?.id);
const assignedIssues = (allIssues ?? [])
.filter((i) => i.assigneeAgentId === agent?.id)
.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
const reportsToAgent = (allAgents ?? []).find((a) => a.id === agent?.reportsTo);
const directReports = (allAgents ?? []).filter((a) => a.reportsTo === agent?.id && a.status !== "terminated");
const mobileLiveRun = useMemo(