claude-multiacc 2.0.55 → 2.0.56

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 (60) hide show
  1. package/docs/AUTORESUME.md +8 -7
  2. package/lib/__pycache__/audit.cpython-312.pyc +0 -0
  3. package/lib/__pycache__/autoresume.cpython-312.pyc +0 -0
  4. package/lib/__pycache__/autoresume_probe.cpython-312.pyc +0 -0
  5. package/lib/__pycache__/autoresume_receipt.cpython-312.pyc +0 -0
  6. package/lib/__pycache__/claude_client_error.cpython-312.pyc +0 -0
  7. package/lib/__pycache__/claude_reset.cpython-312.pyc +0 -0
  8. package/lib/__pycache__/claude_token_identity.cpython-312.pyc +0 -0
  9. package/lib/__pycache__/codex_autoresume_mode.cpython-312.pyc +0 -0
  10. package/lib/__pycache__/codex_config_edit.cpython-312.pyc +0 -0
  11. package/lib/__pycache__/codex_credit_controls.cpython-312.pyc +0 -0
  12. package/lib/__pycache__/codex_credit_local_scope.cpython-312.pyc +0 -0
  13. package/lib/__pycache__/codex_credit_selection.cpython-312.pyc +0 -0
  14. package/lib/__pycache__/codex_credits.cpython-312.pyc +0 -0
  15. package/lib/__pycache__/codex_limits_lock.cpython-312.pyc +0 -0
  16. package/lib/__pycache__/codex_python.cpython-312.pyc +0 -0
  17. package/lib/__pycache__/codex_usage_fetch.cpython-312.pyc +0 -0
  18. package/lib/__pycache__/keychain.cpython-312.pyc +0 -0
  19. package/lib/__pycache__/mcp_registry.cpython-312.pyc +0 -0
  20. package/lib/__pycache__/report.cpython-312.pyc +0 -0
  21. package/lib/__pycache__/selector_credit_scope.cpython-312.pyc +0 -0
  22. package/lib/__pycache__/selector_credits.cpython-312.pyc +0 -0
  23. package/lib/__pycache__/selector_funding.cpython-312.pyc +0 -0
  24. package/lib/__pycache__/selector_policy.cpython-312.pyc +0 -0
  25. package/lib/__pycache__/selector_primitives.cpython-312.pyc +0 -0
  26. package/lib/__pycache__/shim_path.cpython-312.pyc +0 -0
  27. package/lib/autoresume.py +2 -2
  28. package/package.json +1 -1
  29. package/tests/__pycache__/autoresume_tmux_support.cpython-312.pyc +0 -0
  30. package/tests/__pycache__/packaged_command_support.cpython-312.pyc +0 -0
  31. package/tests/__pycache__/test_autoresume.cpython-312.pyc +0 -0
  32. package/tests/__pycache__/test_autoresume_codex_records.cpython-312.pyc +0 -0
  33. package/tests/__pycache__/test_autoresume_cursor.cpython-312.pyc +0 -0
  34. package/tests/__pycache__/test_autoresume_fallback.cpython-312.pyc +0 -0
  35. package/tests/__pycache__/test_autoresume_mode.cpython-312.pyc +0 -0
  36. package/tests/__pycache__/test_autoresume_probe.cpython-312.pyc +0 -0
  37. package/tests/__pycache__/test_autoresume_receipt.cpython-312.pyc +0 -0
  38. package/tests/__pycache__/test_autoresume_tmux.cpython-312.pyc +0 -0
  39. package/tests/__pycache__/test_autoresume_tmux_modes.cpython-312.pyc +0 -0
  40. package/tests/__pycache__/test_claude_reset.cpython-312.pyc +0 -0
  41. package/tests/__pycache__/test_claude_token_identity.cpython-312.pyc +0 -0
  42. package/tests/__pycache__/test_codex_reset.cpython-312.pyc +0 -0
  43. package/tests/__pycache__/test_codex_reset_credits.cpython-312.pyc +0 -0
  44. package/tests/__pycache__/test_codex_reset_credits_polling.cpython-312.pyc +0 -0
  45. package/tests/__pycache__/test_codex_reset_credits_report.cpython-312.pyc +0 -0
  46. package/tests/__pycache__/test_codex_reset_fetch.cpython-312.pyc +0 -0
  47. package/tests/__pycache__/test_codex_reset_polling.cpython-312.pyc +0 -0
  48. package/tests/__pycache__/test_codex_reset_reporting.cpython-312.pyc +0 -0
  49. package/tests/__pycache__/test_codex_reset_windows.cpython-312.pyc +0 -0
  50. package/tests/__pycache__/test_selector.cpython-312.pyc +0 -0
  51. package/tests/__pycache__/test_selector_cached_credits.cpython-312.pyc +0 -0
  52. package/tests/__pycache__/test_selector_credit_scope.cpython-312.pyc +0 -0
  53. package/tests/__pycache__/test_selector_credit_shim.cpython-312.pyc +0 -0
  54. package/tests/__pycache__/test_selector_credits.cpython-312.pyc +0 -0
  55. package/tests/__pycache__/test_selector_spread.cpython-312.pyc +0 -0
  56. package/tests/__pycache__/test_token_identity_ceremony.cpython-312.pyc +0 -0
  57. package/tests/__pycache__/test_token_identity_integration.cpython-312.pyc +0 -0
  58. package/tests/__pycache__/test_token_identity_retry.cpython-312.pyc +0 -0
  59. package/tests/__pycache__/test_token_identity_sync.cpython-312.pyc +0 -0
  60. package/tests/test_autoresume.py +1 -1
