Skip to content

Tags: lfnovo/open-notebook

Tags

v1.14.0

Toggle v1.14.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(podcasts): clarify episode max_tokens field and fix empty-state e…

…rror (#1197)

The episode profile "Max output tokens" field (#991) confused users:
nothing explained what it controls, and whether it was a
per-conversation, per-turn, or per-call limit. An empty field also
showed "Must be a positive integer" — a scary error on an optional
field — because a transient/empty number-input state produced NaN,
which slipped past the nullable() guard into the positive() rule.

- Add help text (all 14 locales) stating it caps output tokens per
  generation step — the outline and the full transcript, not a per-turn
  or conversation limit — and that blank uses the built-in defaults
  (3000 outline / 5000 transcript, from podcast-creator).
- Add a placeholder ("Leave blank for defaults") so the empty field
  reads as intentionally optional rather than unfilled.
- Map empty and NaN inputs to null in setValueAs, so an empty or
  half-typed value reads as "unset" and never trips the positive-integer
  rule. Genuinely invalid entries (0, negatives, decimals) still error.

Field stays an optional override — no behavior change to generation.
Verified in the browser: help renders, placeholder shows, empty field
has no error, zero console errors. Frontend lint/test/build green.

v1.13.0

Toggle v1.13.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): cut v1.13.0 (#1126)

Bump version to 1.13.0 and date the changelog section. Also close the two
remaining changelog gaps for changes merged since v1.12.0:
- #1058: podcast generation honors speaker_profile in generate_podcast_command
- #999:  transformation create works from the empty state

v1.12.0

Toggle v1.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): cut v1.12.0 (#1089)

v1.11.0

Toggle v1.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): cut v1.11.0 (#1050)

- Bump version to 1.11.0
- Date the Unreleased changelog section as [1.11.0] - 2026-07-11
- Add the two entries from release testing: Pillow 12.3.0 security
  bump (#1041) and the credential field-clearing fix (#1046)

v1.10.0

Toggle v1.10.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): prepare v1.10.0 (#923)

* chore(release): prepare v1.10.0

* style: fix import ordering flagged by ruff

* fix(sources): return 404 for missing source and fix retry 500 from double-prefixed command id

- GET /sources/{id} mapped NotFoundError to a generic 500; now returns 404
- POST /sources/{id}/retry double-prefixed the command id (command:command:...),
  raising 'too many values to unpack' after queuing; align with the create path
- update retry test mock to realistic prefixed command id + guard against
  double-prefix; add 404 regression test

* fix(sources): mark failed extraction as failed so retry surfaces (#726)

content-core signals soft failures (unreachable/invalid URL) by returning
title=Error + 'Failed to extract content:' body instead of raising, and the
process_source command swallowed permanent ValueErrors into a success=False
result. Since surreal-commands marks a job completed when the function returns,
failed ingests showed status 'completed' and never offered the retry button.

- source graph: detect the content-core failure sentinel and raise
- process_source_command: re-raise ValueError (stop_on already prevents retry)
  so the job is marked failed and the source becomes retryable

* feat(notebook): per-type bulk context actions for sources and notes (#223)

- Sources context menu now offers 'insights only' (sources without insights
  are excluded rather than forced to full), 'full content', and 'exclude all'
- Add the same bulk Context menu to the Notes column (include all / exclude all)
- Bulk choices propagate to items loaded later via pagination
- New locale keys (includeAllInsights/includeAllFull) across all 14 locales
- Unit tests for the new bulk modes and note context helpers

v1.9.0

Toggle v1.9.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(docker): retry npm ci to survive transient registry ECONNRESETs (#…

…840)

The multi-arch build runs `npm ci` for the arm64 image under QEMU emulation,
which is slow and prone to transient `ECONNRESET` errors from the npm registry
(exit code 152) — this broke the Development Build after a recent merge while
the amd64 leg succeeded.

Add npm fetch-retry settings and wrap `npm ci` in a retry loop (up to 5
attempts) in both Dockerfile and Dockerfile.single so a single network blip no
longer fails the whole multi-arch build (incl. the release build).

v1.8.5

Toggle v1.8.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: use token-based sizing for embedding chunking (#749)

* feat: make chunk sizing token-based with 512-token default

* fix: defer embedding debug token metrics

* chore: lower default chunk size to 400 tokens and document rationale

The previous 512-token default matched exactly the context window of
BERT-family embedders like mxbai-embed-large, leaving no margin for:
- tokenizer mismatch between our o200k_base measurement and the
  embedder's own WordPiece tokenizer
- occasional splitter overshoot (RecursiveCharacterTextSplitter can
  emit chunks slightly above chunk_size when separators are sparse)
- special tokens ([CLS], [SEP]) that consume context-window budget

400 tokens keeps ~20% headroom below 512 while still being a large
improvement over the old character-based default for most content.
Users with larger-context embedders can raise OPEN_NOTEBOOK_CHUNK_SIZE
via env var. Also adds a CHANGELOG entry for the full PR behavior
change.

* chore: move chunking changelog entry under 1.8.5

Target release is 1.8.5 — moving the Changed section out of Unreleased.

---------

Co-authored-by: Luis Novo <lfnovo@gmail.com>

v1.8.4

Toggle v1.8.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #738 from lfnovo/fix/security-vulnerabilities-round2

fix: prevent RCE, path traversal, and LFI vulnerabilities

v1.8.3

Toggle v1.8.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #731 from lfnovo/fix/surrealdb-injection

fix: prevent SurrealDB injection via unsanitized query parameters

v1.8.2

Toggle v1.8.2's commit message
chore: bump version to 1.8.2 and update changelog and provider docs

- Bump version from 1.8.1 to 1.8.2
- Add changelog entry for DashScope and MiniMax provider support
- Update provider counts across README and docs (16+ → 18+, 15+ → 17+)
- Add DashScope and MiniMax to README provider support matrix