gh-glance 0.19.2 → 0.19.3

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 CHANGED
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.19.3] - 2026-11-12
11
+
12
+ ### Fixed
13
+
14
+ - A single contradictory rate-limit reading no longer pauses all panes until
15
+ the hourly reset. Rejected budget readings now show a failed budget check
16
+ that retries automatically instead of corrupt coordination state.
17
+
10
18
  ## [0.19.2] - 2026-11-06
11
19
 
12
20
  ### Changed
@@ -1443,7 +1451,8 @@ engineering, security, QA and UX. What follows is what changed as a result.
1443
1451
  - The `main` field from `package.json`. It advertised the file as importable,
1444
1452
  but importing it took over the terminal or exited the host process.
1445
1453
 
1446
- [Unreleased]: https://github.com/juan294/gh-glance/compare/v0.19.2...HEAD
1454
+ [Unreleased]: https://github.com/juan294/gh-glance/compare/v0.19.3...HEAD
1455
+ [0.19.3]: https://github.com/juan294/gh-glance/compare/v0.19.2...v0.19.3
1447
1456
  [0.19.2]: https://github.com/juan294/gh-glance/compare/v0.19.1...v0.19.2
1448
1457
  [0.19.1]: https://github.com/juan294/gh-glance/compare/v0.19.0...v0.19.1
1449
1458
  [0.19.0]: https://github.com/juan294/gh-glance/compare/v0.18.1...v0.19.0
package/index.mjs CHANGED
@@ -6163,13 +6163,14 @@ function budgetFromObservation(raw, previous, nowMs, {
6163
6163
  ) return { status: "invalid" };
6164
6164
  const epoch = `${normalized.limit}:${normalized.resetMs}`;
6165
6165
  // Endpoint responses can carry cached or endpoint-specific rate headers.
6166
- // They may refine the counter inside the epoch established by its claimed
6167
- // observer, but only that observer may move the resource into a new epoch.
6166
+ // Only the claimed observer may move the epoch in either direction. A
6167
+ // backwards move must be newer than the stored evidence to replace it.
6168
6168
  if (!allowEpochChange && (!previous || previous.epoch !== epoch)) {
6169
6169
  return { status: "ignored", epoch };
6170
6170
  }
6171
6171
  if (previous) {
6172
- if (normalized.resetMs < previous.resetMs) return { status: "ignored" };
6172
+ if (normalized.resetMs < previous.resetMs &&
6173
+ (!allowEpochChange || receivedAt <= previous.observedAt)) return { status: "ignored" };
6173
6174
  if (budgetEpoch(previous) === epoch && normalized.used < previous.used) {
6174
6175
  if (!allowEpochChange) return { status: "ignored" };
6175
6176
  // The claimed observer can lag a newer endpoint response within the
@@ -6272,7 +6273,7 @@ function publishProbe(scope, leaseId, nonce, budgets, nowMs, resource) {
6272
6273
  clearProvenBlock: true,
6273
6274
  allowEpochChange: true,
6274
6275
  });
6275
- if (observed.status === "invalid") return { ok: false, reason: "corrupt" };
6276
+ if (observed.status === "invalid") return { ok: false, reason: "probe-failed" };
6276
6277
  if (observed.status !== "ignored") {
6277
6278
  // The observer's own cost is local spend. Left out, the external-factor
6278
6279
  // reconciliation below attributes it to other clients, and the governor
@@ -6288,7 +6289,7 @@ function publishProbe(scope, leaseId, nonce, budgets, nowMs, resource) {
6288
6289
  if (observed.epochChanged && state.epochs[resource] !== null) resetResources.push(resource);
6289
6290
  }
6290
6291
  }
6291
- if (changedResources.length === 0) return { ok: false, reason: "corrupt" };
6292
+ if (changedResources.length === 0) return { ok: false, reason: "probe-failed" };
6292
6293
  if (!retireClaimedQuiescentDebt(state, resource, claim)) {
6293
6294
  return ACCOUNTING_OVERFLOW;
6294
6295
  }
@@ -23670,6 +23671,7 @@ export {
23670
23671
  inspectGovernor,
23671
23672
  governorHealth,
23672
23673
  refreshSharedBudget,
23674
+ refreshResourceBudget,
23673
23675
  readCoreBudget,
23674
23676
  readSharedBudgetSources,
23675
23677
  safe,
@@ -23883,6 +23885,7 @@ export {
23883
23885
  cleanupQueueForResource,
23884
23886
  presentRecovery,
23885
23887
  RECOVERY_COPY,
23888
+ HARD_STORAGE_REASONS,
23886
23889
  NOTICE_LEVELS,
23887
23890
  NOTIFICATION_LOG_MAX,
23888
23891
  noticeLevel,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gh-glance",
3
- "version": "0.19.2",
3
+ "version": "0.19.3",
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": {