@@ -180,9 +180,9 @@ The prompt is submitted automatically:
180
180
 
181
181
  > (claude-multiacc auto-resume) This session was restarted automatically on another
182
182
  > account because the previous account hit its usage limit. Continue the task from where
183
- > you left off; the user has not sent a new message. Anything that was running in the
184
- > background before the restart was stopped, so re-check it before relying on it, and do
185
- > not repeat work that is already done.
183
+ > you left off; the user has not sent a new message. Background work may have stopped or
184
+ > may still be running. Inspect its state before relying on it or restarting it, and do
185
+ > not duplicate active or completed work.
186
186
 
187
187
  - **The reason** follows the class.
188
188
  - **Transient and crash restarts** drop "on another account".
@@ -333,10 +333,11 @@ CLAUDE_MULTIACC_AR_PROBE=1 CLAUDE_MULTIACC_AR_AVOID=acct-07:1790000000 claude
333
333
 
334
334
  - **tmux only.** Outside tmux there is no safe place to type the relaunch, so those
335
335
  sessions run unsupervised, as before.
336
- - **Background work stops.** Subagents, background shells and monitors in the stopped
337
- session end with it, and the continuation prompt tells the model to re-check them. For
338
- model-limit and transient errors, the watcher first waits up to 15 min for subagent
339
- transcripts to go quiet.
336
+ - **Background work needs verification.** The watcher stops the client and identified
337
+ descendants in its process group. Detached work and a pre-existing shared Codex daemon
338
+ may survive; the continuation prompt requires checking before relying on or restarting
339
+ that work. For Claude model-limit and transient errors, the watcher first waits up to
340
+ 15 min for subagent transcripts to go quiet.
340
341
  - **Only the pane's own shell is typed into.** The relaunch goes only to the shell that
341
342
  launched the session. A session started from a nested shell or a script, or with
342
343
  `exec claude`, gets a watcher that gives up instead of relaunching.
package/lib/autoresume.py CHANGED
@@ -71,8 +71,8 @@ PROMPT_PREFIX = "(claude-multiacc auto-resume)"
71
71
  PROMPT_TEMPLATE = (
72
72
  PROMPT_PREFIX + " This session was restarted automatically{where} because {reason}. "
73
73
  "Continue the task from where you left off; the user has not sent a new message. "
74
- "Anything that was running in the background before the restart was stopped, so "
75
- "re-check it before relying on it, and do not repeat work that is already done."
74
+ "Background work may have stopped or may still be running. Inspect its state before "
75
+ "relying on it or restarting it, and do not duplicate active or completed work."
76
76
  )
77
77
 
78
78
  REASONS = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-multiacc",
3
- "version": "2.0.55",
3
+ "version": "2.0.56",
4
4
  "description": "Unified Claude Code and OpenAI Codex subscription pooling with quota-aware selection.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -557,7 +557,7 @@ class ArgvTests(unittest.TestCase):
557
557
  "automatically on another account because the previous "
558
558
  "account hit its usage limit. Continue the task"))
559
559
  self.assertIn("the user has not sent a new message", q)
560
- self.assertIn("do not repeat work that is already done.", q)
560
+ self.assertIn("do not duplicate active or completed work.", q)
561
561
  self.assertIn("this model's usage limit", ar.resume_prompt("model"))
562
562
  self.assertIn("login failed", ar.resume_prompt("auth"))
563
563
  self.assertIn("was refused", ar.resume_prompt("blocked"))