gh-glance 0.13.1 → 0.13.2

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/index.mjs +13 -1
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.13.2] - 2026-09-07
11
+
12
+ ### Fixed
13
+
14
+ - **"Upgrade waiting for legacy quota reset" could never clear.** A pane holding
15
+ a pre-0.12.0 ledger with unsettled GraphQL charges waited on a deadline that
16
+ did not exist, so the message stayed for as long as that file was present --
17
+ weeks, in one case, long after the quota windows it was waiting for had ended.
18
+ Migrating such a ledger deliberately drops its budgets, because their numbers
19
+ came from `/rate_limit` and were never spendable capacity; the reset times
20
+ recorded alongside them are still facts about when those windows closed, and
21
+ are now read as the deadline they always were. Reading a reset is not the same
22
+ as spending against it. Affected panes clear themselves on the next launch.
23
+
10
24
  ## [0.13.1] - 2026-09-07
11
25
 
12
26
  ### Fixed
@@ -926,7 +940,8 @@ engineering, security, QA and UX. What follows is what changed as a result.
926
940
  - The `main` field from `package.json`. It advertised the file as importable,
927
941
  but importing it took over the terminal or exited the host process.
928
942
 
929
- [Unreleased]: https://github.com/juan294/gh-glance/compare/v0.13.1...HEAD
943
+ [Unreleased]: https://github.com/juan294/gh-glance/compare/v0.13.2...HEAD
944
+ [0.13.2]: https://github.com/juan294/gh-glance/compare/v0.13.1...v0.13.2
930
945
  [0.13.1]: https://github.com/juan294/gh-glance/compare/v0.13.0...v0.13.1
931
946
  [0.13.0]: https://github.com/juan294/gh-glance/compare/v0.12.0...v0.13.0
932
947
  [0.12.0]: https://github.com/juan294/gh-glance/compare/v0.11.2...v0.12.0
package/index.mjs CHANGED
@@ -2528,7 +2528,19 @@ function inspectLegacyMigration(root, state, now) {
2528
2528
  const uncertain = Object.values(legacy.reservations).some((reservation) =>
2529
2529
  ["started", "completed"].includes(reservation.status) && reservationCost(reservation, resource, legacy.leases, now) > 0);
2530
2530
  if (uncertain) {
2531
- const reset = budget?.resetMs;
2531
+ // The deadline may only be read from the migrated view for resources the
2532
+ // migration kept. A v1 file's budgets are dropped on purpose -- they came
2533
+ // from /rate_limit and are not spendable capacity -- but the reset they
2534
+ // record is still a fact about when that window ended, and using it as a
2535
+ // deadline is not the same as admitting work against it. Core already had
2536
+ // a reconstruction above; GraphQL never did, so a v1 file holding any
2537
+ // uncertain GraphQL charge asked a dropped budget for its reset, found
2538
+ // none, and reported legacy-unresolved -- which has no deadline and so
2539
+ // never cleared. The file it came from had a perfectly good reset in it
2540
+ // the whole time.
2541
+ const reset = Number.isFinite(budget?.resetMs)
2542
+ ? budget.resetMs
2543
+ : Number(raw?.budgets?.[resource]?.resetMs);
2532
2544
  if (!Number.isFinite(reset)) return { ok: false, reason: "legacy-unresolved" };
2533
2545
  holdUntil = Math.max(holdUntil, reset + BUDGET_RESET_GRACE_MS);
2534
2546
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gh-glance",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
4
4
  "description": "A live-refreshing GitHub dashboard for your terminal: Actions, Issues, Pull Requests, and Security alerts in one narrow pane",
5
5
  "type": "module",
6
6
  "bin": {