Release notes from langroid
Articles about Release notes from langroid
Release 0.69.7 · langroid/langroid
What's in 0.69.7 A maintenance release with no source changes: it refreshes the repo's LLM-context dumps so they describe the code as of 0.69.6. Docs / LLM context Regenerated the six llms*.txt repomix dumps (llms.txt, llms-no-tests.txt, llms-no-tests-no-examples.txt and their compressed variants) on current main with repomix 1.18.1 (#1246). They had last been refreshed on 2026-08-23, so anything feeding langroid's source to an LLM through those files — agents, IDE context packs, docs tooling — was working from a two-month-old
Release 0.69.6 · langroid/langroid
langroid 0.69.6 A patch release of four data-loss and crash fixes in the ingestion and tokenization paths — the places where a silent wrong answer is hardest to notice. Document parsing and chunking Markdown text before the first heading is no longer dropped (#1235). parse_markdown_headings discarded everything preceding the first heading, so a document's introduction vanished from every chunk — for both rollup=True and rollup=False, at every chunk_size. The preamble is now emitted as a root node. Fixing that exposed two
Release 0.69.5 · langroid/langroid
Three fixes: one clears a critical dependency alert, two are correctness bugs in batch control flow and in document ingestion. Security / dependencies Cleared critical Dependabot alert #364 (GHSA-jhr6-gm9c-rqjv) by raising the sentence-transformers minimum from 2.2.2 to 5.6.0 and the cap from
Release 0.69.4 · langroid/langroid
Thirteen correctness fixes, all with regression tests that fail on 0.69.3 and pass here. The bulk of them are in document parsing and chunking, where several bugs were silently losing or corrupting text on the way into a vector store. Parsing and chunking — text was being lost or corrupted Token chunking no longer corrupts Unicode or repeats text (#1228). Parser.chunk_tokens decoded BPE slices without regard for character boundaries, so 你好世界 could come back as 你好��界 and emoji became replacement characters.
Release 0.69.3 · langroid/langroid
Four fixes, all in the path between external data and Langroid's typed objects: DataFrame ingestion, Pydantic model flattening, and typed tool outputs. DataFrame ingestion: nullable pandas dtypes (#1214, supersedes #1212) Importing a DataFrame whose metadata or extra document fields hold pd.NA raised PydanticSchemaGenerationError, even when another row carried a valid value to infer the type from. This reproduced on Int64, boolean and string columns, and for NaN in an object column. It now works.
Release 0.69.2 · langroid/langroid
Security fix GHSA-v46x-w252-4793 (medium): resource exhaustion when ingesting DOCX/XLSX/PPTX files. Two independent defects in the document-ingestion path: max_chunks was not enforced in DocumentParser.get_doc_chunks, so a single page that expands to millions of tokens drove unbounded tokenization, chunking and memory use. The cap is now checked inside the chunking loop. Office files are ZIP archives with no expansion limit. A ~52 KB file could expand to megabytes of XML and cost over a minute of CPU and ~500 MB of memory.
Release 0.69.1 · langroid/langroid
Two silent-failure fixes, a large dependency refresh that clears 100 Dependabot alerts, and new coverage for a gate that nothing exercised. Bug fixes — two writes that reported success while failing LanceDB.add_documents now raises instead of only logging (#1201, thanks @ericdelorefice). The whole write was wrapped in except Exception and only logged, so a rejected write was reported to the caller as done. This bites with ordinary input: LanceDB fixes the table schema from the first write, so adding a
Release 0.69.0 · langroid/langroid
Highlights Pro-active LLM rate limiting (#1198, implements #369) Large batch jobs no longer spend their wall-clock time getting rejected and backing off. A new opt-in limiter paces outgoing requests ahead of the provider's limit instead of discovering it by being refused. You do not configure your rate limits. OpenAI reports the live budget on every response, so one response is enough to recover the account's actual sustained rate (rate = (limit - remaining) / reset). The limiter paces sends just under it, with configurable headroom.
Release 0.68.8 · langroid/langroid
Security fix GHSA-2xfq-2j89-qc8j (high): SQL injection in the SQLChatAgent PostgreSQL description extractor. When SQLChatAgent starts up against PostgreSQL, it reads table and column descriptions f
Release 0.68.7 · langroid/langroid
Highlights A bug-fix release: two silent data-loss paths closed, and three documents that told you something the code does not do. Fixes FirecrawlCrawler works again on firecrawl-py v4 (#1194). On v4 the crawler returned nothing at all — the crawl status literals had changed, so the poller span forever. Fixed, and with it five further silent drops found while verifying the fix: the format type discriminator was stripped on the wire (so a JSON-extraction request went out as a typeless object), blank pages reached the parser in crawl mode,
Release 0.68.6 · langroid/langroid
Tests: two suites no longer need a real LLM A small, focused release: it contains no library code changes, so upgrading from 0.68.5 is behavior-neutral for users. The change is to the test suite, and it matters for anyone running langroid's tests from a fork or a CI job without API keys. Testing Convert two test suites to MockLM (#1192, part of #494). Two tests that never actually needed a live model were calling one on every run: test_task_in_out_types (tests/main/test_task_run_polymorphic.py) —
Release 0.68.5 · langroid/langroid
Mostly a correctness release: a cluster of DataFrame and tabular-data fixes from outside contributors, first-class Vertex AI routing, and a cleanup of retired Anthropic model IDs. Tabular data and
Release 0.68.4 · langroid/langroid
Documentation Gemini / Vertex AI: keeping credentials working, and an environment hazard Two things that contributors kept rediscovering the hard way while trying to route Langroid at Vertex AI are now written down in docs/notes/gemini.md (#1167). No routing code changed — this release is documentation only. Tokens that expire mid-run. gcloud auth print-access-token is good for about an hour, so a long-running agent configured from a static environment variable starts failing partway through. api_key_provider already covers
Release 0.68.3 · langroid/langroid
Spider Cloud crawler for URLLoader URLLoader gains an opt-in Spider Cloud adapter alongside the existing Trafilatura (still the default), Firecrawl, Exa and Crawl4AI crawlers. There is no new dependency: it uses the requests package langroid already requires (#1164, closes #775). The feature, its design and its test suite are @machaoxin0407's work from
Release 0.68.2 · langroid/langroid
Three fixes to batch execution and tool schemas, all driven by careful outside reports. Batch processing Rolling bounded concurrency (max_concurrency) — #1156. Fixed batches used to wait for their slowest member before starting the next group: with capacity 2, a blocked task A kept C from starting even after B finished. A new keyword-only max_concurrency on run_batched_tasks, run_batch_task_gen and run_batch_tasks instead keeps at most min(C, N) tasks in flight and refills a slot as soon as one completes.
Release 0.68.1 · langroid/langroid
Batch processing Two fixes to run_batch_* that affected correctness of concurrent and cancelled batches: Exception policies now apply to output_map and to cancellation (#1144). output_map previously ran outside the exception handler, so a mapper error aborted the whole batch even under RETURN_NONE / RETURN_EXCEPTION, and error placeholders were handed to the mapper. Cancellation was caught as BaseException and recorded as a normal result, and sequential batches kept starting new items after the caller had cancelled.
Release 0.68.0 · langroid/langroid
Highlights This release makes Langroid installable alongside the new openai 3.x SDK, fixes a JSON-argument corruption bug in tool/function calls, and removes the OpenAIAssistant agent now that OpenAI has shut down the Assistants API. Breaking change OpenAIAssistant removed (#1127) OpenAI sunset the Assistants API on 2026-08-26; every endpoint now returns 404, so OpenAIAssistant could no longer work under any configuration. The module, its tests, and the Assistants-based examples are gone