Commit Graph

470 Commits

Author SHA1 Message Date
Luis Novo 959eef5e91
Merge pull request #407 from lfnovo/ci/remove-single-build-from-dev
ci: remove single-container build from dev workflow
2026-01-09 20:54:19 -03:00
LUIS NOVO fc872ff6e3 ci: remove single-container build from dev workflow
Reduces CI time by only building the multi-container Dockerfile
during pull requests. The single-container build is still available
in the production build-and-release workflow.
2026-01-09 20:53:32 -03:00
Luis Novo 478ca299d1
Merge pull request #406 from lfnovo/fix/next-config-typescript-types
fix: add type assertion for experimental proxyClientMaxBodySize config
2026-01-09 20:50:56 -03:00
LUIS NOVO cb525148e3 fix: add type assertion for experimental proxyClientMaxBodySize config
Next.js 15 accepts proxyClientMaxBodySize at runtime but TypeScript types
for ExperimentalConfig don't include it yet, causing build failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 20:44:43 -03:00
Luis Novo 8d6d615f2f
Merge pull request #405 from lfnovo/fix/nextjs-proxy-body-size-limit
fix: increase Next.js proxy body size limit for file uploads
2026-01-09 20:24:46 -03:00
LUIS NOVO 6593ab561a fix: increase Next.js proxy body size limit for file uploads
Increase the proxyClientMaxBodySize from 10MB (default) to 100MB to allow
larger files to be uploaded through the /api/* rewrite proxy to FastAPI.

Fixes #361
2026-01-09 20:18:06 -03:00
Luis Novo 24730cf757
Merge pull request #403 from lfnovo/add-claude-github-actions-1767999881072
Add Claude Code GitHub Workflow
2026-01-09 20:09:32 -03:00
Luis Novo bdfdc9eecd
Merge pull request #404 from lfnovo/fix/cors-headers-on-error-responses
fix: add CORS headers to error responses and document file upload limits
2026-01-09 20:09:04 -03:00
LUIS NOVO 52177f7546 fix: add CORS headers to error responses and document file upload limits
- Added custom exception handler to ensure CORS headers are included in
  all HTTP error responses from the API
- Added documentation for 413 (Payload Too Large) errors when behind
  reverse proxies (nginx, traefik, kubernetes ingress)
- Added client_max_body_size to nginx configuration examples
- Documented how to configure CORS headers for proxy-level error responses

Fixes #401
2026-01-09 20:08:13 -03:00
Luis Novo b045694992
Merge pull request #400 from lfnovo/fix/surrealdb-persistent-storage
fix: use persistent rocksdb storage instead of memory in docker-compose docs
2026-01-09 20:06:16 -03:00
Luis Novo 62730a9486
Merge pull request #402 from lfnovo/fix/model-duplicate-check-include-type
fix: include type in model duplicate check
2026-01-09 20:05:12 -03:00
Luis Novo c22ef5a6e1 "Update Claude Code Review workflow" 2026-01-09 20:04:43 -03:00
Luis Novo f8fcffa4b6 "Update Claude PR Assistant workflow" 2026-01-09 20:04:42 -03:00
LUIS NOVO 3c053c6eed fix: include type in model duplicate check
The model uniqueness constraint now considers (provider, name, type)
instead of just (provider, name). This allows users to add the same
model name for different purposes (e.g., language vs embedding).

Fixes #391
2026-01-09 20:00:20 -03:00
LUIS NOVO fd03122aa3 fix: use persistent rocksdb storage instead of memory in docker-compose docs
Changed SurrealDB configuration from in-memory storage to RocksDB with
bind mounts for data persistence. Users' data will now survive container
restarts.

Fixes #398
2026-01-09 19:47:47 -03:00
Luis Novo b8203db380
Merge pull request #396 from lfnovo/pr-346-mcp-integration
feat: add MCP integration documentation
2026-01-09 08:17:27 -03:00
Piotr Mrzygłowski 879e41a180 feat: add MCP integration documentation to README and create dedicated MCP integration guide 2026-01-09 08:14:39 -03:00
Luis Novo 76827af53f
Merge pull request #395 from lfnovo/docs/add-pull-policy-always
docs: add pull_policy always to docker-compose examples
2026-01-09 08:00:20 -03:00
LUIS NOVO fb6dd01111 docs: add pull_policy always to docker-compose examples
Add pull_policy: always to all open_notebook service definitions
in docker-compose examples across documentation. This ensures
Docker always checks for and pulls newer images when running
docker compose up.

Closes #393
2026-01-09 07:57:25 -03:00
Luis Novo 2f98665676
Merge pull request #386 from jonigl/docs/fix-readme-assets
docs: fix removed assets in PR #379 affecting README.md
2026-01-09 07:54:34 -03:00
Luis Novo 6e5a856c99
Merge pull request #387 from M-Amrollahi/main
Update Doc for docker compose
2026-01-09 07:53:41 -03:00
Luis Novo 06b07df684
Merge pull request #394 from lfnovo/chore/remove-unused-addbutton
chore: remove unused AddButton component
2026-01-08 16:07:56 -03:00
LUIS NOVO c15a563f26 chore: remove outdated new_docs folder
The new_docs folder contained stale documentation that was superseded
by the updated docs/ folder. The docs/ version has:
- LM Studio alternative instructions
- Updated architecture (single container, port 8502)
2026-01-08 16:02:52 -03:00
LUIS NOVO a41703fbac chore: remove unused AddButton component
The AddButton component was never imported or used anywhere in the
application. Notebook creation is already implemented and working via:
- "New Notebook" button on the notebooks page
- "Create" button in the sidebar
- "Create Notebook" command in the command palette

Closes #390
2026-01-08 15:56:26 -03:00
Mahdi Amrollahi 31d4a0c84f
Merge pull request #1 from M-Amrollahi/M-Amrollahi-patch-1
Clarify Ollama API base URL in docker-compose.md
2026-01-06 20:48:43 -05:00
Mahdi Amrollahi 7a4ade612a
Clarify Ollama API base URL in docker-compose.md
Updated references to Ollama API base URL in documentation.
2026-01-06 17:21:40 -05:00
Jonathan Gastón Löwenstern 7252c05d33 docs: fix removed assets in https://github.com/lfnovo/open-notebook/pull/379 affecting README.md 2026-01-06 15:07:58 +01:00
Luis Novo e69485bb72
Merge pull request #382 from thesohamdatta/fix/remove-debug-logging-prefixes
Remove debug prefixes from production error logging
2026-01-05 17:14:57 -03:00
Luis Novo 3695d6d475
Merge pull request #380 from lfnovo/fix/reduce-retry-log-noise
fix: reduce retry log noise during concurrent chunk processing
2026-01-05 17:14:25 -03:00
Soham Datta ddfb754b48 Remove debug prefixes from production error logging 2026-01-05 22:22:34 +05:30
LUIS NOVO 48e2800211 fix: reduce retry log noise during concurrent chunk processing
Addresses issue #362 - users were seeing hundreds of ERROR/WARNING logs
when processing large documents due to SurrealDB v2 transaction conflicts
during concurrent chunk embedding operations.

Changes:
- Upgraded to surreal-commands v1.3.0 which includes retry_log_level feature
- Increased retry attempts from 5 to 15 with max wait time 120s (from 30s)
  to handle deep queues during concurrent processing
- Set retry_log_level to "debug" in embed_chunk and process_source commands
- Changed repository.py RuntimeError logging from ERROR to DEBUG level
- Updated command exception handlers to log retries at DEBUG level
- Updated documentation to reflect retry strategy

This is a temporary workaround for SurrealDB v2.x transaction conflict
issues with SEARCH indexes. Settings can be reduced after migrating to
SurrealDB v3 which fixes the underlying concurrency issue.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 11:30:55 -03:00
Luis Novo b76af505b2
Merge pull request #379 from lfnovo/refactor/folder-reorg
refactor: Major codebase reorganization and documentation overhaul
2026-01-05 08:38:34 -03:00
LUIS NOVO b1bd522c5c feat: improve dev commands, update all langchain dependencies to their latest major versions 2026-01-05 08:22:41 -03:00
LUIS NOVO 77feff344f chore: bump 2026-01-04 11:44:58 -03:00
LUIS NOVO 472d0e47c3 docs: Lots of documentation improvements 2026-01-04 11:42:13 -03:00
LUIS NOVO ea7a41077b docs: update all database examples for more clarity and better database names. 2026-01-04 09:23:15 -03:00
LUIS NOVO 655d164fa0 docs: update quick start guides and core concepts for clarity and accuracy 2026-01-04 09:09:20 -03:00
LUIS NOVO e13e4a2d8b docs: restructure documentation with new organized layout
- Replace old docs structure with new comprehensive documentation
- Organize into 8 major sections (0-START-HERE through 7-DEVELOPMENT)
- Convert CONFIGURATION.md, CONTRIBUTING.md, MAINTAINER_GUIDE.md to redirects
- Remove outdated MIGRATION.md and DESIGN_PRINCIPLES.md
- Fix all internal documentation links and cross-references
- Add progressive disclosure paths for different user types
- Include 44 focused guides covering all features
- Update README.md to remove v1.0 breaking changes notice
2026-01-03 20:10:24 -03:00
LUIS NOVO 71b8d13b24 docs: generate comprehensive CLAUDE.md reference documentation across codebase
Create a hierarchical CLAUDE.md documentation system for the entire Open Notebook
codebase with focus on concise, pattern-driven reference cards rather than
comprehensive tutorials.

## Changes

### Core Documentation System
- Updated `.claude/commands/build-claude-md.md` to distinguish between leaf and
  parent modules, with special handling for prompt/template modules
- Established clear patterns:
  * Leaf modules (40-70 lines): Components, hooks, API clients
  * Parent modules (50-150 lines): Architecture, cross-layer patterns, data flows
  * Template modules: Pattern focus, not catalog listings

### Generated Documentation
Created 15 CLAUDE.md reference files across the project:

**Frontend (React/Next.js)**
- frontend/src/CLAUDE.md: Architecture overview, data flow, three-tier design
- frontend/src/lib/hooks/CLAUDE.md: React Query patterns, state management
- frontend/src/lib/api/CLAUDE.md: Axios client, FormData handling, interceptors
- frontend/src/lib/stores/CLAUDE.md: Zustand state persistence, auth patterns
- frontend/src/components/ui/CLAUDE.md: Radix UI primitives, CVA styling

**Backend (Python/FastAPI)**
- open_notebook/CLAUDE.md: System architecture, layer interactions
- open_notebook/ai/CLAUDE.md: Model provisioning, Esperanto integration
- open_notebook/domain/CLAUDE.md: Data models, ObjectModel/RecordModel patterns
- open_notebook/database/CLAUDE.md: Repository pattern, async migrations
- open_notebook/graphs/CLAUDE.md: LangGraph workflows, async orchestration
- open_notebook/utils/CLAUDE.md: Cross-cutting utilities, context building
- open_notebook/podcasts/CLAUDE.md: Episode/speaker profiles, job tracking

**API & Other**
- api/CLAUDE.md: REST layer, service architecture
- commands/CLAUDE.md: Async command handlers, job queue patterns
- prompts/CLAUDE.md: Jinja2 templates, prompt engineering patterns (refactored)

**Project Root**
- CLAUDE.md: Project overview, three-tier architecture, tech stack, getting started

### Key Features
- Zero duplication: Parent modules reference child CLAUDE.md files, don't repeat them
- Pattern-focused: Emphasizes how components work together, not component catalogs
- Scannable: Short bullets, code examples only when necessary (1-2 per file)
- Practical: "How to extend" guides, quirks/gotchas for each module
- Navigation: Root CLAUDE.md acts as hub pointing to specialized documentation

### Cleanup
- Removed unused `batch_fix_services.py`
- Removed deprecated `open_notebook/plugins/podcasts.py`
- Updated .gitignore for documentation consistency

## Impact
New contributors can now:
1. Read root CLAUDE.md for system architecture (5 min)
2. Jump to specific layer documentation (frontend, api, open_notebook)
3. Dive into module-specific patterns in child CLAUDE.md files (1 min per module)
All documentation is lean, reference-focused, and avoids duplication.
2026-01-03 16:27:52 -03:00
LUIS NOVO ab5560c9a2 refactor: reorganize folder structure for better maintainability
Changes:
- Move migrations/ under open_notebook/database/migrations/
- Extract AI models to open_notebook/ai/ (Model, ModelManager, provision)
- Extract podcasts to open_notebook/podcasts/ (EpisodeProfile, SpeakerProfile, PodcastEpisode)
- Reorganize prompts to mirror graphs structure (chat/, source_chat/)

This improves code organization by:
- Consolidating database concerns (migrations now with database code)
- Separating AI infrastructure from domain entities
- Isolating podcast feature into its own module
- Creating consistent prompt/graph naming conventions

All 52 tests pass.
2026-01-03 14:04:27 -03:00
Luis Novo 93cda6c42a
Merge pull request #304 from xeader/fix/issue-271.2-ui-not-responsive
feat(notebooks): improve layout responsiveness
2025-12-20 10:18:22 -03:00
Luis Novo 040cfbad88
Merge pull request #343 from lfnovo/fix/note-editor-fullscreen-observer-optimization
fix(ui): optimize MutationObserver in NoteEditorDialog
2025-12-20 10:16:49 -03:00
LUIS NOVO 2a4d98772b fix(ui): optimize MutationObserver in NoteEditorDialog
Only observe DOM mutations when dialog is open, preventing
unnecessary observer activity when the dialog is closed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 10:13:49 -03:00
Luis Novo a8bb88e10f
Merge pull request #305 from xeader/fix/issue-271.1-note-editor-not-full-screen
feat(notebooks): Enhance dialog content styling for fullscreen mode
2025-12-20 10:12:29 -03:00
Antonio Gatta cdb074193f feat: support fullscreen mode in NoteEditorDialog
- Added `isEditorFullscreen` state to track fullscreen mode for the Markdown editor.
- Integrated `MutationObserver` to detect changes related to the `.w-md-editor-fullscreen` class.
- Adjusted dialog and editor styles dynamically based on fullscreen state using `cn`.
- Enhanced UX by resetting fullscreen state on dialog close.
2025-12-20 11:38:31 +01:00
Luis Novo 34aaad4162
Merge pull request #341 from lfnovo/fix/merge-conflict-insight-dialog
fix: resolve merge conflict in SourceInsightDialog
2025-12-19 23:12:15 -03:00
LUIS NOVO 79f4d5ea6a fix: resolve merge conflict in SourceInsightDialog
Add missing state variables and handlers for delete functionality
that were lost during merge of PRs #334 and #340
2025-12-19 23:10:49 -03:00
Luis Novo d6eedde5a3
Merge pull request #333 from jflo/fix/strip-thinking-tags
fix: strip <think> tags from chat responses
2025-12-19 22:52:43 -03:00
Luis Novo 86329f406d
Merge pull request #334 from jflo/feat/delete-insight
feat: add delete insight functionality
2025-12-19 22:51:18 -03:00
Luis Novo c41cc074b5
Merge branch 'main' into feat/delete-insight 2025-12-19 22:50:53 -03:00