feat: tickets I follow, and more news for followers
"Que sigo" on the home page lists the open tickets I follow, whoever works on them; `watching` filters my issues (REST, GraphQL, MCP) and a project's search (none without a session). Followers now also hear when a ticket's priority or due date changes, and when it enters or leaves a sprint. Smaller edits (title, labels…) still do not notify. Docs (with the REPLIED row the replies change missed), Word and PDF updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,8 +15,12 @@ export class SearchIssuesQueryHandler
|
||||
|
||||
async execute(query: SearchIssuesQuery): Promise<Page<IssueReadModel>> {
|
||||
await this.access.assertCanView(query.filter.projectId, query.viewerId);
|
||||
const { watching, ...filter } = query.filter;
|
||||
// Someone anonymous follows nothing.
|
||||
if (watching && !query.viewerId) return { items: [], total: 0 };
|
||||
return this.findIssues.search({
|
||||
...query.filter,
|
||||
...filter,
|
||||
watcherId: watching ? (query.viewerId ?? undefined) : undefined,
|
||||
limit: Math.min(query.filter.limit, 200),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export class SearchMyIssuesQueryHandler
|
||||
return this.findIssues.searchAcross({
|
||||
projectIds: projects.map((project) => project.id),
|
||||
assigneeId: query.filter.assignedToMe ? query.viewerId : undefined,
|
||||
watcherId: query.filter.watching ? query.viewerId : undefined,
|
||||
statuses: query.filter.statuses,
|
||||
categories: query.filter.categories,
|
||||
search: query.filter.search?.trim().slice(0, 200) || undefined,
|
||||
|
||||
@@ -8,6 +8,8 @@ import { Page } from '../ports/find-issues.repository';
|
||||
export interface MyIssuesFilter {
|
||||
/** true: assigned to the viewer. false: any ticket of the viewer's projects. */
|
||||
assignedToMe: boolean;
|
||||
/** Only the tickets the viewer follows. */
|
||||
watching?: boolean;
|
||||
statuses?: string[];
|
||||
/** e.g. TODO + IN_PROGRESS + QA = still open, whatever the project calls them. */
|
||||
categories?: StatusCategory[];
|
||||
|
||||
Reference in New Issue
Block a user