Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
9c38d40
moved memory and transcription to services
thestumonkey Nov 30, 2025
74d5482
Added support for mycelia
thestumonkey Dec 1, 2025
3791278
Fixed zombie jobs where a worker could get stuck
thestumonkey Dec 1, 2025
eb4df56
fixed delete for mycelia with needing user_id
thestumonkey Dec 1, 2025
224982e
removed friend or would be cicular
thestumonkey Dec 1, 2025
8e5612c
added temporal memopries
thestumonkey Dec 1, 2025
11b856e
added methods to memory service baseclass
thestumonkey Dec 3, 2025
0f51fce
added memory provider switch
thestumonkey Dec 3, 2025
d92dc21
added clickable memories
thestumonkey Dec 3, 2025
45add2e
added timeline views
thestumonkey Dec 3, 2025
33efa1a
Changed name to chronicle
thestumonkey Dec 5, 2025
4700f1b
Merge branch 'main' into name-change-merge
AnkushMalaker Dec 7, 2025
88d3df6
Changed name to chronicle
thestumonkey Dec 5, 2025
9439656
changed mobile app package to friend-lite for the moment
thestumonkey Dec 11, 2025
f2f4f1d
rabbit aI fixes
thestumonkey Dec 11, 2025
144c584
UPDATE: init with default model gpt-5-mini
01PrathamS Dec 8, 2025
b132561
Added changes from rabbitAI
thestumonkey Dec 9, 2025
9dfc9cb
applied changes from rabbitAI
thestumonkey Dec 9, 2025
96e4e19
added typescript dependancies
thestumonkey Dec 10, 2025
c2f8ab2
fixed tests
thestumonkey Dec 10, 2025
e12e477
use instance localstorage to get auth token
thestumonkey Dec 9, 2025
7be07d6
use db name and use memory userid
thestumonkey Dec 9, 2025
563b9dc
fixed tests and other tweaks
thestumonkey Dec 11, 2025
f233eb8
Changed name to chronicle
thestumonkey Dec 5, 2025
03f8c21
changed mobile app package to friend-lite for the moment
thestumonkey Dec 11, 2025
e44012d
rabbit aI fixes
thestumonkey Dec 11, 2025
e9d8f29
removed frappe-gantt and reverted the sass downgrade
thestumonkey Dec 16, 2025
efed01f
Used default values for jwt token timeout instead of hardcoding
thestumonkey Dec 16, 2025
cf1528c
added support for legacy memory provider names
thestumonkey Dec 16, 2025
c8f5a5d
added frappe-gantt back with upgraded lib
thestumonkey Dec 16, 2025
d2ced7e
fixed issue with env vars in test
thestumonkey Dec 16, 2025
49323e7
Merge branch 'namechange' of https://github.com/chronicler-ai/chronic…
thestumonkey Dec 16, 2025
bc6911f
added mongodb_database to .env.template
thestumonkey Dec 16, 2025
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
16 changes: 8 additions & 8 deletions .env.template
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# ========================================
# FRIEND-LITE MASTER CONFIGURATION
# CHRONICLE MASTER CONFIGURATION
# ========================================
# This is the master configuration template for the entire Friend-Lite project.
# This is the master configuration template for the entire Chronicle project.
# Copy this file to .env and customize values, then run 'make config' to generate
# all service-specific configuration files.

Expand All @@ -11,7 +11,7 @@

# Infrastructure namespaces
INFRASTRUCTURE_NAMESPACE=infrastructure
APPLICATION_NAMESPACE=friend-lite
APPLICATION_NAMESPACE=chronicle

# Deployment mode: docker-compose, kubernetes, or distributed
DEPLOYMENT_MODE=docker-compose
Expand All @@ -24,7 +24,7 @@ CONTAINER_REGISTRY=localhost:32000
# ========================================

# Primary domain/IP for all services
# Examples: localhost, 192.168.1.100, friend-lite.example.com, 100.x.x.x (Tailscale)
# Examples: localhost, 192.168.1.100, chronicle.example.com, 100.x.x.x (Tailscale)
DOMAIN=localhost

# Service ports (Docker Compose mode)
Expand Down Expand Up @@ -105,7 +105,7 @@ PARAKEET_ASR_URL=http://host.docker.internal:8767

# MongoDB configuration
MONGODB_URI=mongodb://mongo:${MONGODB_PORT}
MONGODB_K8S_URI=mongodb://mongodb.${INFRASTRUCTURE_NAMESPACE}.svc.cluster.local:27017/friend-lite
MONGODB_K8S_URI=mongodb://mongodb.${INFRASTRUCTURE_NAMESPACE}.svc.cluster.local:27017/chronicle

