Skip to content

feat(accounts): multi-account pool skeleton (Task #2)#18

Open
lubobill1990 wants to merge 1 commit into
feat/01-db-modulefrom
feat/02-multi-account-skeleton
Open

feat(accounts): multi-account pool skeleton (Task #2)#18
lubobill1990 wants to merge 1 commit into
feat/01-db-modulefrom
feat/02-multi-account-skeleton

Conversation

@lubobill1990
Copy link
Copy Markdown
Collaborator

Summary

  • AccountPool with three picker strategies, acquire/release/cooldown/failure tracking
  • accounts.json loader + legacy single-token fallback
  • per-account Copilot token refresh
  • new flags: --accounts-file, --strategy

Test plan

  • 47 tests pass (17 new across pool + loader)
  • typecheck clean
  • lint clean

Refs #2

🤖 Generated with Claude Code

- src/lib/account-pool.ts: AccountPool with round-robin / least-busy / least-recent strategies, acquire/release, cooldown and failure tracking
- src/lib/accounts-loader.ts: load accounts.json or fall back to legacy single token; persistAccounts() upserts into accounts table
- src/lib/state.ts: pool + strategy on State (legacy githubToken/copilotToken kept as shims for not-yet-migrated callers; removed in #3)
- src/lib/token.ts: setupCopilotTokenFor(account) sets up per-account refresh interval
- src/start.ts: --accounts-file, --strategy flags; load + persist + parallel token init

Tests: AccountPool picker + cooldown + acquire/release; loader file/legacy/empty paths; persistAccounts idempotency.

Refs #2

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant