diff --git a/packages/linear-core/src/entities/linear-gateway.ts b/packages/linear-core/src/entities/linear-gateway.ts index 0c3d0f6..7f5b516 100644 --- a/packages/linear-core/src/entities/linear-gateway.ts +++ b/packages/linear-core/src/entities/linear-gateway.ts @@ -129,6 +129,8 @@ async function toIssue(record: SdkIssueLike): Promise { ), ]); + const childrenCount = children.length; + return { id: record.id, number: record.number, @@ -153,10 +155,13 @@ async function toIssue(record: SdkIssueLike): Promise { milestoneName: milestone?.name, parentId: record.parentId ?? undefined, parentIdentifier: parent?.identifier, + parentTitle: parent?.title, labelNames: labels .map((label) => label.name) .filter((value): value is string => typeof value === "string"), - childCount: children.length, + childCount: childrenCount, + childrenCount, + hasChildren: childrenCount > 0, relationCount: relations.length, url: record.url, createdAt: toDateString(record.createdAt), diff --git a/packages/linear-core/src/entities/models.ts b/packages/linear-core/src/entities/models.ts index 20e522f..c76a813 100644 --- a/packages/linear-core/src/entities/models.ts +++ b/packages/linear-core/src/entities/models.ts @@ -22,8 +22,11 @@ export interface IssueRecord { readonly milestoneName?: string; readonly parentId?: string; readonly parentIdentifier?: string; + readonly parentTitle?: string; readonly labelNames?: readonly string[]; readonly childCount?: number; + readonly childrenCount?: number; + readonly hasChildren?: boolean; readonly relationCount?: number; readonly url: string; readonly createdAt: string; diff --git a/packages/linear-core/tests/v2-gateway.test.ts b/packages/linear-core/tests/v2-gateway.test.ts index bd2ca3e..0e24c1f 100644 --- a/packages/linear-core/tests/v2-gateway.test.ts +++ b/packages/linear-core/tests/v2-gateway.test.ts @@ -358,8 +358,11 @@ describe("LinearGateway v2", () => { expect(issue.teamKey).toBe("ENG"); expect(issue.milestoneName).toBe("Beta"); expect(issue.parentIdentifier).toBe("ENG-0"); + expect(issue.parentTitle).toBe("Parent issue"); expect(issue.labelNames).toEqual(["Bug"]); expect(issue.childCount).toBe(1); + expect(issue.childrenCount).toBe(1); + expect(issue.hasChildren).toBe(true); expect(issue.relationCount).toBe(1); expect(issue.estimate).toBe(3); expect(issue.dueDate).toBe("2026-04-01");