# Qdrant configuration
QDRANT_BASE_URL=qdrant
Expand All @@ -120,12 +120,12 @@ NEO4J_PASSWORD=neo4j-password
# MEMORY PROVIDER CONFIGURATION
# ========================================

# Memory Provider: friend_lite or openmemory_mcp
MEMORY_PROVIDER=friend_lite
# Memory Provider: chronicle or openmemory_mcp
MEMORY_PROVIDER=chronicle

# OpenMemory MCP configuration (when MEMORY_PROVIDER=openmemory_mcp)
OPENMEMORY_MCP_URL=http://host.docker.internal:8765
OPENMEMORY_CLIENT_NAME=friend_lite
OPENMEMORY_CLIENT_NAME=chronicle
OPENMEMORY_USER_ID=openmemory
OPENMEMORY_TIMEOUT=30

Expand Down
26 changes: 13 additions & 13 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

## Project Overview

Friend-Lite is at the core an AI-powered personal system - various devices, including but not limited to wearables from OMI can be used for at the very least audio capture, speaker specific transcription, memory extraction and retrieval.
Chronicle is at the core an AI-powered personal system - various devices, including but not limited to wearables from OMI can be used for at the very least audio capture, speaker specific transcription, memory extraction and retrieval.
On top of that - it is being designed to support other services, that can help a user with these inputs such as reminders, action items, personal diagnosis etc.

This supports a comprehensive web dashboard for management.
Expand Down Expand Up @@ -147,7 +147,7 @@ docker compose up --build
- **Job Tracker**: Tracks pipeline jobs with stage events (audio → transcription → memory) and completion status
- **Task Management**: BackgroundTaskManager tracks all async tasks to prevent orphaned processes
- **Unified Transcription**: Deepgram/Mistral transcription with fallback to offline ASR services
- **Memory System**: Pluggable providers (Friend-Lite native or OpenMemory MCP)
- **Memory System**: Pluggable providers (Chronicle native or OpenMemory MCP)
- **Authentication**: Email-based login with MongoDB ObjectId user system
- **Client Management**: Auto-generated client IDs as `{user_id_suffix}-{device_name}`, centralized ClientManager
- **Data Storage**: MongoDB (`audio_chunks` collection for conversations), vector storage (Qdrant or OpenMemory)
Expand All @@ -161,7 +161,7 @@ Required:
- LLM Service: Memory extraction and action items (OpenAI or Ollama)

Recommended:
- Vector Storage: Qdrant (Friend-Lite provider) or OpenMemory MCP server
- Vector Storage: Qdrant (Chronicle provider) or OpenMemory MCP server
- Transcription: Deepgram, Mistral, or offline ASR services

Optional:
Expand All @@ -179,8 +179,8 @@ Optional:
4. **Speech-Driven Conversation Creation**: User-facing conversations only created when speech is detected
5. **Dual Storage System**: Audio sessions always stored in `audio_chunks`, conversations created in `conversations` collection only with speech
6. **Versioned Processing**: Transcript and memory versions tracked with active version pointers
7. **Memory Processing**: Pluggable providers (Friend-Lite native with individual facts or OpenMemory MCP delegation)
8. **Memory Storage**: Direct Qdrant (Friend-Lite) or OpenMemory server (MCP provider)
7. **Memory Processing**: Pluggable providers (Chronicle native with individual facts or OpenMemory MCP delegation)
8. **Memory Storage**: Direct Qdrant (Chronicle) or OpenMemory server (MCP provider)
9. **Action Items**: Automatic task detection with "Simon says" trigger phrases
10. **Audio Optimization**: Speech segment extraction removes silence automatically
11. **Task Tracking**: BackgroundTaskManager ensures proper cleanup of all async operations
Expand Down Expand Up @@ -230,11 +230,11 @@ DEEPGRAM_API_KEY=your-deepgram-key-here
# Optional: TRANSCRIPTION_PROVIDER=deepgram

# Memory Provider
MEMORY_PROVIDER=friend_lite # or openmemory_mcp
MEMORY_PROVIDER=chronicle # or openmemory_mcp

# Database
MONGODB_URI=mongodb://mongo:27017
# Database name: friend-lite
# Database name: chronicle
QDRANT_BASE_URL=qdrant

# Network Configuration
Expand All @@ -246,12 +246,12 @@ CORS_ORIGINS=http://localhost:3000,http://localhost:5173

### Memory Provider Configuration

Friend-Lite supports two pluggable memory backends:
Chronicle supports two pluggable memory backends:

