Skip to content

feat(board): add burger menu LLM settings with IProcessService abstraction#201

Draft
gendosu wants to merge 5 commits into
mainfrom
feat/427-burger-settings-llm-config
Draft

feat(board): add burger menu LLM settings with IProcessService abstraction#201
gendosu wants to merge 5 commits into
mainfrom
feat/427-burger-settings-llm-config

Conversation

@gendosu

@gendosu gendosu commented Apr 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add settings menu in the burger menu for LLM preference configuration
  • Create IProcessService interface and ProcessServiceFactory for abstraction
  • Add CodexProcessService implementation alongside existing ClaudeProcessService
  • Refactor board routes and server to use IProcessService via the factory

Changes

Features

  • Burger menu settings: Added LLM preference settings UI in the burger menu (Claude / Codex toggle)
  • IProcessService interface: Defined a common interface for process service implementations
  • ProcessServiceFactory: Factory that instantiates the appropriate service based on config
  • CodexProcessService: New process service implementation for Codex

Refactoring

  • Board routes and server now depend on IProcessService instead of ClaudeProcessService directly
  • Exported new services from src/services/index.ts

Tests

  • Added tests for burger menu settings UI
  • Updated board config, board routes, claude routes, and server tests
  • Added tests for new service exports

Test plan

  • Burger menu displays LLM preference settings
  • Selecting LLM preference persists the setting
  • Board uses the correct process service based on the LLM config
  • All existing tests pass

🤖 Generated with Claude Code

@gendosu gendosu marked this pull request as draft April 12, 2026 08:28
gendosu added 5 commits April 14, 2026 12:44
…ctory

- Add IProcessService interface for LLM-agnostic process management
- Create ProcessServiceFactory to select implementation based on LlmPreference
- Implement CodexProcessService with codex-specific JSONL parsing
- Update ClaudeProcessService to implement IProcessService
- Export new types and classes from services index

This enables switching between Claude and Codex based on board config.
- Change BoardServices.claudeProcessService to processService with IProcessService type
- Rename registerClaudeRoutes to registerProcessRoutes for LLM-agnostic naming
- Update server.ts to create process service using ProcessServiceFactory
- Read board config in startBoardServer to get LLM preference
- ProcessServiceFactory now handles claude vs codex selection
- Update claudeRoutes.test.ts to use IProcessService instead of ClaudeProcessService
- Add tests for CodexProcessService and ProcessServiceFactory exports
- Update export count to 11 (added 3 new exports)
- Rename buildMockClaudeProcessService to buildMockProcessService
@gendosu gendosu force-pushed the feat/427-burger-settings-llm-config branch from a2d89db to 366be35 Compare April 14, 2026 14:03
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