Commit graph

26 commits

Author SHA1 Message Date
Luis Novo
37217b01de
fix: error hints, Italian in the language menu and dev fallbacks (docs review) (#1457)
* fix: error hints, Italian menu entry and dev fallbacks found by the docs review

- error_classifier: read timeouts get their own message naming
  ESPERANTO_LLM_TIMEOUT; connect failures keep "Could not connect".
  Auth hint points to Manage -> Models; provision's "Please go to
  Manage" message is recognized again.
- Podcast voice hint and the empty-episodes text point to real screens.
- LanguageToggle renders the registered languages list, so it-IT shows
  up (and future locales can't be missed); it-IT date locale added.
  The per-language common.* labels it used are removed.
- make start-all uses the shipped compose file.
- Legacy SURREAL_ADDRESS/SURREAL_PORT fallback builds ws://host:port/rpc.
- .env.example uses the real OPEN_NOTEBOOK_CHUNK_* names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: address review (IPv6 legacy address, connection-timed-out wording, stronger tests)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: assert exception class for OS connection timeouts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 22:51:31 -03:00
Luis Novo
d6c33151ab
feat(worker): expose OPEN_NOTEBOOK_WORKER_MAX_TASKS to control worker concurrency (#1141)
The worker processes all queued tasks up to a fixed concurrency of 5, which
overloads single-GPU / local-LLM setups and triggers rate limits (#893). The
surreal-commands worker already accepts --max-tasks; wire it to a new
OPEN_NOTEBOOK_WORKER_MAX_TASKS env var (default 5, set 1 for sequential) at
every launch point.

- Makefile (worker-start, start-all): --max-tasks "$${VAR:-5}" (Make-escaped)
- dev-init.sh: POSIX ${VAR:-5} default expansion
- supervisord.conf: wrap in sh -c so the shell expands the var (command= does
  not run through a shell)
- docker-compose.yml: commented environment example
- .env.example + environment-reference.md: document it, incl. the launch-time
  sourcing behavior

Also fixes a phantom doc entry: SURREAL_COMMANDS_MAX_TASKS was documented but
is not read anywhere (the worker's --max-tasks Typer option has no envvar);
replaced with the real OPEN_NOTEBOOK_WORKER_MAX_TASKS.

Closes #893
2026-07-14 12:28:48 -03:00
Luis Novo
12ced05b3a
build: converge Docker builds into a single multi-stage Dockerfile (#1066)
Both published image variants are now built from one Dockerfile with
shared stages, so deploy fixes no longer have to be applied twice:

- regular (multi-container): default build / --target runtime
- single-container (app + SurrealDB): --target single

Dockerfile.single and supervisord.single.conf are removed. The single
image appends supervisord.surrealdb.conf (the SurrealDB program block)
to the shared supervisord.conf at build time. CI workflows, Makefile
targets and the single-container compose example now build via
--target; published image names and tags are unchanged.
2026-07-11 18:46:43 -03:00
Luis Novo
faa2b16e77
docs: codify the release confidence process with executable tooling (#1052)
Captures the process designed and executed for v1.11.0 so every future
release reproduces it:

- .github/RELEASE_PROCESS.md v2: changelog audit, risk-based test
  matrix (buckets A/B/C), the Docker image gate, fix-loop re-test
  policy, CI-based publishing path, communication structure with a
  mandatory credits section, retro, and the gotchas that cost
  iterations this cycle
- ADR-005: why releases now pass a risk-based confidence process gated
  on the real image, with the v1.11.0 evidence (bugs the unit suite
  could not catch: SEARCH-index ORDER BY 500, credential clear no-op)
- scripts/release-test/: the harness built during v1.11.0 —
  fresh-install + upgrade gate (release-image-test.sh) and the
  browsable RC stack with optional dev-data copy (rc-stack.sh), plus
  compose/nginx encoding the API_URL, host.docker.internal and
  SurrealDB import learnings
- make release-test / release-stack / release-stack-down targets
2026-07-11 16:56:14 -03:00
Luis Novo
b38c74cf29
docs: restructure documentation around AGENTS.md, VISION.md and decision records (#1032)
* docs: restructure documentation around AGENTS.md, VISION.md and decision records

- Consolidate 17 CLAUDE.md files into 3 AGENTS.md (root, backend, frontend);
  CLAUDE.md files become @AGENTS.md pointers
- Add VISION.md: product identity + current posture with horizon clusters
- Add docs/7-DEVELOPMENT/decisions/ with 4 retroactive ADRs and 2 PDRs
- Add 5 new engineering docs pages (credentials, content-processing,
  podcasts, prompts, frontend) absorbing knowledge from removed CLAUDE.md
- Dismember TRIAGE.md: label taxonomy into maintainer-guide.md, product
  jurisprudence into VISION.md, operator heuristics stay local (gitignored)
- Add AI-assisted/agent-generated PR guidelines to contributing.md
- Convert README.dev.md into a pointer after migrating its unique content
  (make workflow matrix, Docker publishing, add-a-language playbook)
- Fix stale docs: migration path/format, provider count, locale list;
  fix broken links (docs/index.md, PR template, CONFIGURATION.md)

* docs: fix README doc links and add markdown link check to CI

- Repoint 9 README links to pages that actually exist in docs/
- Replace literal (link) placeholder in maintainer-guide templates
- Add scripts/check_md_links.py validating relative links in tracked
  markdown (skips URLs, anchors and code spans)
- Add docs-links workflow running the check on PRs that touch markdown

* docs: add documentation restructure to changelog

* feat: add cubic.yaml with project-aware AI review agents

Three custom review agents (vision & principles alignment backed by
VISION.md, known mechanical caveats, security & testability), PR-contract
review instructions, and automatic ultrareviews for auth, credential,
encryption and migration changes.

* docs: graduate issue-first policy by change size

Small obvious fixes (typos, docs, tiny bugs, i18n completions) no longer
require an issue; features and architecture changes still do. Sizeable
PRs opened without an issue convert to draft while the issue goes
through triage (1-2 days). Applied consistently across contributing
guide, root CONTRIBUTING pointer, PR template, maintainer guide red
flags and cubic review instructions.

* docs: align PR template Related Issue section with graduated issue-first policy

* docs: address review — generalize ADR-002/004, unwrap hard-wrapped lines

- ADR-002 now records the general delegation rule (platform/media support
  that needs heavy coding lives in focused external libraries) covering
  Esperanto, Content Core and podcast-creator
- ADR-004 now records the durable decision (long-running work runs on
  background workers — heavy content, varied machine sizes, never lock
  usage) with the queue technology as a swappable implementation detail
  pending #381
- Remove mid-paragraph hard line wrapping from authored docs to match
  repo convention (one line per paragraph)

* fix: address cubic review — stale doc facts, make dev/full targets, link checker query strings

- credentials.md: only PROVIDER_CONFIG exists as a map; Vertex/Azure/
  OpenAI-compatible provisioning is inline in _provision_*() functions
- content-processing.md: correct ContextConfig priority weights
  (source 100 > insight 75 > note 50)
- development-setup.md + Makefile: make dev/full pointed at root compose
  files that don't exist; targets now use examples/docker-compose-dev.yml
  and examples/docker-compose-full-local.yml with --project-directory .
- check_md_links.py: strip query strings before file-existence checks
2026-07-10 15:33:19 -03:00
Luis Novo
303ffacfa5
docs: add reverse proxy timeout configuration (#501)
Some checks failed
Development Build / extract-version (push) Has been cancelled
Development Build / build-regular (push) Has been cancelled
Development Build / build-single (push) Has been cancelled
Development Build / summary (push) Has been cancelled
* chore: force env file on api

* docs: add reverse proxy timeout configuration for all proxies

- Add timeout configuration to Caddy examples (read_timeout, write_timeout)
- Add Traefik serversTransport timeout configuration
- Increase nginx timeout from 300s to 600s to match frontend
- Expand timeout troubleshooting section with symptoms and solutions
- Reference API_CLIENT_TIMEOUT and ESPERANTO_LLM_TIMEOUT env vars

Fixes #447
2026-01-30 00:02:03 -03:00
Luis Novo
b1d4c5cd34
fix: Docker networking and permissions documentation (#500)
* chore: force env file on api

* fix: Docker networking and permissions documentation

- Add HOSTNAME=0.0.0.0 as default in Dockerfiles for reverse proxy compatibility
- Document Linux extra_hosts requirement for host.docker.internal
- Add user: root to SurrealDB examples for bind mount permissions on Linux
- Update environment reference and reverse proxy docs

Fixes #483, fixes #485, fixes #409
2026-01-29 23:54:17 -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
talkenigs
5d9eb5284f fix: specifiy docker compose and add port 2025-12-14 19:14:11 +02:00
Luis Novo
4c2b8257fc
OpenAI compatible multimodal (#167)
* fix text

* remove lint from docker publish workflow

* gemini base url docs

* feat: add multimodal support for openai-compatible providers

- Add helper function to check OpenAI-compatible provider availability per mode
- Update provider detection to support language, embedding, STT, and TTS modalities
- Implement mode-specific environment variable detection (LLM, EMBEDDING, STT, TTS)
- Maintain backward compatibility with generic OPENAI_COMPATIBLE_BASE_URL
- Add comprehensive unit tests for all configuration scenarios
- Update .env.example with mode-specific environment variables
- Update provider support matrix in ai-models.md
- Create comprehensive openai-compatible.md setup guide

This enables users to configure different OpenAI-compatible endpoints for
different AI capabilities (e.g., LM Studio for language models, dedicated
server for embeddings) while maintaining full backward compatibility.

* upgrade

* chore: change docker release strategy
2025-10-19 07:44:05 -03:00
LUIS NOVO
7059493143 chore: export docs for custom gpt
Some checks are pending
Development Build / extract-version (push) Waiting to run
Development Build / lint-and-check (push) Waiting to run
Development Build / test-build-regular (push) Blocked by required conditions
Development Build / test-build-single (push) Blocked by required conditions
Development Build / summary (push) Blocked by required conditions
2025-10-18 20:26:11 -03:00
LUIS NOVO
2b9ef266b4 chore: developer experience 2025-10-18 18:14:16 -03:00
Luis Novo
b7e656a319
Version 1 (#160)
New front-end
Launch Chat API
Manage Sources
Enable re-embedding of all contents
Sources can be added without a notebook now
Improved settings
Enable model selector on all chats
Background processing for better experience
Dark mode
Improved Notes

Improved Docs: 
- Remove all Streamlit references from documentation
- Update deployment guides with React frontend setup
- Fix Docker environment variables format (SURREAL_URL, SURREAL_PASSWORD)
- Update docker image tag from :latest to :v1-latest
- Change navigation references (Settings → Models to just Models)
- Update development setup to include frontend npm commands
- Add MIGRATION.md guide for users upgrading from Streamlit
- Update quick-start guide with correct environment variables
- Add port 5055 documentation for API access
- Update project structure to reflect frontend/ directory
- Remove outdated source-chat documentation files
2025-10-18 12:46:22 -03:00
Luis Novo
d7b0fff954
Api podcast migration (#93)
Creates the API layer for Open Notebook
Creates a services API gateway for the Streamlit front-end
Migrates the SurrealDB SDK to the official one
Change all database calls to async
New podcast framework supporting multiple speaker configurations
Implement the surreal-commands library for async processing
Improve docker image and docker-compose configurations
2025-07-17 08:36:11 -03:00
LUIS NOVO
10049342cb chore: force .env on uv run 2025-06-03 12:57:51 -03:00
LUIS NOVO
ff80787d6a chore: tag make command 2025-06-01 08:10:05 -03:00
LUIS NOVO
b1e0e8ad99 migrate to uv 2025-03-11 20:49:10 -03:00
LUIS NOVO
3500383e7d docker image improvs 2024-11-14 15:22:18 -03:00
LUIS NOVO
cd3ad2e9fa simplify docker setup 2024-11-14 09:50:33 -03:00
LUIS NOVO
ee67258beb add full docker image with db 2024-11-08 18:30:34 -03:00
LUIS NOVO
2f2cdabd2d Fix issue with model defaults and bump version 2024-10-30 18:28:29 -03:00
LUIS NOVO
9ca9ac9de1 office packages 2024-10-28 16:33:31 -03:00
LUIS NOVO
c3f3c9cb93 update docs to new release info 2024-10-23 15:40:28 -03:00
LUIS NOVO
737bc51f09 update docker image documentation for multi-model 2024-10-22 18:53:04 -03:00
LUIS NOVO
093c5dabbb build 0.0.2 2024-10-22 18:27:04 -03:00
LUIS NOVO
bcd260a28b Initial commit with all features 2024-10-21 14:56:10 -03:00