gh-glance 0.18.0 → 0.19.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/CHANGELOG.md +63 -1
- package/README.md +92 -37
- package/index.mjs +1185 -162
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,66 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.19.0] - 2026-11-02
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- A fifth section, `5:Notifications` (`Notices` on narrow panes), keeps an
|
|
15
|
+
in-memory history of status events for the pane: automatic waits, failed
|
|
16
|
+
refreshes, Security source notes, refreshes and cleared causes, newest
|
|
17
|
+
first. It starts with earlier recovery transitions from the shared journal.
|
|
18
|
+
The tab shows an unread count, red for problems and causes that need action,
|
|
19
|
+
yellow for waits.
|
|
20
|
+
- Notifications reports GitHub's platform status from githubstatus.com:
|
|
21
|
+
incidents and outages for API Requests, Actions, Issues, Pull Requests, Git
|
|
22
|
+
Operations and Webhooks. It checks every 10 minutes, on opening the view, on
|
|
23
|
+
`r` in the view and when a tab starts failing, spends no GitHub API quota,
|
|
24
|
+
runs only for `github.com`, and is off with `GH_GLANCE_GITHUB_STATUS=off`.
|
|
25
|
+
An incident posted without a component is a problem only when its name
|
|
26
|
+
names something the dashboard shows; otherwise it is listed as information.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- Lines above a table now appear only for causes that need you to act, such
|
|
31
|
+
as `gh-glance --doctor` or `gh auth status`. Waits such as "GitHub budget
|
|
32
|
+
evidence is old", `Waiting to update`, `Checked HH:MM`, `cached` ages and the
|
|
33
|
+
Security "not enabled" notes moved to Notifications, so the table no longer
|
|
34
|
+
moves when they start or end.
|
|
35
|
+
- The tab bar fits five sections on one row: full names from about 98
|
|
36
|
+
columns, short names below that, digits with counts on narrow panes, and
|
|
37
|
+
bare digits (keeping the Notifications count) below about 30 columns.
|
|
38
|
+
|
|
39
|
+
## [0.18.1] - 2026-10-31
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- A collector that serves several repositories through one provider gives each
|
|
44
|
+
target its own immutable request scope, so one repository's rows can no
|
|
45
|
+
longer be fetched or published under another (#163). Security capability
|
|
46
|
+
backoff is now scoped by host and repository, so one repository's disabled
|
|
47
|
+
feature no longer hides another's alerts or resets its backoff ladder (#165).
|
|
48
|
+
- A secondary rate limit no longer blocks a resource until the hourly primary
|
|
49
|
+
reset; it stays under the shared transport cooldown (#164). A transport paused
|
|
50
|
+
after repeated throttles now recovers on `r` or after the primary reset, and
|
|
51
|
+
recovery never shortens a server-supplied Retry-After (#164).
|
|
52
|
+
- A GraphQL observer claim no longer delays core-only work, and the reverse
|
|
53
|
+
(#169). Governor waits that change nothing no longer rewrite the ledger (#174).
|
|
54
|
+
- Collector Issues and PR results compare as unchanged when their rows are the
|
|
55
|
+
same, so quiet queries reach the quiet cadence instead of polling at the
|
|
56
|
+
floor (#166). Adopting a peer's snapshot updates the local unchanged sentinel
|
|
57
|
+
(#167).
|
|
58
|
+
- A Security batch that only replayed capability backoff no longer advances the
|
|
59
|
+
success time or completes webhook refresh work (#168).
|
|
60
|
+
- A same-epoch collector reconnect shows Connected again without waiting for a
|
|
61
|
+
newer generation (#170), and followers no longer re-send unchanged snapshots
|
|
62
|
+
(#173).
|
|
63
|
+
- The Actions clock advances in collector mode, and collector source age counts
|
|
64
|
+
time spent suspended (#171).
|
|
65
|
+
- The inferred display cache is keyed by the repository resolved from the
|
|
66
|
+
remote, so a changed remote in the same directory no longer restores another
|
|
67
|
+
repository's rows (#172). Existing directory-only cache entries start cold
|
|
68
|
+
once.
|
|
69
|
+
|
|
10
70
|
## [0.18.0] - 2026-10-29
|
|
11
71
|
|
|
12
72
|
### Added
|
|
@@ -1361,7 +1421,9 @@ engineering, security, QA and UX. What follows is what changed as a result.
|
|
|
1361
1421
|
- The `main` field from `package.json`. It advertised the file as importable,
|
|
1362
1422
|
but importing it took over the terminal or exited the host process.
|
|
1363
1423
|
|
|
1364
|
-
[Unreleased]: https://github.com/juan294/gh-glance/compare/v0.
|
|
1424
|
+
[Unreleased]: https://github.com/juan294/gh-glance/compare/v0.19.0...HEAD
|
|
1425
|
+
[0.19.0]: https://github.com/juan294/gh-glance/compare/v0.18.1...v0.19.0
|
|
1426
|
+
[0.18.1]: https://github.com/juan294/gh-glance/compare/v0.18.0...v0.18.1
|
|
1365
1427
|
[0.18.0]: https://github.com/juan294/gh-glance/compare/v0.17.1...v0.18.0
|
|
1366
1428
|
[0.17.1]: https://github.com/juan294/gh-glance/compare/v0.17.0...v0.17.1
|
|
1367
1429
|
[0.17.0]: https://github.com/juan294/gh-glance/compare/v0.16.2...v0.17.0
|
package/README.md
CHANGED
|
@@ -20,15 +20,15 @@ pane next to your editor) where you want an always-on glance at repo activity
|
|
|
20
20
|
without switching to the browser.
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
[1:Actions (4)]
|
|
23
|
+
[1:Actions (4)] 2:Issues 3:PRs 4:Security 5:Notices
|
|
24
24
|
───────────────────────────────────────────────────────────────────────────
|
|
25
25
|
╭─ Actions · owner/repo ──────────────────────────────────────────────────╮
|
|
26
26
|
│ TITLE │WORKFLOW │BRANCH │TIME │UPDATED │
|
|
27
27
|
│ ─────────────────────────────────────────────────────────────────────── │
|
|
28
|
-
│ >+ ci: pin actions to com… #443 CI develop 1m20s
|
|
29
|
-
│ x fix: restore the prima… #442 Code… develop 1m28s
|
|
30
|
-
│ + chore: bump dependenci… #441 CI dependa…int-10 30s
|
|
31
|
-
│ - docs: update the readme #440 CI develop 15s
|
|
28
|
+
│ >+ ci: pin actions to com… #443 CI develop 1m20s 93d ago │
|
|
29
|
+
│ x fix: restore the prima… #442 Code… develop 1m28s 93d ago │
|
|
30
|
+
│ + chore: bump dependenci… #441 CI dependa…int-10 30s 93d ago │
|
|
31
|
+
│ - docs: update the readme #440 CI develop 15s 94d ago │
|
|
32
32
|
│ │
|
|
33
33
|
│ │
|
|
34
34
|
╰──────────────────────────────────────────────────────────────── 4 of 4 ─╯
|
|
@@ -47,7 +47,8 @@ without switching to the browser.
|
|
|
47
47
|
> red" is answerable without switching to that tab — an `x` means the tab's
|
|
48
48
|
> latest fetch failed, and a `?` in place of the Security count means its
|
|
49
49
|
> endpoints could not be read, which is not the same as there being nothing to
|
|
50
|
-
> report.
|
|
50
|
+
> report. `5:Notices` gains an unread count such as `(3)` when waits or
|
|
51
|
+
> problems arrive while it is closed; see [Notifications](#notifications).
|
|
51
52
|
|
|
52
53
|
<!-- contract:allow-emoji -- the check/cross above stand in for Nerd Font
|
|
53
54
|
Octicons the app actually draws; they are literal examples, not decoration. -->
|
|
@@ -86,7 +87,10 @@ current.
|
|
|
86
87
|
set may still be incomplete. Code and secret scanning require GitHub Advanced
|
|
87
88
|
Security -- see [Limitations](#limitations).
|
|
88
89
|
- Tab bar with live counts, pinned to the top of the pane above a divider,
|
|
89
|
-
switchable via `1`-`
|
|
90
|
+
switchable via `1`-`5`, arrow keys, or `Tab`/`Shift+Tab`
|
|
91
|
+
- **[Notifications](#notifications)** -- `5` opens the pane's status history:
|
|
92
|
+
automatic waits, failed refreshes, Security source notes, cleared causes and
|
|
93
|
+
GitHub's own platform status. Only causes that need you stay above a table
|
|
90
94
|
- Adjustable full-table columns, with visible header grips, a keyboard width
|
|
91
95
|
mode, and preferences kept separately for each tab
|
|
92
96
|
- `lazygit`-style panel frame: the tab name sits in the top border, the
|
|
@@ -302,7 +306,8 @@ stdout isn't a terminal rather than streaming redraw frames into a pipe.
|
|
|
302
306
|
| Key | Action |
|
|
303
307
|
|---|---|
|
|
304
308
|
| `1` `2` `3` `4` | Jump to Actions / Issues / Pull Requests / Security |
|
|
305
|
-
|
|
|
309
|
+
| `5` | Open Notifications, the pane's status history. `↑` / `↓` and `PgUp` / `PgDn` scroll it, `r` checks GitHub's status page, and `1`-`4` or `Esc` return to a section. |
|
|
310
|
+
| `←` / `→` | Previous / next tab (Notifications is the fifth position) |
|
|
306
311
|
| `Tab` / `Shift+Tab` | Next / previous tab |
|
|
307
312
|
| `↑` / `↓` or `j` / `k` | Move the cursor between rows |
|
|
308
313
|
| `PgUp` / `PgDn` | Move a page at a time |
|
|
@@ -322,6 +327,47 @@ stdout isn't a terminal rather than streaming redraw frames into a pipe.
|
|
|
322
327
|
| `?` | Open or close contextual help; `n` / `p` moves through its pages |
|
|
323
328
|
| `q` / `Esc` / `Ctrl+C` | Quit from ordinary navigation; `Esc` leaves feature views, editors and width mode. While editing a query or range, `q` is text and `Ctrl+C` quits. |
|
|
324
329
|
|
|
330
|
+
### Notifications
|
|
331
|
+
|
|
332
|
+
Lines above a table appear only when you must act: a local coordination store
|
|
333
|
+
that needs `gh-glance --doctor`, a lost GitHub login, an inaccessible
|
|
334
|
+
repository, or a repeated request limit that waits for `r`. Everything else
|
|
335
|
+
goes to the fifth section, `5:Notifications`: automatic waits (budget checks,
|
|
336
|
+
quota pacing, other panes), failed refreshes with their raw text, Security
|
|
337
|
+
sources that are not enabled or not available, refreshes, and the moment each
|
|
338
|
+
cause cleared. The table no longer moves when a wait starts or ends.
|
|
339
|
+
|
|
340
|
+
Events are listed newest first, with the time, a level glyph, the source and
|
|
341
|
+
the text; repeats are counted (`x12`), and an open wait shows its next retry.
|
|
342
|
+
History is in memory for the pane, starts with the earlier recovery
|
|
343
|
+
transitions from the shared journal (dimmed, `Earlier session`), and keeps the
|
|
344
|
+
latest 500 events.
|
|
345
|
+
|
|
346
|
+
The first row of the view is GitHub's own platform status, read from
|
|
347
|
+
`https://www.githubstatus.com/api/v2/summary.json` every 10 minutes (15 after
|
|
348
|
+
a failure), when you open the view, when you press `r` in it, and when a tab
|
|
349
|
+
starts failing (at most once a minute). It is a plain HTTPS request with a
|
|
350
|
+
validator, outside `gh` and the API governor, so it spends no GitHub API
|
|
351
|
+
quota. Incidents and outages that touch API Requests, Actions, Issues, Pull
|
|
352
|
+
Requests, Git Operations or Webhooks are problems: each keeps the badge red
|
|
353
|
+
until it resolves. About a third of GitHub's incidents are posted without a
|
|
354
|
+
component; those count as problems when the name names something the
|
|
355
|
+
dashboard shows (Actions, runners, requests, the API, Git, repositories,
|
|
356
|
+
Dependabot, code or secret scanning, or "GitHub services"), and are listed as
|
|
357
|
+
information otherwise, so a Copilot or billing incident never turns the badge
|
|
358
|
+
red. Incidents tagged only with other products are not listed. The check runs only
|
|
359
|
+
when the target host is `github.com` and is off with
|
|
360
|
+
`GH_GLANCE_GITHUB_STATUS=off` (see [Configuration](#configuration)). The
|
|
361
|
+
request uses Node's built-in `fetch`, which does not read `HTTPS_PROXY`; where
|
|
362
|
+
only a proxy reaches the internet the row reads "GitHub status unavailable",
|
|
363
|
+
and `GH_GLANCE_GITHUB_STATUS=off` turns it off.
|
|
364
|
+
|
|
365
|
+
The tab label shows how many waits and problems arrived since you last opened
|
|
366
|
+
the view, for example `5:Notifications (3)`: red when any is a problem or needs
|
|
367
|
+
action, yellow when all are waits. Routine refreshes never change the badge, so
|
|
368
|
+
an idle pane still redraws nothing. The status bar keeps its one-row state
|
|
369
|
+
(`Paused`, `Stale`, ...) as before.
|
|
370
|
+
|
|
325
371
|
### Adjusting column widths
|
|
326
372
|
|
|
327
373
|
Press `w` to adjust the named fixed-width columns in the visible full table.
|
|
@@ -631,6 +677,7 @@ Environment variables work too, and the flags take precedence:
|
|
|
631
677
|
| `GH_TOKEN`, `GITHUB_TOKEN`, `GH_ENTERPRISE_TOKEN`, `GITHUB_ENTERPRISE_TOKEN` | Used by the default `gh` provider with `gh`'s host-specific precedence. gh-glance never logs or stores the raw values. One-way credential digests keep private rows access-partitioned; credentials GitHub verifies as the same principal share its quota ledger. App-provider children remove these variables before setting their memory-only installation token. |
|
|
632
678
|
| `GH_CONFIG_DIR` | Selects `gh`'s account configuration and contributes its normalized identity to the cache and governor namespaces. Separate values can isolate simultaneous panes on different accounts; see [No account pinning](#limitations). |
|
|
633
679
|
| `GH_GLANCE_REFRESH=<seconds>` | Minimum active-tab poll interval, 2-3600. Sets the floor for every pane in a shell; `--refresh` takes precedence. See [Rate limit](#rate-limit). |
|
|
680
|
+
| `GH_GLANCE_GITHUB_STATUS=off` | Turn off the GitHub platform status check in Notifications. An `http(s)` URL instead points it at another Statuspage `summary.json` endpoint. Any other value also turns it off and says so in the view. |
|
|
634
681
|
| `GH_GLANCE_ICONS=unicode` | Unicode status glyphs and single-cell text substitutes for Nerd Font row icons |
|
|
635
682
|
| `GH_GLANCE_ICONS=ascii` | ASCII-only status and row icons |
|
|
636
683
|
| `GH_GLANCE_NO_ANIMATION=1` | Stop status and run-state motion. Semantic words such as Watching, Checking, and Paused still report what is happening. |
|
|
@@ -673,14 +720,15 @@ $XDG_CONFIG_HOME/gh-glance/dashboard-cache.json
|
|
|
673
720
|
```
|
|
674
721
|
|
|
675
722
|
The cache is scoped to the repository, host, provider, and effective access
|
|
676
|
-
partition. In inferred standalone mode, the host
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
723
|
+
partition. In inferred standalone mode, the host, the current working directory
|
|
724
|
+
and the repository resolved offline from its git remote form the identity, so
|
|
725
|
+
rows from one checkout, remote or credential context cannot appear in another.
|
|
726
|
+
A directory whose remote now names a different repository starts cold.
|
|
727
|
+
Human-provider access includes one-way digests of the selected credential and
|
|
728
|
+
its authorization generation; App-provider access also binds the configured
|
|
729
|
+
repository and permission restrictions. Raw credentials are never stored. It
|
|
730
|
+
retains at most 32 recent targets and 60 rows per tab; a shortened cached tab
|
|
731
|
+
keeps its `+` marker rather than presenting the saved count as exact.
|
|
684
732
|
|
|
685
733
|
Only successfully parsed, non-blind observations replace saved rows. A failed
|
|
686
734
|
request can add a live error or `?` marker, but it cannot turn known Security
|
|
@@ -935,20 +983,24 @@ recurring polling interval. When another live local pane alone owns the lane
|
|
|
935
983
|
ahead of this pane, the detail says `sharing N` instead. The detail is capped
|
|
936
984
|
at `99m+`.
|
|
937
985
|
|
|
938
|
-
When a refresh fails, the last successful rows stay visible
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
observation.
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
986
|
+
When a refresh fails, the last successful rows stay visible instead of
|
|
987
|
+
disappearing. If gh-glance is restarted while GitHub is still rate-limiting, it
|
|
988
|
+
loads the saved rows for that same target immediately. Their age remains
|
|
989
|
+
explicit through the `stale` label, and the footer still reports the current
|
|
990
|
+
hold; cached data never turns a failure into a false success. A rate limit
|
|
991
|
+
retries automatically, so it does not take rows from the table: a sustained
|
|
992
|
+
hold is listed in [Notifications](#notifications) with its cause (Core,
|
|
993
|
+
GraphQL, or the tab that hit it) and next automatic retry, and the badge turns
|
|
994
|
+
yellow. Only a hold that needs you, such as a repeated limit that waits for
|
|
995
|
+
`r`, stays above the table with its action and the age of the last complete
|
|
996
|
+
source observation. A successful budget check, cache load, or heartbeat cannot
|
|
997
|
+
make old rows fresh. A validated unchanged `304` response does count as a new
|
|
998
|
+
source observation. A Security check answered only from capability backoff
|
|
999
|
+
sends no request and does not count. Unknown older spend remains charged until
|
|
1000
|
+
owner/child quiescence and a later matching observer establish safe retirement.
|
|
1001
|
+
A verified new system boot can establish that boundary for otherwise
|
|
1002
|
+
unidentifiable older children; the app does not assume a restart or reset alone
|
|
1003
|
+
refunded the charge.
|
|
952
1004
|
|
|
953
1005
|
The enforceable boundary is admission from fresh, conservatively debited
|
|
954
1006
|
evidence. Another program can spend after the probe, and standalone panes in a
|
|
@@ -1053,9 +1105,12 @@ monitor makes no GitHub request or coordination write.
|
|
|
1053
1105
|
- **Security tab**: code scanning and secret scanning alerts require [GitHub
|
|
1054
1106
|
Advanced Security](https://docs.github.com/en/code-security/getting-started/github-security-features).
|
|
1055
1107
|
On repos/plans without it, `gh-glance` doesn't crash or spam errors -- it
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1108
|
+
lists each disabled source, such as `Code scanning: not enabled (needs GitHub
|
|
1109
|
+
Advanced Security)`, in [Notifications](#notifications) instead of above the
|
|
1110
|
+
table (when no alerts are shown, the Security panel collapses them into one
|
|
1111
|
+
line such as `Code scanning, Secret scanning: not enabled here`), and still
|
|
1112
|
+
displays whatever it *can* get (Dependabot alerts work independently of
|
|
1113
|
+
GHAS). If your repo has GHAS enabled, those alerts just
|
|
1059
1114
|
show up automatically -- no configuration needed.
|
|
1060
1115
|
|
|
1061
1116
|
If the alert endpoints cannot be read at all -- an expired SAML session, a
|
|
@@ -1140,11 +1195,11 @@ GH_GLANCE_ICONS=ascii gh-glance
|
|
|
1140
1195
|
| `GraphQL: Could not resolve to a Repository...` in older gh-glance versions | The response has the same ambiguity: a missing or renamed target, or a private repository not visible to the active account. Run `gh-glance --doctor --probe`. |
|
|
1141
1196
|
| Actions says `not available for this repository` while Repository access is `ok` | The repository resolved, but that endpoint is unavailable; inspect the corresponding `--doctor --probe` block. |
|
|
1142
1197
|
| Row icons are blank boxes | Your terminal font is not a Nerd Font. Use `GH_GLANCE_ICONS=unicode`. |
|
|
1143
|
-
|
|
|
1198
|
+
| Notifications lists a Security "not enabled" note | Code scanning and secret scanning need GitHub Advanced Security. Dependabot alerts work independently. The note appears only when the feature genuinely is unavailable: auth, SSO and network failures show the real error instead. |
|
|
1144
1199
|
| `none of the git remotes ... point to a known GitHub host` | `gh` is not authenticated for that host. Run `gh auth login --hostname <host>`. |
|
|
1145
1200
|
| Security tab empty on an enterprise host in an older gh-glance version | Older versions could route alert endpoints separately. Current gh-glance routes every API call and the governor to one effective host; use `--repo host/owner/name`, `GH_HOST`, or a qualified `GH_REPO`, then confirm the resolved host with `--doctor`. |
|
|
1146
1201
|
| Tabs start failing after working for a while | The enterprise SAML session lapsed. Re-authorize in the browser; the dashboard recovers within about 30 seconds. Run `gh-glance --doctor --probe` to confirm. |
|
|
1147
|
-
| A tab's count is red | That tab's last fetch failed. The error
|
|
1202
|
+
| A tab's count is red | That tab's last fetch failed. The error is listed in Notifications (`5`); when it needs you (login, repository or endpoint access), it also stays above that tab's table, translated into what to do about it where `gh-glance` recognises the failure. |
|
|
1148
1203
|
| Security tab shows `?` instead of a number | The alert endpoints could not be read at all -- an expired SAML session, a token without `security_events`, or an org OAuth restriction. `?` means "unknown", not "zero"; run `gh-glance --doctor --probe` to see which probe failed and how it was classified. |
|
|
1149
1204
|
| `Watching` with `next 2m` | The active tab has a shared budget probe or safe grant scheduled. The interval names this grant only; it is not a recurring polling interval. Pressing `r` raises safe priority but cannot bypass the lane or reserve. |
|
|
1150
1205
|
| `Shared` | This pane is using a generation acquired for matching local subscribers. This is coalescing, not quota scarcity. |
|
|
@@ -1152,7 +1207,7 @@ GH_GLANCE_ICONS=ascii gh-glance
|
|
|
1152
1207
|
| `Paused` without a reset time | Budget or coordinator evidence is unknown, corrupt, locked, or unwritable. No data call is started. Run `gh-glance --doctor`; also check the config directory permissions and whether another live process owns its private lock. |
|
|
1153
1208
|
| `--doctor` reports an acquisition lock as `orphaned` | A dead owner or an aged incomplete lock record was found. A running pane retries recovery through the private lock protocol; plain doctor only inspects it. If the state does not change, inspect the reported lock age and the config directory permissions. |
|
|
1154
1209
|
| `--doctor` reports an acquisition lock as `busy` | A live or unconfirmed owner, or a recent incomplete lock record, is present. Keep the other pane running and check again after the reported age advances; plain doctor does not steal a lock. |
|
|
1155
|
-
| Rows stay old while the footer shows a coordination reason | The rows remain last-known-good data. The reason persists until a valid shared snapshot or completed cleanup clears that acquisition failure; a healthy rate-budget probe alone does not prove that acquisition succeeded. The footer shows the source age and
|
|
1210
|
+
| Rows stay old while the footer shows a coordination reason | The rows remain last-known-good data. The reason persists until a valid shared snapshot or completed cleanup clears that acquisition failure; a healthy rate-budget probe alone does not prove that acquisition succeeded. The footer shows the source age and Notifications (`5`) gives the longer reason. |
|
|
1156
1211
|
| A failing tab seems to have stopped retrying | Recognized endpoint failures back off rather than re-spawning `gh` at the floor. Press `r` to request a higher-priority retry, or `R` to also clear the endpoint backoff; either way the retry waits for a safe grant, so the tab remains Watching or Paused. |
|
|
1157
1212
|
| `unknown argument: -v` | `-v` used to mean `--version` and no longer does, because this CLI also has `--verbose`. Use `--version` or `--verbose` explicitly. |
|
|
1158
1213
|
| Cached rows plus `Paused`, `Stale`, or `Disconnected` | The rows are last-known-good data while the live source is blocked, overdue, or unavailable. A cache read never advances source success. The footer never calls stale or disconnected rows `Watching`. |
|
|
@@ -1165,7 +1220,7 @@ GH_GLANCE_ICONS=ascii gh-glance
|
|
|
1165
1220
|
| `Local coordination journal is full` | Every slot for unsettled or recently settled requests is in use. The app retries by itself, and older requests settle after about an hour. Nothing needs repair. `gh-glance --doctor` shows the occupancy as `debt groups`. |
|
|
1166
1221
|
| `Local coordination` corruption, overflow, full storage, or unsafe permissions | Run `gh-glance --doctor`; its read-only report gives the exact cause and redacted local file location when known. For a hard failure it also prints a `repair` line: quit every pane, move the state file, its `.recovery.json` and `registry.json` aside, then relaunch. Otherwise repair storage or permissions and let the app retry. Preserve corrupt and overflow evidence for diagnosis. |
|
|
1167
1222
|
| `Saving request result` or `Recovering interrupted request` | The original request may have consumed quota. The app keeps its charge, retries settlement without repeating HTTP, and waits for safe observer evidence before retiring uncertain debt. |
|
|
1168
|
-
| `GitHub request limit` | A shared secondary hold preserves GitHub's retry deadline. Wait for the shown time
|
|
1223
|
+
| `GitHub request limit` | A shared secondary hold preserves GitHub's retry deadline and does not block the resource until the hourly reset. Wait for the shown time. After repeated limits the transport pauses: press `r` (or `R`) once to resume it, or wait for the primary reset, after which one pane resumes it. Resuming never shortens GitHub's retry deadline, and repeated refresh cannot bypass a hold. |
|
|
1169
1224
|
| `Collector connection unavailable` or `GitHub App authorization unavailable` | Restore the selected collector connection or App authorization. The mode does not switch to independent requests. Cached rows remain labeled with their source age. |
|
|
1170
1225
|
| `Shared HTTP request or cooldown in progress` | Panes share up to three admitted requests per host, FIFO starts with at least 250 ms spacing, and one cooldown. The pool is full, a queued request is ahead, or a server-sent `Retry-After` is still running. Normal pacing, not an error. |
|
|
1171
1226
|
| `Verified identity unavailable; waiting to retry` | The account behind your credential has not been confirmed yet -- not signed in, a denied or malformed proof, or a slow credential helper. Check `gh auth status`. Retries are rate-limited, so this clears on its own rather than immediately. |
|