From e2cdec71893da91766ca3e97761e61876b28b0e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Platte?= Date: Thu, 8 Jan 2026 12:53:47 +0100 Subject: [PATCH] fix: duplicate content on same issue ID in Kanban board --- package.json | 4 ++-- src/kanban-view.ts | 24 +++++++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 40d7ceb..917d3a4 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "license": "MIT", "devDependencies": { "@types/node": "^25.0.3", - "@typescript-eslint/eslint-plugin": "^8.51.0", - "@typescript-eslint/parser": "^8.51.0", + "@typescript-eslint/eslint-plugin": "^8.52.0", + "@typescript-eslint/parser": "^8.52.0", "builtin-modules": "^5.0.0", "esbuild": "^0.27.2", "eslint": "^9.39.2", diff --git a/src/kanban-view.ts b/src/kanban-view.ts index bc5c7be..8b61417 100644 --- a/src/kanban-view.ts +++ b/src/kanban-view.ts @@ -394,14 +394,24 @@ export class GitHubKanbanView extends ItemView { const normalizedItemUrl = this.normalizeUrl(itemUrl); let fullProjectData: any = null; - const fmNum = this.parseNumber(frontmatter.number); - if (fmNum !== null) { - fullProjectData = cachedItemsForProject.find((ci: any) => Number(ci.number) === fmNum) || null; - if (fullProjectData) matchedNumbers.add(fmNum); - } - if (!fullProjectData && normalizedItemUrl) { + + // Try URL matching first (most reliable for cross-repository projects) + if (normalizedItemUrl) { fullProjectData = cachedItemsForProject.find((ci: any) => ci.normalizedUrl === normalizedItemUrl) || null; - if (fullProjectData && fullProjectData.normalizedUrl) matchedUrls.add(fullProjectData.normalizedUrl); + if (fullProjectData && fullProjectData.normalizedUrl) { + matchedUrls.add(fullProjectData.normalizedUrl); + } + } + + // Fall back to number matching only if URL didn't match + if (!fullProjectData) { + const fmNum = this.parseNumber(frontmatter.number); + if (fmNum !== null) { + fullProjectData = cachedItemsForProject.find((ci: any) => Number(ci.number) === fmNum) || null; + if (fullProjectData) { + matchedNumbers.add(fmNum); + } + } } if (isInProjectFolder || fullProjectData || fileMatchesProject) {