Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Chronicle
# Chronicle (fork from https://github.com/chronicler-ai/chronicle)

Self-hostable AI system that captures audio/video data from OMI devices and other sources to generate memories, action items, and contextual insights about your conversations and daily interactions.

Expand Down
15 changes: 15 additions & 0 deletions backends/advanced/src/advanced_omi_backend/app_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
from advanced_omi_backend.routers.modules.websocket_routes import router as websocket_router
from advanced_omi_backend.services.audio_service import get_audio_stream_service
from advanced_omi_backend.task_manager import init_task_manager, get_task_manager
from advanced_omi_backend.services.mcp_server import setup_mcp_server

logger = logging.getLogger(__name__)
application_logger = logging.getLogger("audio_processing")
Expand Down Expand Up @@ -66,6 +67,16 @@ async def lifespan(app: FastAPI):
application_logger.error(f"Failed to initialize Beanie: {e}")
raise

# Initialize settings manager
try:
from advanced_omi_backend.settings_manager import init_settings_manager
settings_mgr = init_settings_manager(config.db)
await settings_mgr.initialize()
application_logger.info("✅ Settings manager initialized and loaded from environment/database")
except Exception as e:
application_logger.error(f"Failed to initialize settings manager: {e}")
# Don't raise - use fallback to environment variables if settings manager fails

# Create admin user if needed
try:
await create_admin_user_if_needed()
Expand Down Expand Up @@ -205,6 +216,10 @@ def create_app() -> FastAPI:
tags=["users"],
)

# Setup MCP server for conversation access
setup_mcp_server(app)
logger.info("MCP server configured for conversation access")

# Mount static files LAST (mounts are catch-all patterns)
CHUNK_DIR = Path("/app/audio_chunks")
app.mount("/audio", StaticFiles(directory=CHUNK_DIR), name="audio")
Expand Down
5 changes: 5 additions & 0 deletions backends/advanced/src/advanced_omi_backend/models/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ class UserRead(BaseUser[PydanticObjectId]):
display_name: Optional[str] = None
registered_clients: dict[str, dict] = Field(default_factory=dict)
primary_speakers: list[dict] = Field(default_factory=list)
api_key: Optional[str] = None
api_key_created_at: Optional[datetime] = None


class UserUpdate(BaseUserUpdate):
Expand Down Expand Up @@ -62,6 +64,9 @@ class User(BeanieBaseUser, Document):
registered_clients: dict[str, dict] = Field(default_factory=dict)
# Speaker processing filter configuration
primary_speakers: list[dict] = Field(default_factory=list)
# API key for MCP access
api_key: Optional[str] = None
api_key_created_at: Optional[datetime] = None

class Settings:
name = "users" # Collection name in MongoDB - standardized from "fastapi_users"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
conversation_router,
memory_router,
queue_router,
settings_router,
system_router,
user_router,
)
Expand All @@ -34,6 +35,7 @@
router.include_router(client_router)
router.include_router(conversation_router)
router.include_router(memory_router)
router.include_router(settings_router)
router.include_router(system_router)
router.include_router(queue_router)
router.include_router(health_router) # Also include under /api for frontend compatibility
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- audio_routes: Audio file uploads and processing
- health_routes: Health check endpoints
- websocket_routes: WebSocket connection handling
- settings_routes: Application settings management
"""

from .audio_routes import router as audio_router
Expand All @@ -21,6 +22,7 @@
from .health_routes import router as health_router
from .memory_routes import router as memory_router
from .queue_routes import router as queue_router
from .settings_routes import router as settings_router
from .system_routes import router as system_router
from .user_routes import router as user_router
from .websocket_routes import router as websocket_router
Expand All @@ -33,6 +35,7 @@
"health_router",
"memory_router",
"queue_router",
"settings_router",
"system_router",
"user_router",
"websocket_router",
Expand Down
Loading
Loading