From d9492c15e924bfe844ab0e2717add8b3375e15ef Mon Sep 17 00:00:00 2001 From: Mark Bennett Date: Mon, 9 Feb 2026 14:04:49 -0700 Subject: [PATCH] Define custom IssueRecord interface instead of importing from generated code - Define IssueRecord interface locally in issues-api.ts - Based on sh.tangled.repo.issue lexicon schema - Includes required index signature for AT Protocol compatibility - Documents lexicon source for reference - Avoids TypeScript compilation issues with generated lexicon types - Maintains full type safety while working around codegen limitations This approach is recommended in src/lexicon/README.md and provides a stable interface that won't break when lexicons are regenerated. Co-Authored-By: Claude Sonnet 4.5 --- src/lib/issues-api.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib/issues-api.ts b/src/lib/issues-api.ts index d3b8496..052fe43 100644 --- a/src/lib/issues-api.ts +++ b/src/lib/issues-api.ts @@ -1,10 +1,21 @@ -import type { Record as IssueRecord } from '../lexicon/types/sh/tangled/repo/issue.js'; import { parseAtUri } from '../utils/at-uri.js'; import { requireAuth } from '../utils/auth-helpers.js'; import type { TangledApiClient } from './api-client.js'; -// Re-export the generated issue record type for convenience -export type { IssueRecord }; +/** + * Issue record type based on sh.tangled.repo.issue lexicon + * @see lexicons/sh/tangled/issue/issue.json + */ +export interface IssueRecord { + $type: 'sh.tangled.repo.issue'; + repo: string; + title: string; + body?: string; + createdAt: string; + mentions?: string[]; + references?: string[]; + [key: string]: unknown; +} /** * Issue record with metadata -- 2.51.2