@kud/gh 0.9.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/health-fetch.d.ts +3 -0
- package/dist/health-fetch.d.ts.map +1 -0
- package/dist/health-fetch.js +16 -0
- package/dist/health-fetch.js.map +1 -0
- package/dist/health.d.ts +0 -1
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +0 -15
- package/dist/health.js.map +1 -1
- package/dist/inbox.d.ts +49 -0
- package/dist/inbox.d.ts.map +1 -1
- package/dist/inbox.js +77 -8
- package/dist/inbox.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +9 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-fetch.d.ts","sourceRoot":"","sources":["../src/health-fetch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C,eAAO,MAAM,WAAW,GACtB,MAAM,MAAM,EACZ,QAAQ,MAAM,KACb,OAAO,CAAC,YAAY,CAWtB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { execa } from "execa";
|
|
2
|
+
// Fetch the detail-panel payload for one PR via the gh CLI. Uses `gh pr view`
|
|
3
|
+
// (not `gh api`) for the ready-shaped `--json` projection a panel renders.
|
|
4
|
+
export const fetchHealth = async (repo, number) => {
|
|
5
|
+
const { stdout } = await execa("gh", [
|
|
6
|
+
"pr",
|
|
7
|
+
"view",
|
|
8
|
+
String(number),
|
|
9
|
+
"--repo",
|
|
10
|
+
repo,
|
|
11
|
+
"--json",
|
|
12
|
+
"statusCheckRollup,reviews,reviewDecision,mergeable,mergeStateStatus,author",
|
|
13
|
+
]);
|
|
14
|
+
return JSON.parse(stdout);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=health-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-fetch.js","sourceRoot":"","sources":["../src/health-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,8EAA8E;AAC9E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,IAAY,EACZ,MAAc,EACS,EAAE;IACzB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;QACnC,IAAI;QACJ,MAAM;QACN,MAAM,CAAC,MAAM,CAAC;QACd,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,4EAA4E;KAC7E,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAiB,CAAA;AAC3C,CAAC,CAAA"}
|
package/dist/health.d.ts
CHANGED
|
@@ -40,5 +40,4 @@ export type ComputeHealthInput = {
|
|
|
40
40
|
unresolvedThreads?: number;
|
|
41
41
|
};
|
|
42
42
|
export declare const computeHealth: (input: ComputeHealthInput) => Health;
|
|
43
|
-
export declare const fetchHealth: (repo: string, number: number) => Promise<PrHealthData>;
|
|
44
43
|
//# sourceMappingURL=health.d.ts.map
|
package/dist/health.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,MAAM,GACd,SAAS,GACT,UAAU,GACV,aAAa,GACb,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,MAAM,CAAA;AAMV,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAI1E,MAAM,MAAM,YAAY,GAAG;IACzB,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACjC,CAAA;AAiCD,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,OAKpB,CAAA;AAErB,eAAO,MAAM,cAAc,GAAI,GAAG,OAAO,KAAG,OACS,CAAA;AAIrD,eAAO,MAAM,mBAAmB,GAAI,GAAG,OAAO,KAAG,OACI,CAAA;AAErD,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,OAKf,CAAA;AAM1B,eAAO,MAAM,YAAY,GAAI,QAAQ,OAAO,EAAE,KAAG,OAAO,EAavD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAeD,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,KAAG,MAkBzD,CAAA"}
|
package/dist/health.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { execa } from "execa";
|
|
2
1
|
// The canonical check classifiers — one source of truth, unifying the two
|
|
3
2
|
// hand-maintained copies that had drifted (glance vs panel). Four readings, and
|
|
4
3
|
// together they partition GitHub's CheckConclusionState rather than sampling it:
|
|
@@ -98,18 +97,4 @@ export const computeHealth = (input) => {
|
|
|
98
97
|
return "approved";
|
|
99
98
|
return "waiting";
|
|
100
99
|
};
|
|
101
|
-
// Fetch the detail-panel payload for one PR via the gh CLI. Uses `gh pr view`
|
|
102
|
-
// (not `gh api`) for the ready-shaped `--json` projection a panel renders.
|
|
103
|
-
export const fetchHealth = async (repo, number) => {
|
|
104
|
-
const { stdout } = await execa("gh", [
|
|
105
|
-
"pr",
|
|
106
|
-
"view",
|
|
107
|
-
String(number),
|
|
108
|
-
"--repo",
|
|
109
|
-
repo,
|
|
110
|
-
"--json",
|
|
111
|
-
"statusCheckRollup,reviews,reviewDecision,mergeable,mergeStateStatus,author",
|
|
112
|
-
]);
|
|
113
|
-
return JSON.parse(stdout);
|
|
114
|
-
};
|
|
115
100
|
//# sourceMappingURL=health.js.map
|
package/dist/health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
|
package/dist/inbox.d.ts
CHANGED
|
@@ -34,6 +34,22 @@
|
|
|
34
34
|
* not showing.
|
|
35
35
|
*/
|
|
36
36
|
export declare const MY_PRS_LIMIT = 30;
|
|
37
|
+
/**
|
|
38
|
+
* How many rows each source asks for — the cap, as DATA rather than a literal
|
|
39
|
+
* buried in eight query strings.
|
|
40
|
+
*
|
|
41
|
+
* It has to be readable from outside, because a cap you cannot compare against
|
|
42
|
+
* `issueCount` is a cap that truncates in silence. Measured 2026-09-07 on a real
|
|
43
|
+
* account: `assigned` 37 rows against 30, `repoIssues` 94 against 30,
|
|
44
|
+
* `authoredIssues` 95 against 30. Two sources showing under a third of what they
|
|
45
|
+
* matched, and nothing anywhere said so.
|
|
46
|
+
*
|
|
47
|
+
* That silence is not merely a display gap. A surface that diffs one fetch
|
|
48
|
+
* against the next reads a row leaving the WINDOW as a row leaving the WORLD, so
|
|
49
|
+
* every update to any of those 95 issues evicted something and was reported as
|
|
50
|
+
* news about the evicted one. See `sourceCoverage`.
|
|
51
|
+
*/
|
|
52
|
+
export declare const SOURCE_LIMITS: Record<InboxSource, number>;
|
|
37
53
|
export type InboxShape = "full" | "minimal";
|
|
38
54
|
/** One search in the inbox, addressable by the alias it answers under. */
|
|
39
55
|
export type InboxSource = "myPRs" | "reviewRequests" | "reviewed" | "assigned" | "repoIssues" | "authoredIssues" | "repoPRs" | "recentlyDone";
|
|
@@ -119,4 +135,37 @@ export declare const buildInboxQueries: (options?: InboxQueryOptions & {
|
|
|
119
135
|
* moment.
|
|
120
136
|
*/
|
|
121
137
|
export declare const mergeInboxData: (parts: any[]) => any;
|
|
138
|
+
/** What a source matched, against what it was allowed to return. */
|
|
139
|
+
export type SourceCoverage = {
|
|
140
|
+
/** Everything the search matched, from GitHub's own `issueCount`. */
|
|
141
|
+
total: number;
|
|
142
|
+
/** What actually came back — at most this source's cap. */
|
|
143
|
+
shown: number;
|
|
144
|
+
/** `total > shown`: the rows are a sample of the set, not the set. */
|
|
145
|
+
truncated: boolean;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* What each source could see, against what it was allowed to show.
|
|
149
|
+
*
|
|
150
|
+
* The reason this exists is not the display gap, it is what a truncated source
|
|
151
|
+
* does to a DIFF. A surface that marks arrivals and departures by comparing one
|
|
152
|
+
* fetch with the next is asking "what changed in the world?" and reading the
|
|
153
|
+
* answer off a fixed-size window. Where the window is smaller than the world,
|
|
154
|
+
* those are different questions: any update to any of the 95 issues behind a
|
|
155
|
+
* 30-row window reorders it, evicts something, and the eviction is reported as
|
|
156
|
+
* news about the row that left — which never moved at all.
|
|
157
|
+
*
|
|
158
|
+
* So a consumer should treat presence changes on a truncated source as carrying
|
|
159
|
+
* no information, and say what it is not showing instead. Both halves need this
|
|
160
|
+
* number, and until 2026-09-07 it was fetched for exactly one source out of
|
|
161
|
+
* eight and read by nobody — the guarantee lived in a comment and not in the
|
|
162
|
+
* code.
|
|
163
|
+
*
|
|
164
|
+
* A source that answered with no `issueCount` reports `total: shown`, which
|
|
165
|
+
* reads as "not truncated". That is the deliberate direction to fail in: a
|
|
166
|
+
* missing count must never invent a truncation and silence real news.
|
|
167
|
+
*/
|
|
168
|
+
export declare const sourceCoverage: (data: any) => Partial<Record<InboxSource, SourceCoverage>>;
|
|
169
|
+
/** The sources whose rows are a sample rather than the set. */
|
|
170
|
+
export declare const truncatedSources: (data: any) => InboxSource[];
|
|
122
171
|
//# sourceMappingURL=inbox.d.ts.map
|
package/dist/inbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,YAAY,KAAK,CAAA;AAE9B,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAA;AAE3C,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,gBAAgB,GAChB,SAAS,GACT,cAAc,CAAA;AAElB,oEAAoE;AACpE,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAS/C,CAAA;AAED,2CAA2C;AAC3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;CACjC,CAAA;
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,YAAY,KAAK,CAAA;AAE9B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CASrD,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAA;AAE3C,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,gBAAgB,GAChB,SAAS,GACT,cAAc,CAAA;AAElB,oEAAoE;AACpE,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAS/C,CAAA;AAED,2CAA2C;AAC3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;CACjC,CAAA;AAiPD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,UAAS,iBAAsB,WAqB9D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAS,iBAAiB,GAAG;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,KAC7D,MAAM,EAYR,CAAA;AASD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,GAAG,EAAE,KAAG,GA8B7C,CAAA;AAED,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG;IAC3B,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,GAAG,KACR,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAa7C,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,GAAI,MAAM,GAAG,KAAG,WAAW,EACmB,CAAA"}
|
package/dist/inbox.js
CHANGED
|
@@ -41,6 +41,31 @@
|
|
|
41
41
|
* not showing.
|
|
42
42
|
*/
|
|
43
43
|
export const MY_PRS_LIMIT = 30;
|
|
44
|
+
/**
|
|
45
|
+
* How many rows each source asks for — the cap, as DATA rather than a literal
|
|
46
|
+
* buried in eight query strings.
|
|
47
|
+
*
|
|
48
|
+
* It has to be readable from outside, because a cap you cannot compare against
|
|
49
|
+
* `issueCount` is a cap that truncates in silence. Measured 2026-09-07 on a real
|
|
50
|
+
* account: `assigned` 37 rows against 30, `repoIssues` 94 against 30,
|
|
51
|
+
* `authoredIssues` 95 against 30. Two sources showing under a third of what they
|
|
52
|
+
* matched, and nothing anywhere said so.
|
|
53
|
+
*
|
|
54
|
+
* That silence is not merely a display gap. A surface that diffs one fetch
|
|
55
|
+
* against the next reads a row leaving the WINDOW as a row leaving the WORLD, so
|
|
56
|
+
* every update to any of those 95 issues evicted something and was reported as
|
|
57
|
+
* news about the evicted one. See `sourceCoverage`.
|
|
58
|
+
*/
|
|
59
|
+
export const SOURCE_LIMITS = {
|
|
60
|
+
myPRs: MY_PRS_LIMIT,
|
|
61
|
+
reviewRequests: 20,
|
|
62
|
+
reviewed: 20,
|
|
63
|
+
assigned: 30,
|
|
64
|
+
repoIssues: 30,
|
|
65
|
+
authoredIssues: 30,
|
|
66
|
+
repoPRs: 30,
|
|
67
|
+
recentlyDone: 30,
|
|
68
|
+
};
|
|
44
69
|
/** Every source, in the order a whole-inbox query asks for them. */
|
|
45
70
|
export const INBOX_SOURCES = [
|
|
46
71
|
"myPRs",
|
|
@@ -128,7 +153,7 @@ const sinceDay = (days) => new Date(Date.now() - days * 86400 * 1000).toISOStrin
|
|
|
128
153
|
* appears in the document.
|
|
129
154
|
*/
|
|
130
155
|
const SOURCES = {
|
|
131
|
-
myPRs: ({ scope, health, conversation }) => ` myPRs: search(query: "${scope}is:pr is:open author:@me", type: ISSUE, first: ${
|
|
156
|
+
myPRs: ({ scope, health, conversation, }) => ` myPRs: search(query: "${scope}is:pr is:open author:@me", type: ISSUE, first: ${SOURCE_LIMITS.myPRs}) {
|
|
132
157
|
issueCount
|
|
133
158
|
nodes { __typename ... on PullRequest {
|
|
134
159
|
number title createdAt url headRefName isDraft
|
|
@@ -138,7 +163,8 @@ const SOURCES = {
|
|
|
138
163
|
${conversation}
|
|
139
164
|
}}
|
|
140
165
|
}`,
|
|
141
|
-
reviewRequests: ({ scope, health, conversation }) => ` reviewRequests: search(query: "${scope}is:pr is:open review-requested:@me", type: ISSUE, first:
|
|
166
|
+
reviewRequests: ({ scope, health, conversation, }) => ` reviewRequests: search(query: "${scope}is:pr is:open review-requested:@me", type: ISSUE, first: ${SOURCE_LIMITS.reviewRequests}) {
|
|
167
|
+
issueCount
|
|
142
168
|
nodes { __typename ... on PullRequest {
|
|
143
169
|
number title createdAt url headRefName isDraft
|
|
144
170
|
repository { nameWithOwner }
|
|
@@ -147,7 +173,8 @@ const SOURCES = {
|
|
|
147
173
|
${conversation}
|
|
148
174
|
}}
|
|
149
175
|
}`,
|
|
150
|
-
reviewed: ({ scope, health, conversation }) => ` reviewed: search(query: "${scope}is:pr is:open reviewed-by:@me -author:@me -review-requested:@me", type: ISSUE, first:
|
|
176
|
+
reviewed: ({ scope, health, conversation, }) => ` reviewed: search(query: "${scope}is:pr is:open reviewed-by:@me -author:@me -review-requested:@me", type: ISSUE, first: ${SOURCE_LIMITS.reviewed}) {
|
|
177
|
+
issueCount
|
|
151
178
|
nodes { __typename ... on PullRequest {
|
|
152
179
|
number title createdAt url headRefName isDraft
|
|
153
180
|
repository { nameWithOwner }
|
|
@@ -156,7 +183,8 @@ const SOURCES = {
|
|
|
156
183
|
${conversation}
|
|
157
184
|
}}
|
|
158
185
|
}`,
|
|
159
|
-
assigned: ({ scope, health, conversation, issueConversation, issueLabels, }) => ` assigned: search(query: "${scope}is:open assignee:@me", type: ISSUE, first:
|
|
186
|
+
assigned: ({ scope, health, conversation, issueConversation, issueLabels, }) => ` assigned: search(query: "${scope}is:open assignee:@me", type: ISSUE, first: ${SOURCE_LIMITS.assigned}) {
|
|
187
|
+
issueCount
|
|
160
188
|
nodes {
|
|
161
189
|
__typename
|
|
162
190
|
... on Issue {
|
|
@@ -171,7 +199,8 @@ const SOURCES = {
|
|
|
171
199
|
}
|
|
172
200
|
}
|
|
173
201
|
}`,
|
|
174
|
-
repoIssues: ({ scope, owned, issueConversation, issueLabels, }) => ` repoIssues: search(query: "${scope}${owned}is:issue is:open archived:false", type: ISSUE, first:
|
|
202
|
+
repoIssues: ({ scope, owned, issueConversation, issueLabels, }) => ` repoIssues: search(query: "${scope}${owned}is:issue is:open archived:false", type: ISSUE, first: ${SOURCE_LIMITS.repoIssues}) {
|
|
203
|
+
issueCount
|
|
175
204
|
nodes { __typename ... on Issue {
|
|
176
205
|
number title createdAt url
|
|
177
206
|
repository { nameWithOwner }
|
|
@@ -180,7 +209,8 @@ const SOURCES = {
|
|
|
180
209
|
${issueLabels}
|
|
181
210
|
}}
|
|
182
211
|
}`,
|
|
183
|
-
authoredIssues: ({ scope, issueConversation, issueLabels, }) => ` authoredIssues: search(query: "${scope}is:issue is:open author:@me archived:false", type: ISSUE, first:
|
|
212
|
+
authoredIssues: ({ scope, issueConversation, issueLabels, }) => ` authoredIssues: search(query: "${scope}is:issue is:open author:@me archived:false", type: ISSUE, first: ${SOURCE_LIMITS.authoredIssues}) {
|
|
213
|
+
issueCount
|
|
184
214
|
nodes { ... on Issue {
|
|
185
215
|
number title createdAt url
|
|
186
216
|
repository { nameWithOwner }
|
|
@@ -189,7 +219,8 @@ const SOURCES = {
|
|
|
189
219
|
${issueLabels}
|
|
190
220
|
}}
|
|
191
221
|
}`,
|
|
192
|
-
repoPRs: ({ scope, owned, health, conversation, }) => ` repoPRs: search(query: "${scope}${owned}is:pr is:open -author:@me archived:false", type: ISSUE, first:
|
|
222
|
+
repoPRs: ({ scope, owned, health, conversation, }) => ` repoPRs: search(query: "${scope}${owned}is:pr is:open -author:@me archived:false", type: ISSUE, first: ${SOURCE_LIMITS.repoPRs}) {
|
|
223
|
+
issueCount
|
|
193
224
|
nodes { __typename ... on PullRequest {
|
|
194
225
|
number title createdAt url headRefName isDraft
|
|
195
226
|
repository { nameWithOwner }
|
|
@@ -198,7 +229,8 @@ const SOURCES = {
|
|
|
198
229
|
${conversation}
|
|
199
230
|
}}
|
|
200
231
|
}`,
|
|
201
|
-
recentlyDone: ({ scope, doneSince, }) => ` recentlyDone: search(query: "${scope}is:pr author:@me -is:open closed:>=${doneSince}", type: ISSUE, first:
|
|
232
|
+
recentlyDone: ({ scope, doneSince, }) => ` recentlyDone: search(query: "${scope}is:pr author:@me -is:open closed:>=${doneSince}", type: ISSUE, first: ${SOURCE_LIMITS.recentlyDone}) {
|
|
233
|
+
issueCount
|
|
202
234
|
nodes { __typename ... on PullRequest {
|
|
203
235
|
number title state isDraft createdAt mergedAt closedAt url
|
|
204
236
|
repository { nameWithOwner }
|
|
@@ -323,4 +355,41 @@ export const mergeInboxData = (parts) => {
|
|
|
323
355
|
: {}),
|
|
324
356
|
};
|
|
325
357
|
};
|
|
358
|
+
/**
|
|
359
|
+
* What each source could see, against what it was allowed to show.
|
|
360
|
+
*
|
|
361
|
+
* The reason this exists is not the display gap, it is what a truncated source
|
|
362
|
+
* does to a DIFF. A surface that marks arrivals and departures by comparing one
|
|
363
|
+
* fetch with the next is asking "what changed in the world?" and reading the
|
|
364
|
+
* answer off a fixed-size window. Where the window is smaller than the world,
|
|
365
|
+
* those are different questions: any update to any of the 95 issues behind a
|
|
366
|
+
* 30-row window reorders it, evicts something, and the eviction is reported as
|
|
367
|
+
* news about the row that left — which never moved at all.
|
|
368
|
+
*
|
|
369
|
+
* So a consumer should treat presence changes on a truncated source as carrying
|
|
370
|
+
* no information, and say what it is not showing instead. Both halves need this
|
|
371
|
+
* number, and until 2026-09-07 it was fetched for exactly one source out of
|
|
372
|
+
* eight and read by nobody — the guarantee lived in a comment and not in the
|
|
373
|
+
* code.
|
|
374
|
+
*
|
|
375
|
+
* A source that answered with no `issueCount` reports `total: shown`, which
|
|
376
|
+
* reads as "not truncated". That is the deliberate direction to fail in: a
|
|
377
|
+
* missing count must never invent a truncation and silence real news.
|
|
378
|
+
*/
|
|
379
|
+
export const sourceCoverage = (data) => {
|
|
380
|
+
const out = {};
|
|
381
|
+
if (!data)
|
|
382
|
+
return out;
|
|
383
|
+
for (const source of INBOX_SOURCES) {
|
|
384
|
+
const answered = data[source];
|
|
385
|
+
if (!answered)
|
|
386
|
+
continue;
|
|
387
|
+
const shown = answered.nodes?.length ?? 0;
|
|
388
|
+
const total = typeof answered.issueCount === "number" ? answered.issueCount : shown;
|
|
389
|
+
out[source] = { total, shown, truncated: total > shown };
|
|
390
|
+
}
|
|
391
|
+
return out;
|
|
392
|
+
};
|
|
393
|
+
/** The sources whose rows are a sample rather than the set. */
|
|
394
|
+
export const truncatedSources = (data) => INBOX_SOURCES.filter((source) => sourceCoverage(data)[source]?.truncated);
|
|
326
395
|
//# sourceMappingURL=inbox.js.map
|
package/dist/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,YAAY;AACZ,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,uDAAuD;AAEvD;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iFAAiF;AACjF,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,mFAAmF;AACnF,2EAA2E;AAC3E,aAAa;AACb,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iFAAiF;AACjF,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,mFAAmF;AACnF,2EAA2E;AAC3E,aAAa;AACb,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kud/gh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Surface-agnostic GitHub core — gh CLI primitives, PR review comments, health, and webhook logic.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,6 +9,14 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"import": "./dist/index.js",
|
|
11
11
|
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./health": {
|
|
14
|
+
"import": "./dist/health.js",
|
|
15
|
+
"types": "./dist/health.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./inbox": {
|
|
18
|
+
"import": "./dist/inbox.js",
|
|
19
|
+
"types": "./dist/inbox.d.ts"
|
|
12
20
|
}
|
|
13
21
|
},
|
|
14
22
|
"files": [
|