Fold bot-bottle-orchestrator into this repo #321

Open
opened 2026-07-01 13:04:51 -04:00 by didericis-claude · 0 comments
Collaborator

The orchestrator lives in a separate repo (bot-bottle-orchestrator) but the case for keeping it separate has weakened:

  • It always deploys on the same host as bot-bottle
  • It imports from bot_bottle for the forge/state layer
  • Its runner shims (start --headless, commit, resume) map 1:1 to CLI commands defined here — a breaking CLI change silently breaks the orchestrator
  • There is no meaningful independent versioning or deployment story

Proposed shape: move the orchestrator into bot_bottle/orchestrator/ as a subpackage with its own entry point (python -m bot_bottle.orchestrator run). It stays clearly additive — users who do not use forge-native integration do not run it — but pip install bot-bottle gets you everything. One install, one version to track, one CI.

Side effects:

  • The CLI contract between the orchestrator and cli.py becomes an internal boundary, eliminating the cross-repo sync hazard
  • The orchestrator can call into bot-bottle programmatically rather than shelling out (the BottleRunner protocol stays as the abstraction point internally)
  • The orchestrator owns its SQLite DB (done-signal relay, op-log, relay cursor, forge state) without any shared-DB coordination concern

bot-bottle-orchestrator would be archived after the move.

The orchestrator lives in a separate repo (`bot-bottle-orchestrator`) but the case for keeping it separate has weakened: - It always deploys on the same host as bot-bottle - It imports from `bot_bottle` for the forge/state layer - Its runner shims (`start --headless`, `commit`, `resume`) map 1:1 to CLI commands defined here — a breaking CLI change silently breaks the orchestrator - There is no meaningful independent versioning or deployment story **Proposed shape:** move the orchestrator into `bot_bottle/orchestrator/` as a subpackage with its own entry point (`python -m bot_bottle.orchestrator run`). It stays clearly additive — users who do not use forge-native integration do not run it — but `pip install bot-bottle` gets you everything. One install, one version to track, one CI. **Side effects:** - The CLI contract between the orchestrator and `cli.py` becomes an internal boundary, eliminating the cross-repo sync hazard - The orchestrator can call into bot-bottle programmatically rather than shelling out (the `BottleRunner` protocol stays as the abstraction point internally) - The orchestrator owns its SQLite DB (done-signal relay, op-log, relay cursor, forge state) without any shared-DB coordination concern `bot-bottle-orchestrator` would be archived after the move.
didericis added the Kind/Enhancement label 2026-07-01 17:21:27 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: didericis/bot-bottle#321