v1.6.1 — Google Sync & Visualization
Release Date: 2026-09-24
Changes: v1.6.0 → v1.6.1
Pull Requests: #5141, #5158, #5166, #5180
Summary
This release strengthens Google integrations (Drive and Gmail), improves visualization streaming for large subgraphs, and smooths up GLiNER installation and telemetry. It also adds better provenance scoping, stamps external metadata onto document chunks so retrieval returns richer results, and fixes a range of sync, ingestion and UI issues.
Highlights
- New Google Drive OAuth connector plus Gmail and shared-drive sync — easier, safer import from Google workspaces.
- Streaming /visualize/json responses in chunks so large graph views load without exhausting memory.
- GLiNER installer overhauled: installs off the event loop, auto-installs CPU Torch on first use, and reports install telemetry and errors.
- Chunks now carry document external metadata and that metadata is surfaced in hybrid retrieval (combined semantic+lexical search).
Breaking Changes
- dlt is now a core dependency: The CSV loader no longer gates imports on dlt; dlt has been promoted to a core dependency. If you install Cognee from source or manage dependencies manually, ensure dlt is available in your environment or will be installed by your package manager.
New Features
- Google Drive OAuth connector: Adds a full OAuth-based connector for Google Drive that lets you authorize and sync files from your Google account or shared drives. Why it matters: simplifies securely ingesting Drive content into Cognee and supports shared-drive workflows.
- Gmail and shared Google sync: Adds Gmail ingestion and shared-drive sync support, plus UI and progress indicators for Google sync operations. What it does: lets you connect Gmail and monitor sync progress in the UI; why it matters: more seamless ingestion from Gmail and clearer sync status.
- Bundled Google connectors in SDK: Google-related connectors are now included in the SDK distribution. What it does: reduces extra install steps and mismatched versions; why it matters: faster setup and fewer integration errors.
- Stream /visualize/json in chunks: Large visualization responses (graph/subgraph JSON) are now streamed in chunked pieces instead of one big payload. What it does: avoids high memory usage and enables viewing large graphs; why it matters: visualization of big memory graphs is more reliable and responsive.
- GLiNER installer improvements: The GLiNER named-entity model installer now runs off the server event loop, records telemetry for installs and errors, and recommends required extras when install fails. Why it matters: avoids blocking the server, gives clearer error messages, and improves first-time setup.
- CPU Torch on first use for GLiNER: When GLiNER needs Torch (PyTorch), the CPU build is installed on first use rather than forcing it at package install. What it does: defers heavy installs until necessary; why it matters: reduces initial install friction for users who don't need GLiNER right away.
- Document external_metadata stamped on chunks and surfaced in hybrid retrieval: When documents are split into chunks, external metadata you provide (for example, original file path or source ID) is now preserved on each chunk and included in hybrid search results (hybrid = semantic + keyword search). Why it matters: search results include richer context and make it easier to link a result back to its original document.
Improvements
- Hardened Google Drive sync and OAuth binding: Several fixes make the Drive sync process more robust, reduce race conditions, and preserve credential metadata across reconnects. Why it matters: safer, more reliable sync and fewer lost credentials.
- Defer orphan cleanup until ingestion success is confirmed: Cleanup of temporary/orphaned records that could occur during ingestion is now delayed until the ingestion is confirmed successful. Why it matters: prevents accidental deletion of items when ingest processes fail or are retried.
- Rank and show context for source-check hits: When scanning docs for issues, results are now ranked and include surrounding context. Why it matters: makes triage and diagnostics faster and more actionable.
- Refined provenance scoping: Provenance (who/what produced a piece of data) is now correctly scoped to the caller’s readable datasets, preventing leakage of dataset-level orientation data. Why it matters: stronger data isolation and clearer provenance outputs.
- Better HTTP error for undecodable files: The CSV loader now returns HTTP 415 (unsupported media type) for undecodable files instead of a 500 server error. Why it matters: clearer error semantics for users and callers.
- Observability: GenAI embedding spans now include standard attributes so tracing and observability tools get consistent data for embedding operations.
Performance
- Visualization streaming: Chunked /visualize/json reduces peak memory usage and allows rendering of much larger graph snapshots without exhausting server memory.
- GLiNER install moved off event loop: Installing GLiNER components no longer blocks the main event loop, improving responsiveness during first-time setup.
- Bundling Google connectors in SDK reduces client-side installation friction and can speed up getting integrations running.
Security
- Hardening around Google Drive sync and OAuth binding to reduce race conditions and preserve credential metadata on reconnects, decreasing the chance of sync failures or lost credentials.
- Potential CodeQL cookie-construction finding addressed (construction using user-supplied input) — reduces risk flagged by static analysis.
- Access and provenance scope tightened so callers only see provenance for datasets they can read; this reduces accidental data exposure.
Bug Fixes
- Pin the correct distribution for GLiNER Python imports to avoid a shadowed import causing runtime errors.
- Order GLiNER install telemetry and register errors so failures are visible in diagnostics.
- Recommend the gliner extra when GLiNER-related installs fail to give clearer fix guidance.
- Resolve entity type resolution in bounded graph reads so visualization and graph queries return correct entity labels.
- Fix dataset pagination, ordering and deduplication issues across clients and CI, so dataset lists and pages behave consistently.
- Keep PR text out of docs-sync shell steps, and correctly compute docs paths from checked pages to avoid doc-sync regressions.
- Fix various Google sync and integration CI regressions and make Google sync cleanup safe.
- Drop duplicate rewriting in self-improvement module and expose control for remember self-improvement.
Technical Changes
- New/rewritten visualization modules and graph stream implementation to support streaming JSON and bounded neighborhood reads.
- Bounded neighborhood reads implemented in SQL for graph databases to limit subgraph sizes and avoid heavy queries.
- Large number of new tests and CI workflows added (visualization, Google integrations, graph/neighborhood contract helpers, docs triage automation).
- New task implementations and docs for Google Drive and Gmail connectors, plus example guides and a temporal hybrid cognify demo.
Dependency Updates
Added:
- dlt >=1.9.0,<2
- huggingface-hub >=0.34,<1
- packaging >=24.0
- pandas >=2.2.2,<3.0.0
- tokenizers >=0.22,<=0.23.0
Compatibility
| Component | Supported / Required |
|---|---|
| Python | >=3.10,<3.15
|
| pydantic | >=2.10.5
|
| litellm | >=1.83.7,<1.97.0
|
| fastapi | >=0.116.2,<1.0.0
|
| sqlalchemy | >=2.0.39,<3.0.0
|
| lancedb | >=0.24.3,<1.0.0
|
| ladybug | ==0.19.0
|
— The Cognee Team · 2026-09-24