#### Friend-Lite Memory Provider (Default)
#### Chronicle Memory Provider (Default)
```bash
# Use Friend-Lite memory provider (default)
MEMORY_PROVIDER=friend_lite
# Use Chronicle memory provider (default)
MEMORY_PROVIDER=chronicle

# LLM Configuration for memory extraction
LLM_PROVIDER=openai
Expand All @@ -269,7 +269,7 @@ MEMORY_PROVIDER=openmemory_mcp

# OpenMemory MCP Server Configuration
OPENMEMORY_MCP_URL=http://host.docker.internal:8765
OPENMEMORY_CLIENT_NAME=friend_lite
OPENMEMORY_CLIENT_NAME=chronicle
OPENMEMORY_USER_ID=openmemory
OPENMEMORY_TIMEOUT=30

Expand All @@ -279,7 +279,7 @@ OPENAI_API_KEY=your-openai-key-here

### Transcription Provider Configuration

Friend-Lite supports multiple transcription services:
Chronicle supports multiple transcription services:

```bash
# Option 1: Deepgram (High quality, recommended)
Expand Down
10 changes: 5 additions & 5 deletions Docs/features.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Friend-Lite Features & Architecture
# Chronicle Features & Architecture

## Core Features

Friend-Lite supports AI-powered personal systems through multiple OMI-compatible audio devices:
Chronicle supports AI-powered personal systems through multiple OMI-compatible audio devices:

**Memory System:**
- **Advanced memory system** with pluggable providers (Friend-Lite native or OpenMemory MCP)
- **Advanced memory system** with pluggable providers (Chronicle native or OpenMemory MCP)
- **Memory extraction** from conversations with individual fact storage
- **Semantic memory search** with relevance threshold filtering and live results
- **Memory count display** with total count tracking from native providers
Expand Down Expand Up @@ -38,7 +38,7 @@ DevKit2 streams audio via Bluetooth using OPUS codec. The processing pipeline in

**AI Processing:**
- LLM-based conversation analysis (OpenAI or local Ollama)
- **Dual memory system**: Friend-Lite native or OpenMemory MCP integration
- **Dual memory system**: Chronicle native or OpenMemory MCP integration
- Enhanced memory extraction with individual fact storage
- **Semantic search** with relevance scoring and threshold filtering
- Smart deduplication and memory updates (ADD/UPDATE/DELETE)
Expand Down Expand Up @@ -87,7 +87,7 @@ Choose one based on your needs:

**Features:**
- Audio processing pipeline with real-time WebSocket support
- **Pluggable memory system**: Choose between Friend-Lite native or OpenMemory MCP
- **Pluggable memory system**: Choose between Chronicle native or OpenMemory MCP
- Enhanced memory extraction with individual fact storage (no generic fallbacks)
- **Semantic memory search** with relevance threshold filtering and total count display
- **Speaker-based memory filtering**: Optional control over processing based on participant presence
Expand Down
32 changes: 16 additions & 16 deletions Docs/getting-started.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Getting Started

# Friend-Lite Backend Quickstart Guide
# Chronicle Backend Quickstart Guide

> 📖 **New to friend-lite?** This is your starting point! After reading this, continue with [architecture.md](./architecture.md) for technical details.
> 📖 **New to chronicle?** This is your starting point! After reading this, continue with [architecture.md](./architecture.md) for technical details.

## Overview

Friend-Lite is an eco-system of services to support "AI wearable" agents/functionality.
Chronicle is an eco-system of services to support "AI wearable" agents/functionality.
At the moment, the basic functionalities are:
- Audio capture (via WebSocket, from OMI device, files, or a laptop)
- Audio transcription
- **Advanced memory system** with pluggable providers (Friend-Lite native or OpenMemory MCP)
- **Advanced memory system** with pluggable providers (Chronicle native or OpenMemory MCP)
- **Enhanced memory extraction** with individual fact storage and smart updates
- **Semantic memory search** with relevance threshold filtering and live results
- Action item extraction
Expand Down Expand Up @@ -38,13 +38,13 @@ cd backends/advanced
- **Authentication**: Admin email/password setup
- **Transcription Provider**: Choose Deepgram, Mistral, or Offline (Parakeet)
- **LLM Provider**: Choose OpenAI or Ollama for memory extraction
- **Memory Provider**: Choose Friend-Lite Native or OpenMemory MCP
- **Memory Provider**: Choose Chronicle Native or OpenMemory MCP
- **Optional Services**: Speaker Recognition and other extras
- **Network Configuration**: Ports and host settings

