@oss-autopilot/core - v3.7.0
    Preparing search index...

    Interface DashboardJsonData

    Shape of the JSON payload served by GET /api/data from the dashboard HTTP server. Single source of truth (#965) — imported by dashboard-server.ts, which previously redeclared this interface inline and so silently drifted whenever this module changed shape.

    interface DashboardJsonData {
        activePRs: FetchedPR[];
        allClosedPRs: {
            closedAt: string;
            closedBy?: string;
            number: number;
            repo: string;
            title: string;
            url: string;
        }[];
        allMergedPRs: {
            mergedAt: string;
            number: number;
            repo: string;
            title: string;
            url: string;
        }[];
        autoUnshelvedPRs: {
            daysSinceActivity: number;
            number: number;
            repo: string;
            status: "needs_addressing"
            | "waiting_on_maintainer";
            title: string;
            url: string;
        }[];
        commentedIssues: CommentedIssue[];
        issueResponses: CommentedIssueWithResponse[];
        lastUpdated?: string;
        monthlyClosed: Record<string, number>;
        monthlyMerged: Record<string, number>;
        monthlyOpened: Record<string, number>;
        offline?: boolean;
        partialFailures?: string[];
        prsByRepo: Record<
            string,
            { active: number; closed: number; merged: number },
        >;
        recentlyClosedPRs: {
            closedAt: string;
            closedBy?: string;
            number: number;
            repo: string;
            title: string;
            url: string;
        }[];
        recentlyMergedPRs: {
            mergedAt: string;
            number: number;
            repo: string;
            title: string;
            url: string;
        }[];
        repoMetadata: Record<string, RepoMetadataEntry>;
        shelvedPRUrls: string[];
        stats: DashboardStats;
        topRepos: { active: number; closed: number; merged: number; repo: string }[];
        vettedIssues?: ParseIssueListOutput | null;
    }
    Index

    Properties

    activePRs: FetchedPR[]
    allClosedPRs: {
        closedAt: string;
        closedBy?: string;
        number: number;
        repo: string;
        title: string;
        url: string;
    }[]
    allMergedPRs: {
        mergedAt: string;
        number: number;
        repo: string;
        title: string;
        url: string;
    }[]
    autoUnshelvedPRs: {
        daysSinceActivity: number;
        number: number;
        repo: string;
        status: "needs_addressing" | "waiting_on_maintainer";
        title: string;
        url: string;
    }[]
    commentedIssues: CommentedIssue[]
    issueResponses: CommentedIssueWithResponse[]
    lastUpdated?: string
    monthlyClosed: Record<string, number>
    monthlyMerged: Record<string, number>
    monthlyOpened: Record<string, number>
    offline?: boolean
    partialFailures?: string[]

    Labels of sub-fetches that degraded to empty fallbacks during this data build. Non-empty means one or more background calls failed and the corresponding sections of the response are approximations (stale or zero'd) rather than authoritative. The SPA surfaces this as a banner so users know the dashboard is showing partial data. See #1035.

    prsByRepo: Record<string, { active: number; closed: number; merged: number }>
    recentlyClosedPRs: {
        closedAt: string;
        closedBy?: string;
        number: number;
        repo: string;
        title: string;
        url: string;
    }[]
    recentlyMergedPRs: {
        mergedAt: string;
        number: number;
        repo: string;
        title: string;
        url: string;
    }[]
    repoMetadata: Record<string, RepoMetadataEntry>
    shelvedPRUrls: string[]
    topRepos: { active: number; closed: number; merged: number; repo: string }[]
    vettedIssues?: ParseIssueListOutput | null