github-issue-tower-defence-management 1.44.7 → 1.44.8

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
@@ -1,3 +1,10 @@
1
+ ## [1.44.8](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.44.7...v1.44.8) (2026-05-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **src:** gate overage synth on unified-5h-status and unified-7d-status instead of enumerating reason strings ([1748556](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/1748556b2228584e3af1c04f097638d674c4e9d5))
7
+
1
8
  ## [1.44.7](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.44.6...v1.44.7) (2026-05-16)
2
9
 
3
10
 
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.OauthProxyClaudeRepository = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
- const OVERAGE_DISABLED_REASONS_INDICATING_AVAILABLE_PLAN_QUOTA = new Set(['org_level_disabled_until']);
9
8
  const isProxyFile = (value) => {
10
9
  if (typeof value !== 'object' || value === null)
11
10
  return false;
@@ -65,11 +64,10 @@ class OauthProxyClaudeRepository {
65
64
  }
66
65
  }
67
66
  const overageStatus = headers['anthropic-ratelimit-unified-overage-status'];
68
- const overageDisabledReason = headers['anthropic-ratelimit-unified-overage-disabled-reason'];
69
- const overageDisabledReasonIndicatesAvailablePlanQuota = overageDisabledReason !== undefined &&
70
- OVERAGE_DISABLED_REASONS_INDICATING_AVAILABLE_PLAN_QUOTA.has(overageDisabledReason);
67
+ const baseQuotaAvailable = headers['anthropic-ratelimit-unified-5h-status'] === 'allowed' &&
68
+ headers['anthropic-ratelimit-unified-7d-status'] === 'allowed';
71
69
  if (overageStatus === 'rejected' &&
72
- !overageDisabledReasonIndicatesAvailablePlanQuota &&
70
+ !baseQuotaAvailable &&
73
71
  !usages.some((u) => u.utilizationPercentage >= 100)) {
74
72
  usages.push({
75
73
  hour: 168,
@@ -1 +1 @@
1
- {"version":3,"file":"OauthProxyClaudeRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthProxyClaudeRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OauthProxyClaudeRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthProxyClaudeRepository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.44.7",
3
+ "version": "1.44.8",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -166,6 +166,37 @@ describe('OauthProxyClaudeRepository', () => {
166
166
  },
167
167
  ],
168
168
  },
169
+ {
170
+ name: 'does not synthesise entry when overage-status is rejected but unified-5h-status and unified-7d-status are both allowed with org_level_disabled reason',
171
+ fileExists: true,
172
+ fileContent: JSON.stringify({
173
+ headers: {
174
+ 'anthropic-ratelimit-unified-status': 'allowed',
175
+ 'anthropic-ratelimit-unified-5h-status': 'allowed',
176
+ 'anthropic-ratelimit-unified-5h-utilization': '0.12',
177
+ 'anthropic-ratelimit-unified-5h-reset': '1772575200',
178
+ 'anthropic-ratelimit-unified-7d-status': 'allowed',
179
+ 'anthropic-ratelimit-unified-7d-utilization': '0.02',
180
+ 'anthropic-ratelimit-unified-7d-reset': '1772769600',
181
+ 'anthropic-ratelimit-unified-overage-status': 'rejected',
182
+ 'anthropic-ratelimit-unified-overage-disabled-reason':
183
+ 'org_level_disabled',
184
+ },
185
+ ts: 1234567890,
186
+ }),
187
+ expected: [
188
+ {
189
+ hour: 5,
190
+ utilizationPercentage: 12,
191
+ resetsAt: new Date(1772575200 * 1000),
192
+ },
193
+ {
194
+ hour: 168,
195
+ utilizationPercentage: 2,
196
+ resetsAt: new Date(1772769600 * 1000),
197
+ },
198
+ ],
199
+ },
169
200
  {
170
201
  name: 'does not synthesise entry when overage-status is rejected but overage-disabled-reason is org_level_disabled_until',
171
202
  fileExists: true,
@@ -3,6 +3,8 @@ import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
3
3
  import fs from 'fs';
4
4
 
5
5
  type ProxyFileHeaders = {
6
+ 'anthropic-ratelimit-unified-5h-status'?: string;
7
+ 'anthropic-ratelimit-unified-7d-status'?: string;
6
8
  'anthropic-ratelimit-unified-5h-utilization'?: string;
7
9
  'anthropic-ratelimit-unified-7d-utilization'?: string;
8
10
  'anthropic-ratelimit-unified-5h-reset'?: string;
@@ -11,9 +13,6 @@ type ProxyFileHeaders = {
11
13
  'anthropic-ratelimit-unified-overage-disabled-reason'?: string;
12
14
  };
13
15
 
14
- const OVERAGE_DISABLED_REASONS_INDICATING_AVAILABLE_PLAN_QUOTA: ReadonlySet<string> =
15
- new Set(['org_level_disabled_until']);
16
-
17
16
  type ProxyFile = {
18
17
  headers?: ProxyFileHeaders;
19
18
  };
@@ -90,16 +89,12 @@ export class OauthProxyClaudeRepository implements ClaudeRepository {
90
89
  }
91
90
 
92
91
  const overageStatus = headers['anthropic-ratelimit-unified-overage-status'];
93
- const overageDisabledReason =
94
- headers['anthropic-ratelimit-unified-overage-disabled-reason'];
95
- const overageDisabledReasonIndicatesAvailablePlanQuota =
96
- overageDisabledReason !== undefined &&
97
- OVERAGE_DISABLED_REASONS_INDICATING_AVAILABLE_PLAN_QUOTA.has(
98
- overageDisabledReason,
99
- );
92
+ const baseQuotaAvailable =
93
+ headers['anthropic-ratelimit-unified-5h-status'] === 'allowed' &&
94
+ headers['anthropic-ratelimit-unified-7d-status'] === 'allowed';
100
95
  if (
101
96
  overageStatus === 'rejected' &&
102
- !overageDisabledReasonIndicatesAvailablePlanQuota &&
97
+ !baseQuotaAvailable &&
103
98
  !usages.some((u) => u.utilizationPercentage >= 100)
104
99
  ) {
105
100
  usages.push({
@@ -1 +1 @@
1
- {"version":3,"file":"OauthProxyClaudeRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthProxyClaudeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAwB5E,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,QAAQ,GAAE,MACoB;IAK1B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAiFxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAO7D"}
1
+ {"version":3,"file":"OauthProxyClaudeRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthProxyClaudeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAuB5E,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,QAAQ,GAAE,MACoB;IAK1B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA6ExC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAO7D"}