claude-multiacc 2.0.1 → 2.0.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.
package/README.md CHANGED
@@ -39,8 +39,9 @@ database locks, retries, and launching the selected CLI.
39
39
  Successful responses also carry `eligible_count` and `eligible_alternative_count`,
40
40
  so callers can persist proof that sole-account reviewer fallback was unavoidable.
41
41
 
42
- Run `multiacc-select --version` for the selector protocol version. The npm package
43
- version is independent and remains available through `claude-multiacc --version`.
42
+ Run `multiacc-select --version` for the selector protocol version (currently
43
+ `2.0.1`). The npm package version is independent and remains available through
44
+ `claude-multiacc --version`.
44
45
  See [the complete selector contract](docs/UNIFIED_SELECTOR.md) for the request fields,
45
46
  ranking rules, stable errors, and caller boundary.
46
47
 
@@ -11,7 +11,7 @@ from datetime import datetime, timezone
11
11
  from decimal import Decimal, InvalidOperation
12
12
 
13
13
  SCHEMA = "claude-multiacc/pool-selection.v2"
14
- SELECTOR_VERSION = "2.0.0"
14
+ SELECTOR_VERSION = "2.0.1"
15
15
  TIME_RE = re.compile(
16
16
  r"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-5][0-9]"
17
17
  r"(\.[0-9]{1,6})?(Z|[+-][0-9]{2}:[0-9]{2})$")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-multiacc",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "Unified Claude Code and OpenAI Codex subscription pooling with quota-aware selection.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -54,7 +54,7 @@ class SelectorTests(unittest.TestCase):
54
54
  "e8ef0b4bc7b95e76231ee6da79616d92bd9251c1c991845c8c0524fcbfb6593a")
55
55
  self.assertEqual(
56
56
  response["selection_digest"],
57
- "66179083753e967bbe3914692103c1b4a30966a86ecf85cd62e14f3511c78cc3")
57
+ "2c9607e3dc1fde3ddf4e4469fbe48cf0e6a3c8114ef0c6b5f3c82f8ed4f78e3e")
58
58
 
59
59
  def test_unicode_and_active_reservation_proof(self):
60
60
  busy = {"active_expires_at": "2026-08-25T09:00:00.000001Z", "last_selected_at": None}
@@ -68,7 +68,7 @@ class SelectorTests(unittest.TestCase):
68
68
  "29e8e7d1a611f38ee0be43622102b33875e7ff75ff9024aa43d16151575071d4")
69
69
  self.assertEqual(
70
70
  response["selection_digest"],
71
- "eaea620082bb0882a12598b8cc46e79090da07be0b307f34f0a68f555a6c9d3e")
71
+ "2f018ab0e308a8465898e75a867e18d8620c03b4a49109edc1d2d590bf0d1121")
72
72
 
73
73
  def test_both_chooses_each_provider_and_survives_provider_loss(self):
74
74
  codex = select(_request([
@@ -155,7 +155,7 @@ class SelectorTests(unittest.TestCase):
155
155
  self.assertEqual(overflow_seen["error_code"], "no_candidate")
156
156
  self.assertEqual(overflow_history["error_detail"], {
157
157
  "field": "candidates[0].reservation_history.active_expires_at"})
158
- self.assertEqual(invalid, {"schema": SCHEMA, "selector_version": "2.0.0", "ok": False,
158
+ self.assertEqual(invalid, {"schema": SCHEMA, "selector_version": "2.0.1", "ok": False,
159
159
  "error_code": "invalid_request", "error_detail": {"field": "$"}})
160
160
 
161
161
  def test_rfc8785_digest_vectors(self):
@@ -206,7 +206,7 @@ class SelectorTests(unittest.TestCase):
206
206
  self.assertTrue(all(json.loads(item.stdout)["error_code"] == "invalid_request"
207
207
  for item in bad))
208
208
  self.assertEqual(json.loads(decimal_response.stdout)["account_id"], "z-lower")
209
- self.assertEqual(version, "2.0.0")
209
+ self.assertEqual(version, "2.0.1")
210
210
  self.assertEqual(versions, ["2.0.0", "2.0.1"])
211
211
 
212
212