Skip to content

Commit 0ed4e47

Browse files
author
Murtaza Nsair
committed
v0.1.5-alpha: Major documentation overhaul, async backend migration, 50+ bug fixes
- Complete documentation restructure with example reports from 7 models - Full async backend migration for 2-3x performance improvement - Fixed mission resume/recovery capabilities - Enhanced UI/UX with LaTeX support - Removed evaluation folder from tracking - Updated to PostgreSQL-only architecture
1 parent d8077e3 commit 0ed4e47

File tree

233 files changed

+38997
-9225
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+38997
-9225
lines changed

.env.example

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,46 @@ CORS_ALLOWED_ORIGINS=*
8989
# Development mode flag - allows wildcard CORS when true
9090
ALLOW_CORS_WILDCARD=true
9191

92-
# Worker and performance settings
93-
MAX_WORKER_THREADS=10
92+
# =============================================================================
93+
# CONCURRENCY AND PERFORMANCE SETTINGS
94+
# =============================================================================
95+
# These settings control different types of parallel operations:
96+
#
97+
# 1. MAX_WORKER_THREADS: General background tasks (NOT for LLM calls)
98+
# - Web page fetching, document processing, file operations
99+
#
100+
# 2. GLOBAL_MAX_CONCURRENT_LLM_REQUESTS: System-wide LLM API limit
101+
# - Total concurrent LLM calls across ALL users/sessions
102+
#
103+
# 3. MAX_CONCURRENT_REQUESTS: Per-session LLM API limit
104+
# - How many LLM calls one research session can make
105+
# - Users can override this in UI settings
106+
#
107+
# 4. Web Search: Always limited to 2 concurrent (hardcoded)
108+
# =============================================================================
109+
110+
# General purpose thread pool for background tasks
111+
# Controls: Web scraping, document processing, file operations
112+
# Does NOT control: LLM API calls (those use separate limits below)
113+
# Default: 20, Recommended: 10-50 depending on CPU cores and RAM
114+
MAX_WORKER_THREADS=20
115+
116+
# System-wide limit for concurrent LLM API calls
117+
# This is the maximum across ALL users and research sessions combined
118+
# Example: If set to 200, and you have 10 users each wanting 50 concurrent
119+
# requests, only 200 total will run at once
120+
# Default: 200, Recommended: 50-500 depending on your LLM provider
121+
GLOBAL_MAX_CONCURRENT_LLM_REQUESTS=200
122+
123+
# Per-session limit for concurrent LLM API calls
124+
# This is a FALLBACK - users typically set this in the UI
125+
# Settings > Research > Performance > Concurrent Requests
126+
# Precedence: Mission settings > User UI settings > This env var > Default (10)
127+
# Default: 10, Recommended: 10-50 per session
128+
MAX_CONCURRENT_REQUESTS=10
129+
130+
# Note: Web search APIs (Tavily, Jina, etc.) are hardcoded to 2 concurrent
131+
# requests to avoid rate limiting from search providers
94132

95133
# Timezone configuration
96134
# Use your local timezone (e.g., America/New_York, Europe/London, Asia/Tokyo)

.github/workflows/docs.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'docs/**'
9+
- 'mkdocs.yml'
10+
- '.github/workflows/docs.yml'
11+
pull_request:
12+
branches:
13+
- main
14+
paths:
15+
- 'docs/**'
16+
- 'mkdocs.yml'
17+
workflow_dispatch:
18+
19+
permissions:
20+
contents: read
21+
pages: write
22+
id-token: write
23+
24+
concurrency:
25+
group: "pages"
26+
cancel-in-progress: false
27+
28+
jobs:
29+
build:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: Checkout repository
33+
uses: actions/checkout@v4
34+
with:
35+
fetch-depth: 0 # Fetch all history for git revision date plugin
36+
37+
- name: Setup Python
38+
uses: actions/setup-python@v5
39+
with:
40+
python-version: '3.11'
41+
cache: 'pip'
42+
43+
- name: Install MkDocs and dependencies
44+
run: |
45+
pip install --upgrade pip
46+
pip install mkdocs-material
47+
pip install mkdocs-minify-plugin
48+
pip install mkdocs-git-revision-date-localized-plugin
49+
pip install mike
50+
pip install mkdocs-mermaid2-plugin
51+
52+
- name: Build documentation
53+
run: mkdocs build --verbose --clean --strict
54+
55+
- name: Upload artifact
56+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
57+
uses: actions/upload-pages-artifact@v3
58+
with:
59+
path: ./site
60+
61+
deploy:
62+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
63+
environment:
64+
name: github-pages
65+
url: ${{ steps.deployment.outputs.page_url }}
66+
runs-on: ubuntu-latest
67+
needs: build
68+
steps:
69+
- name: Deploy to GitHub Pages
70+
id: deployment
71+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
*.log
1414
docker-logs.txt
1515

