refactor(store): consolidate the SQLite store family into bot_bottle.store
lint / lint (push) Successful in 54s
test / integration-docker (pull_request) Successful in 38s
test / unit (pull_request) Successful in 45s
test / integration-firecracker (pull_request) Successful in 3m31s
test / coverage (pull_request) Successful in 18s
test / publish-infra (pull_request) Has been skipped
tracker-policy-pr / check-pr (pull_request) Failing after 6s

Move the DbStore base (db_store), the shared schema-migration base (migrations /
TableMigrations), the concrete stores (audit_store, config_store, queue_store),
and StoreManager out of the package root into a bot_bottle/store/ package, so
persistence lives in one place rather than scattered across the root.

Callers use direct submodule imports (from bot_bottle.store.store_manager
import StoreManager). Inside the moved modules the relative imports point back
up to their non-store siblings (..paths, ..supervise_types) while co-moved
siblings stay package-local; the flat-import fallbacks are untouched. The
orchestrator's own stores (config_store, secret_store, registry) stay in
orchestrator/ and repoint to the moved DbStore / TableMigrations.

No behavior change; full unit suite green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-24 12:53:52 -04:00
parent dfce3d9505
commit d7a58e52fd
21 changed files with 39 additions and 30 deletions
+2 -2
View File
@@ -12,10 +12,10 @@ from unittest.mock import patch
import bot_bottle.cli as climod
from bot_bottle.cli import main
from bot_bottle.db_store import DbStore
from bot_bottle.store.db_store import DbStore
from bot_bottle.log import Die
from bot_bottle.manifest import ManifestError
from bot_bottle.store_manager import StoreManager
from bot_bottle.store.store_manager import StoreManager
class TestMainDispatch(unittest.TestCase):
+2 -2
View File
@@ -7,11 +7,11 @@ import tempfile
import unittest
from pathlib import Path
from bot_bottle.config_store import (
from bot_bottle.store.config_store import (
DEFAULT_CACHED_IMAGE_STALE_WARNING_DAYS,
ConfigStore,
)
from bot_bottle.store_manager import StoreManager
from bot_bottle.store.store_manager import StoreManager
class TestConfigStore(unittest.TestCase):
+2 -2
View File
@@ -7,8 +7,8 @@ import tempfile
import unittest
from pathlib import Path
from bot_bottle.db_store import DbStore
from bot_bottle.migrations import TableMigrations
from bot_bottle.store.db_store import DbStore
from bot_bottle.store.migrations import TableMigrations
def _store(tmp: Path) -> DbStore:
@@ -24,7 +24,7 @@ from bot_bottle.orchestrator.broker import StubBroker
from bot_bottle.orchestrator.control_plane import dispatch, make_server
from bot_bottle.orchestrator.registry import BottleRecord, RegistryStore
from bot_bottle.orchestrator.service import Orchestrator
from bot_bottle.store_manager import StoreManager
from bot_bottle.store.store_manager import StoreManager
from bot_bottle.supervise import (
Proposal,
TOOL_EGRESS_ALLOW,
+1 -1
View File
@@ -15,7 +15,7 @@ from bot_bottle.orchestrator.broker import LaunchBroker, LaunchRequest, StubBrok
from bot_bottle.orchestrator.registry import RegistryStore
from bot_bottle.orchestrator.service import Orchestrator
from bot_bottle.orchestrator.secret_store import new_env_var_secret
from bot_bottle.store_manager import StoreManager
from bot_bottle.store.store_manager import StoreManager
from bot_bottle.supervise import (
Proposal,
STATUS_APPROVED,
+2 -2
View File
@@ -10,8 +10,8 @@ from pathlib import Path
from bot_bottle import supervise
from bot_bottle.paths import host_db_path
from tests.unit import use_bottle_root
from bot_bottle.audit_store import AuditStore
from bot_bottle.queue_store import QueueStore
from bot_bottle.store.audit_store import AuditStore
from bot_bottle.store.queue_store import QueueStore
from bot_bottle.supervise import (
AuditEntry,
Proposal,
+2 -2
View File
@@ -11,9 +11,9 @@ from pathlib import Path
from unittest.mock import patch
from bot_bottle import supervise
from bot_bottle.audit_store import AuditStore
from bot_bottle.store.audit_store import AuditStore
from bot_bottle.paths import bot_bottle_root
from bot_bottle.queue_store import QueueStore
from bot_bottle.store.queue_store import QueueStore
from bot_bottle.supervise import (
AuditEntry,
Proposal,
+2 -2
View File
@@ -19,8 +19,8 @@ from pathlib import Path
from tests.unit import use_bottle_root
from bot_bottle import supervise as _sv
from bot_bottle import queue_store as _qs
from bot_bottle import audit_store as _as
from bot_bottle.store import queue_store as _qs
from bot_bottle.store import audit_store as _as
from bot_bottle import supervise_server # noqa: E402
from bot_bottle.supervise_server import (