**Example flow:**
```
🚀 Friend-Lite Interactive Setup
🚀 Chronicle Interactive Setup
===============================================

► Authentication Setup
Expand Down Expand Up @@ -126,13 +126,13 @@ ADMIN_EMAIL=admin@example.com
**Memory Provider Configuration:**
```bash
# Memory Provider (Choose One)
# Option 1: Friend-Lite Native (Default - Recommended)
MEMORY_PROVIDER=friend_lite
# Option 1: Chronicle Native (Default - Recommended)
MEMORY_PROVIDER=chronicle

# Option 2: OpenMemory MCP (Cross-client compatibility)
# MEMORY_PROVIDER=openmemory_mcp
# OPENMEMORY_MCP_URL=http://host.docker.internal:8765
# OPENMEMORY_CLIENT_NAME=friend_lite
# OPENMEMORY_CLIENT_NAME=chronicle
# OPENMEMORY_USER_ID=openmemory
```

Expand Down Expand Up @@ -325,8 +325,8 @@ curl -X POST "http://localhost:8000/api/process-audio-files" \
### Memory & Intelligence

#### Pluggable Memory System
- **Two memory providers**: Choose between Friend-Lite native or OpenMemory MCP
- **Friend-Lite Provider**: Full control with custom extraction, individual fact storage, smart deduplication
- **Two memory providers**: Choose between Chronicle native or OpenMemory MCP
- **Chronicle Provider**: Full control with custom extraction, individual fact storage, smart deduplication
- **OpenMemory MCP Provider**: Cross-client compatibility (Claude Desktop, Cursor, Windsurf), professional processing

#### Enhanced Memory Processing
Expand Down Expand Up @@ -482,7 +482,7 @@ tailscale ip -4

## Data Architecture

The friend-lite backend uses a **user-centric data architecture**:
The chronicle backend uses a **user-centric data architecture**:

- **All memories are keyed by database user_id** (not client_id)
- **Client information is stored in metadata** for reference and debugging
Expand All @@ -495,12 +495,12 @@ For detailed information, see [User Data Architecture](user-data-architecture.md

### Choosing a Memory Provider

Friend-Lite offers two memory backends:
Chronicle offers two memory backends:

#### 1. Friend-Lite Native
#### 1. Chronicle Native
```bash
# In your .env file
MEMORY_PROVIDER=friend_lite
MEMORY_PROVIDER=chronicle
LLM_PROVIDER=openai
OPENAI_API_KEY=your-openai-key-here
```
Expand All @@ -519,7 +519,7 @@ OPENAI_API_KEY=your-openai-key-here
cd extras/openmemory-mcp
docker compose up -d

# Then configure Friend-Lite
# Then configure Chronicle
MEMORY_PROVIDER=openmemory_mcp
OPENMEMORY_MCP_URL=http://host.docker.internal:8765
```
Expand Down
8 changes: 4 additions & 4 deletions Docs/init-system.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Friend-Lite Initialization System
# Chronicle Initialization System

## Quick Links

Expand All @@ -10,14 +10,14 @@

## Overview

Friend-Lite uses a unified initialization system with clean separation of concerns:
Chronicle uses a unified initialization system with clean separation of concerns:

- **Configuration** (`wizard.py`) - Set up service configurations, API keys, and .env files
- **Service Management** (`services.py`) - Start, stop, and manage running services

The root orchestrator handles service selection and delegates configuration to individual service scripts. In general, setup scripts only configure and do not start services automatically. Exceptions: `extras/asr-services` and `extras/openmemory-mcp` are startup scripts. This prevents unnecessary resource usage and gives you control over when services actually run.

> **New to Friend-Lite?** Most users should start with the [Quick Start Guide](../quickstart.md) instead of this detailed reference.
> **New to Chronicle?** Most users should start with the [Quick Start Guide](../quickstart.md) instead of this detailed reference.

## Architecture

Expand Down Expand Up @@ -133,7 +133,7 @@ Services use `host.docker.internal` for inter-container communication:

## Service Management

Friend-Lite now separates **configuration** from **service lifecycle management**:
Chronicle now separates **configuration** from **service lifecycle management**:

### Unified Service Management
Use the `services.py` script for all service operations:
Expand Down
4 changes: 2 additions & 2 deletions Docs/ports-and-access.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Friend-Lite Port Configuration & User Journey
# Chronicle Port Configuration & User Journey

## User Journey: Git Clone to Running Services

### 1. Clone & Setup
```bash
git clone <repo>
cd friend-lite
cd chronicle

# Configure all services
uv run --with-requirements setup-requirements.txt python init.py
Expand Down
Loading
Loading