16+
# Release notes (not for version control)
17+
release-notes/
18+
19+
# Evaluation folder (local testing only)
20+
evaluation/
21+
1622
# =============================================================================
1723
# PYTHON
1824
# =============================================================================
@@ -410,7 +416,6 @@ htmlcov/
410416
.pytest_cache/
411417
.tox/
412418
pdfs*/
413-
docs/
414419
# =============================================================================
415420
# STREAMLIT & EVALUATION
416421
# =============================================================================
@@ -434,7 +439,7 @@ docs/
434439
# =============================================================================
435440
.claude/
436441
CLAUDE.md
437-
docs/*
442+
own_docs/*
438443
notes.md
439444
WEBSOCKET_REWRITE_TODO.md
440445
# Temporary test files

.streamlit/config.toml

Lines changed: 0 additions & 12 deletions
This file was deleted.

CPU_MODE_SETUP.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This guide explains how to configure Maestro to run in CPU-only mode, which is p
2222

2323
3. **Start the application**:
2424
```bash
25-
docker-compose up -d
25+
docker compose up -d
2626
```
2727

2828
### Method 2: Using CPU-Only Docker Compose
@@ -31,7 +31,7 @@ We provide a dedicated CPU-only Docker Compose configuration that doesn't requir
3131

3232
```bash
3333
# Use the CPU-only configuration
34-
docker-compose -f docker-compose.cpu.yml up -d
34+
docker compose -f docker-compose.cpu.yml up -d
3535
```
3636

3737
This configuration automatically sets `FORCE_CPU_MODE=true` and removes all GPU-related settings.
@@ -137,7 +137,7 @@ MAX_CONCURRENT_REQUESTS=1
137137

138138
**Solution**: Use the CPU-only Docker Compose file:
139139
```bash
140-
docker-compose -f docker-compose.cpu.yml up -d
140+
docker compose -f docker-compose.cpu.yml up -d
141141
```
142142

143143
## Community Contributions

README.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,33 @@
55
# MAESTRO: Your Self-Hosted AI Research Assistant
66

77
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
8-
[![Version](https://img.shields.io/badge/Version-2.1.0-green.svg)](https://github.com/murtaza-nasir/maestro.git)
8+
[![Version](https://img.shields.io/badge/Version-0.1.5--alpha-green.svg)](https://github.com/murtaza-nasir/maestro.git)
99
[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://hub.docker.com/r/yourusername/maestro)
10+
[![Documentation](https://img.shields.io/badge/Docs-Available-brightgreen.svg)](https://yourusername.github.io/maestro/)
1011

11-
> **Version 0.1.4 Update (08/20/2025)**
12+
> **Version 0.1.5-alpha (January 2025) - Major Update**
1213
>
13-
> - **New**: Jina.ai integration for web search and content fetching
14-
> - **Improved**: Search queries now expand vague references automatically
15-
> - **Enhanced**: Better handling of JavaScript-heavy sites with Jina fetcher but will be slower
14+
> - **Performance**: Complete async backend migration (2-3x faster)
15+
> - **Stability**: 50+ bug fixes and mission recovery improvements
16+
> - **Documentation**: Complete overhaul with example reports and guides
17+
> - **UI/UX**: Enhanced interface with LaTeX support and better navigation
18+
> - **[Full Release Notes](RELEASE_NOTES_v0.1.5-alpha.md)** | **[Documentation](https://yourusername.github.io/maestro/)**
1619
>
17-
> **⚠️ Version 0.1.3 - BREAKING CHANGE (08/15/2025)**
18-
>
19-
> Complete migration from SQLite/ChromaDB to PostgreSQL with pgvector.
20-
> - **Action Required**: If upgrading, you must rebuild from scratch with `docker compose down -v`
21-
> - **New Requirements**: PostgreSQL with pgvector extension (included in Docker setup)
22-
> - **Security**: All credentials now configurable via environment variables
20+
> **Breaking Change**: PostgreSQL with pgvector is required (SQLite no longer supported)
21+
22+
MAESTRO is an AI-powered research platform you can host on your own hardware. It's designed to manage complex research tasks from start to finish in a collaborative research environment. Plan your research, let AI agents carry it out, and watch as they generate detailed reports based on your documents and sources from the web.
23+
24+
## Documentation
25+
26+
**[View Full Documentation](https://yourusername.github.io/maestro/)**
2327

24-
MAESTRO is an AI-powered research platform you can host on your own hardware. It's designed to manage complex research tasks from start to finish in a collaborative, multi-user environment. Plan your research, let AI agents carry it out, and watch as they generate detailed reports based on your documents and sources from the web.
28+
### Quick Links
29+
- **[Quick Start Guide](https://yourusername.github.io/maestro/getting-started/quickstart/)** - Get up and running in minutes
30+
- **[Installation Guide](https://yourusername.github.io/maestro/getting-started/installation/)** - Detailed setup instructions
31+
- **[User Guide](https://yourusername.github.io/maestro/user-guide/)** - Learn all features
32+
- **[Configuration](https://yourusername.github.io/maestro/getting-started/configuration/overview/)** - Set up AI providers
33+
- **[Example Reports](https://yourusername.github.io/maestro/example-reports/)** - See what MAESTRO can do
34+
- **[Troubleshooting](https://yourusername.github.io/maestro/troubleshooting/)** - Common issues and solutions
2535

2636
<p align="center">
2737
<img src="images/10-research-draft.png" alt="Final Draft" width="700"/>
@@ -242,7 +252,7 @@ docker compose up -d
242252
**⚠️ First Run:** Initial startup takes 5-10 minutes to download AI models. Monitor progress with:
243253
```bash
244254
docker compose logs -f maestro-backend
245-
# Wait for: "Application startup complete"
255+
# Wait for: "MAESTRO Backend Started Successfully!"
246256
```
247257

248258
Access MAESTRO at **http://localhost**
@@ -291,7 +301,7 @@ Access MAESTRO at **http://localhost**
291301
docker compose logs -f maestro-backend
292302
293303
# Wait for this message:
294-
# "INFO: Application startup complete."
304+
# "MAESTRO Backend Started Successfully!"
295305
# or "Uvicorn running on http://0.0.0.0:8000"
296306
```
297307
@@ -343,7 +353,7 @@ Access MAESTRO at **http://localhost**
343353
docker compose logs -f maestro-backend
344354
345355
# Wait for this message:
346-
# "INFO: Application startup complete."
356+
# "MAESTRO Backend Started Successfully!"
347357
# or "Uvicorn running on http://0.0.0.0:8000"
348358
```
349359

TROUBLESHOOTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ docker compose -f docker-compose.cpu.yml down
7171
docker compose logs -f maestro-backend
7272

7373
# Wait for this message:
74-
# "INFO: Application startup complete."
74+
# "INFO: MAESTRO Backend Started Successfully!."
7575
```
7676

7777
---

detect_gpu.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ detect_gpu() {
1818
# Check for NVIDIA GPU on Linux/Windows
1919
if command -v nvidia-smi &> /dev/null; then
2020
# Check if nvidia-container-toolkit is installed
21-
if docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi &> /dev/null 2>&1; then
21+
if docker run --rm --gpus all nvidia/cuda:12.9.1-base-ubuntu24.04 nvidia-smi &> /dev/null 2>&1; then
2222
echo "nvidia"
2323
return
2424
fi

docker-compose.cpu.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -161,16 +161,9 @@ services:
161161

162162
volumes:
163163
postgres-data:
164-
driver: local
165164
maestro-data:
166-
driver: local
167-
driver_opts:
168-
type: none
169-
o: bind
170-
device: ./maestro_data
171165
# Uncomment if using local LLM
172166
# ollama-data:
173-
# driver: local
174167

175168
networks:
176169
maestro-network:

docker-compose.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,12 @@ services:
5252
- ./maestro_datalab_cache:/root/.cache/datalab
5353
- ./reports:/app/reports
5454
- ./maestro_backend/data:/app/data
55-
# Backend is now only accessible through nginx, not directly exposed
56-
# ports:
57-
# - "${BACKEND_HOST}:${BACKEND_PORT}:${BACKEND_INTERNAL_PORT}"
5855
working_dir: /app
5956
environment:
57+
- DEBUG_MESSENGER=true
58+
- MESSENGER_SIMPLE_PROMPT=true
59+
- DEBUG_PLANNING=true
60+
- DEBUG_REFLECTION=true
6061
- MAX_WORKER_THREADS=${MAX_WORKER_THREADS:-10}
6162
- TZ=${TZ:-UTC}
6263
- LOG_LEVEL=${LOG_LEVEL:-ERROR}
@@ -195,8 +196,6 @@ services:
195196
volumes:
196197
postgres-data:
197198
maestro-data:
198-
maestro-models: # New volume for models
199-
# ollama-data:
200199

201200
networks:
202201
maestro-network:

0 commit comments

Comments
 (0)