Skip to content

Feature/ingestion pipeline hardening - #47

Merged
LinMoQC merged 21 commits into
mainfrom
feature/ingestion-pipeline-hardening
Apr 25, 2026
Merged

Feature/ingestion pipeline hardening#47
LinMoQC merged 21 commits into
mainfrom
feature/ingestion-pipeline-hardening

Conversation

@LinMoQC

@LinMoQC LinMoQC commented Apr 22, 2026

Copy link
Copy Markdown
Owner

Summary

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactor / code cleanup
  • CI / tooling

Related issue

Closes #

Changes

How to test

Screenshots (if applicable)

Checklist

  • My code follows the project's coding conventions
  • I have run ./lyra lint and there are no type errors
  • I have added/updated tests for the changed functionality
  • I have updated the documentation if behavior changed
  • The PR title follows Conventional Commits format (feat:, fix:, etc.)
  • I have read the CONTRIBUTING.md

@vercel

vercel Bot commented Apr 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
lyra-note-web Ready Ready Preview, Comment Apr 25, 2026 5:01pm

@coderabbitai

coderabbitai Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 278 files, which is 128 over the limit of 150.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8513fd0e-f9dd-4cd2-8c46-63ade1f01098

📥 Commits

Reviewing files that changed from the base of the PR and between 747d984 and 50d8c14.

⛔ Files ignored due to path filters (22)
  • apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/85239377-83ad-478b-b819-f36d894bb9e3.pdf is excluded by !**/*.pdf
  • apps/desktop/public/bot_avatar.png is excluded by !**/*.png
  • apps/desktop/public/lyra.png is excluded by !**/*.png
  • apps/desktop/public/tauri.svg is excluded by !**/*.svg
  • apps/desktop/public/vite.svg is excluded by !**/*.svg
  • apps/desktop/src-tauri/Cargo.lock is excluded by !**/*.lock
  • apps/desktop/src-tauri/icons/128x128.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/128x128@2x.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/32x32.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square107x107Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square142x142Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square150x150Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square284x284Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square30x30Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square310x310Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square44x44Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square71x71Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square89x89Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/StoreLogo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/icon.ico is excluded by !**/*.ico
  • apps/desktop/src-tauri/icons/icon.png is excluded by !**/*.png
  • apps/desktop/src/assets/react.svg is excluded by !**/*.svg
📒 Files selected for processing (278)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .vscode/settings.json
  • CHANGELOG.md
  • apps/api/Dockerfile
  • apps/api/alembic/versions/044_notebook_appearance_settings.py
  • apps/api/alembic/versions/045_observability_trace_hardening.py
  • apps/api/app/agents/chat/__init__.py
  • apps/api/app/agents/chat/task_manager.py
  • apps/api/app/agents/core/engine.py
  • apps/api/app/agents/core/policy.py
  • apps/api/app/agents/core/react_agent.py
  • apps/api/app/agents/graph/orchestrator.py
  • apps/api/app/agents/memory/__init__.py
  • apps/api/app/agents/memory/file_storage.py
  • apps/api/app/agents/memory/prompt_context.py
  • apps/api/app/agents/portrait/synthesizer.py
  • apps/api/app/agents/rag/ingestion.py
  • apps/api/app/agents/research/deep_research.py
  • apps/api/app/agents/research/task_manager.py
  • apps/api/app/agents/soul/soul.py
  • apps/api/app/agents/writing/composer.py
  • apps/api/app/agents/writing/ghost_text.py
  • apps/api/app/config.py
  • apps/api/app/database.py
  • apps/api/app/desktop_main.py
  • apps/api/app/domains/activity/router.py
  • apps/api/app/domains/ai/routers/research.py
  • apps/api/app/domains/ai/schemas.py
  • apps/api/app/domains/config/router.py
  • apps/api/app/domains/conversation/router.py
  • apps/api/app/domains/desktop/router.py
  • apps/api/app/domains/desktop/schemas.py
  • apps/api/app/domains/knowledge/schemas.py
  • apps/api/app/domains/memory/router.py
  • apps/api/app/domains/monitoring/router.py
  • apps/api/app/domains/monitoring/schemas.py
  • apps/api/app/domains/note/router.py
  • apps/api/app/domains/notebook/router.py
  • apps/api/app/domains/notebook/schemas.py
  • apps/api/app/domains/setup/router.py
  • apps/api/app/domains/setup/schemas.py
  • apps/api/app/domains/source/router.py
  • apps/api/app/domains/source/schemas.py
  • apps/api/app/domains/upload/router.py
  • apps/api/app/main.py
  • apps/api/app/mcp/client.py
  • apps/api/app/models/notebook.py
  • apps/api/app/models/observability.py
  • apps/api/app/services/config_service.py
  • apps/api/app/services/conversation_service.py
  • apps/api/app/services/desktop_agent_service.py
  • apps/api/app/services/desktop_chat_service.py
  • apps/api/app/services/desktop_knowledge_service.py
  • apps/api/app/services/desktop_memory_service.py
  • apps/api/app/services/desktop_runtime_service.py
  • apps/api/app/services/desktop_service.py
  • apps/api/app/services/memory_service.py
  • apps/api/app/services/monitoring_service.py
  • apps/api/app/services/notebook_service.py
  • apps/api/app/services/source_service.py
  • apps/api/app/services/suggestion_service.py
  • apps/api/app/services/upload_service.py
  • apps/api/app/skills/builtin/update_memory_doc.py
  • apps/api/app/utils/async_tasks.py
  • apps/api/app/workers/_helpers.py
  • apps/api/app/workers/celery_app.py
  • apps/api/app/workers/tasks/__init__.py
  • apps/api/app/workers/tasks/ingestion.py
  • apps/api/requirements-dev.txt
  • apps/api/scripts/build_desktop_sidecar.py
  • apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/3acf8dfe-1723-4896-a9e6-23a547d5737a.md
  • apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/41b24de4-9d20-48d8-bc3c-9fe8fdeb4934.md
  • apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/72708d3a-a42e-4a96-9fe2-28081462ed31.md
  • apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9b726fd-1b6f-4444-a297-0dbdb73fdd3c.md
  • apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9e24316-a846-4e3c-8b20-52234859609e.md
  • apps/api/tests/integration/test_memory_router.py
  • apps/api/tests/unit/agents/test_ghost_text.py
  • apps/api/tests/unit/test_activity_router.py
  • apps/api/tests/unit/test_agent_engine_injection.py
  • apps/api/tests/unit/test_agent_engine_observability.py
  • apps/api/tests/unit/test_agent_soul.py
  • apps/api/tests/unit/test_async_tasks.py
  • apps/api/tests/unit/test_build_desktop_sidecar.py
  • apps/api/tests/unit/test_celery_routing.py
  • apps/api/tests/unit/test_chat_task_manager_persistence.py
  • apps/api/tests/unit/test_config_service.py
  • apps/api/tests/unit/test_conversation_service_memory_fallback.py
  • apps/api/tests/unit/test_deep_research_router.py
  • apps/api/tests/unit/test_desktop_chat_service.py
  • apps/api/tests/unit/test_desktop_local_search.py
  • apps/api/tests/unit/test_desktop_main.py
  • apps/api/tests/unit/test_desktop_runtime_service.py
  • apps/api/tests/unit/test_desktop_service.py
  • apps/api/tests/unit/test_ingestion_pipeline.py
  • apps/api/tests/unit/test_ingestion_tasks.py
  • apps/api/tests/unit/test_mcp_client.py
  • apps/api/tests/unit/test_memory_service.py
  • apps/api/tests/unit/test_message_generation_service.py
  • apps/api/tests/unit/test_monitoring_api.py
  • apps/api/tests/unit/test_note_router.py
  • apps/api/tests/unit/test_notebook_router.py
  • apps/api/tests/unit/test_notebook_settings.py
  • apps/api/tests/unit/test_prompt_context_bundle.py
  • apps/api/tests/unit/test_research_task_manager.py
  • apps/api/tests/unit/test_runtime_config_reload.py
  • apps/api/tests/unit/test_runtime_policy.py
  • apps/api/tests/unit/test_setup_router.py
  • apps/api/tests/unit/test_skill_registry_guides.py
  • apps/api/tests/unit/test_source_service_dispatch.py
  • apps/api/tests/unit/test_source_service_web_import.py
  • apps/api/tests/unit/test_suggestion_service.py
  • apps/api/tests/unit/test_upload_router.py
  • apps/desktop/.gitignore
  • apps/desktop/.vscode/extensions.json
  • apps/desktop/README.md
  • apps/desktop/eslint.config.js
  • apps/desktop/index.html
  • apps/desktop/package.json
  • apps/desktop/postcss.config.js
  • apps/desktop/src-tauri/.gitignore
  • apps/desktop/src-tauri/Cargo.toml
  • apps/desktop/src-tauri/binaries/README.md
  • apps/desktop/src-tauri/build.rs
  • apps/desktop/src-tauri/capabilities/default.json
  • apps/desktop/src-tauri/icons/icon.icns
  • apps/desktop/src-tauri/src/app/bootstrap.rs
  • apps/desktop/src-tauri/src/app/events.rs
  • apps/desktop/src-tauri/src/app/menu.rs
  • apps/desktop/src-tauri/src/app/mod.rs
  • apps/desktop/src-tauri/src/app/shortcuts.rs
  • apps/desktop/src-tauri/src/app/tray.rs
  • apps/desktop/src-tauri/src/app/windows.rs
  • apps/desktop/src-tauri/src/commands/diagnostics.rs
  • apps/desktop/src-tauri/src/commands/files.rs
  • apps/desktop/src-tauri/src/commands/mod.rs
  • apps/desktop/src-tauri/src/commands/runtime.rs
  • apps/desktop/src-tauri/src/commands/security.rs
  • apps/desktop/src-tauri/src/commands/shell.rs
  • apps/desktop/src-tauri/src/lib.rs
  • apps/desktop/src-tauri/src/native/diff.rs
  • apps/desktop/src-tauri/src/native/file_probe.rs
  • apps/desktop/src-tauri/src/native/hashing.rs
  • apps/desktop/src-tauri/src/native/mod.rs
  • apps/desktop/src-tauri/src/native/pdf_probe.rs
  • apps/desktop/src-tauri/src/native/preprocess.rs
  • apps/desktop/src-tauri/src/platform/clipboard.rs
  • apps/desktop/src-tauri/src/platform/dialogs.rs
  • apps/desktop/src-tauri/src/platform/file_system.rs
  • apps/desktop/src-tauri/src/platform/macos.rs
  • apps/desktop/src-tauri/src/platform/mod.rs
  • apps/desktop/src-tauri/src/platform/notifications.rs
  • apps/desktop/src-tauri/src/runtime/health.rs
  • apps/desktop/src-tauri/src/runtime/jobs.rs
  • apps/desktop/src-tauri/src/runtime/mod.rs
  • apps/desktop/src-tauri/src/runtime/sidecar.rs
  • apps/desktop/src-tauri/src/runtime/state.rs
  • apps/desktop/src-tauri/src/runtime/supervisor.rs
  • apps/desktop/src-tauri/src/runtime/watchers.rs
  • apps/desktop/src-tauri/src/security/keychain.rs
  • apps/desktop/src-tauri/src/security/mod.rs
  • apps/desktop/src-tauri/src/security/secrets.rs
  • apps/desktop/src-tauri/src/security/session.rs
  • apps/desktop/src-tauri/src/shared/mod.rs
  • apps/desktop/src-tauri/src/shared/types.rs
  • apps/desktop/src-tauri/tauri.conf.json
  • apps/desktop/src/App.css
  • apps/desktop/src/app.tsx
  • apps/desktop/src/components/ai-panel/ai-panel.tsx
  • apps/desktop/src/components/chat-input/chat-composer.tsx
  • apps/desktop/src/components/chat-input/desktop-chat-input.tsx
  • apps/desktop/src/components/editor/copilot-panel.tsx
  • apps/desktop/src/components/editor/editor-header.tsx
  • apps/desktop/src/components/editor/editor-toc.tsx
  • apps/desktop/src/components/editor/floating-orb.tsx
  • apps/desktop/src/components/editor/selection-menu.tsx
  • apps/desktop/src/components/runtime/runtime-status-screen.tsx
  • apps/desktop/src/components/sidebar/sidebar.tsx
  • apps/desktop/src/components/titlebar/title-bar.tsx
  • apps/desktop/src/components/titlebar/titlebar.tsx
  • apps/desktop/src/features/chat/chat-helpers.tsx
  • apps/desktop/src/features/chat/chat-types.ts
  • apps/desktop/src/features/chat/use-chat-page.ts
  • apps/desktop/src/features/chat/use-chat-stream.ts
  • apps/desktop/src/features/editor/use-copilot-stream.ts
  • apps/desktop/src/global.d.ts
  • apps/desktop/src/index.css
  • apps/desktop/src/layouts/main-layout.tsx
  • apps/desktop/src/lib/animations.ts
  • apps/desktop/src/lib/api-client.ts
  • apps/desktop/src/lib/auth-session.ts
  • apps/desktop/src/lib/cn.ts
  • apps/desktop/src/lib/desktop-bridge.ts
  • apps/desktop/src/lib/http-client.ts
  • apps/desktop/src/lib/http.ts
  • apps/desktop/src/lib/mappers.ts
  • apps/desktop/src/lib/next-dynamic-stub.tsx
  • apps/desktop/src/lib/next-image-stub.tsx
  • apps/desktop/src/lib/next-intl-stub.ts
  • apps/desktop/src/lib/query-client.ts
  • apps/desktop/src/lib/query-keys.ts
  • apps/desktop/src/lib/stubs/excalidraw-stub.tsx
  • apps/desktop/src/lib/stubs/markmap-lib-stub.ts
  • apps/desktop/src/lib/stubs/markmap-view-stub.ts
  • apps/desktop/src/lib/stubs/nivo-calendar-stub.tsx
  • apps/desktop/src/lib/tiptap.ts
  • apps/desktop/src/lib/utils.ts
  • apps/desktop/src/lib/window-service.ts
  • apps/desktop/src/main.tsx
  • apps/desktop/src/pages/chat/chat-page.tsx
  • apps/desktop/src/pages/editor/editor-page.tsx
  • apps/desktop/src/pages/home/home-page.tsx
  • apps/desktop/src/pages/knowledge.tsx
  • apps/desktop/src/pages/knowledge/knowledge-page.tsx
  • apps/desktop/src/pages/login.tsx
  • apps/desktop/src/pages/login/login-page.tsx
  • apps/desktop/src/pages/notebooks/notebooks-page.tsx
  • apps/desktop/src/pages/notes.tsx
  • apps/desktop/src/pages/quick-capture/quick-capture-page.tsx
  • apps/desktop/src/pages/settings/settings-page.tsx
  • apps/desktop/src/pages/setup/setup-page.tsx
  • apps/desktop/src/pages/tasks.tsx
  • apps/desktop/src/providers/query-provider.tsx
  • apps/desktop/src/services/auth-service.ts
  • apps/desktop/src/services/config-service.ts
  • apps/desktop/src/services/conversation-service.ts
  • apps/desktop/src/services/desktop-security-service.ts
  • apps/desktop/src/services/desktop-service.ts
  • apps/desktop/src/services/desktop-update-service.ts
  • apps/desktop/src/services/mcp-service.ts
  • apps/desktop/src/services/memory-service.ts
  • apps/desktop/src/services/native-file-service.ts
  • apps/desktop/src/services/note-service.ts
  • apps/desktop/src/services/notebook-service.ts
  • apps/desktop/src/services/skill-service.ts
  • apps/desktop/src/services/source-service.ts
  • apps/desktop/src/services/upload-service.ts
  • apps/desktop/src/store/use-auth-store.ts
  • apps/desktop/src/store/use-chat-draft-store.ts
  • apps/desktop/src/store/use-desktop-jobs-store.ts
  • apps/desktop/src/store/use-desktop-runtime-store.ts
  • apps/desktop/src/store/use-nav-store.ts
  • apps/desktop/src/store/use-tab-store.ts
  • apps/desktop/src/store/use-theme-store.ts
  • apps/desktop/src/store/use-ui-store.ts
  • apps/desktop/src/styles/globals.css
  • apps/desktop/src/types/index.ts
  • apps/desktop/src/vite-env.d.ts
  • apps/desktop/tailwind.config.js
  • apps/desktop/tests/setup/vitest.setup.ts
  • apps/desktop/tests/unit/components/runtime/runtime-status-screen.test.tsx
  • apps/desktop/tests/unit/hooks/use-chat-stream.test.tsx
  • apps/desktop/tests/unit/hooks/use-copilot-stream.test.tsx
  • apps/desktop/tests/unit/lib/auth-session.test.ts
  • apps/desktop/tests/unit/lib/desktop-bridge.test.ts
  • apps/desktop/tests/unit/pages/knowledge-page.test.tsx
  • apps/desktop/tests/unit/pages/quick-capture-page.test.tsx
  • apps/desktop/tests/unit/pages/settings-page-updates.test.tsx
  • apps/desktop/tests/unit/services/conversation-service.test.ts
  • apps/desktop/tests/unit/services/desktop-security-service.test.ts
  • apps/desktop/tests/unit/services/desktop-service.test.ts
  • apps/desktop/tests/unit/services/desktop-update-service.test.ts
  • apps/desktop/tests/unit/services/native-file-service.test.ts
  • apps/desktop/tests/unit/services/source-service.test.ts
  • apps/desktop/tests/unit/store/use-desktop-jobs-store.test.ts
  • apps/desktop/tsconfig.json
  • apps/desktop/tsconfig.node.json
  • apps/desktop/vite.config.ts
  • apps/desktop/vitest.config.ts
  • apps/monitoring/src/app/globals.css
  • apps/monitoring/src/components/app-shell.tsx
  • apps/monitoring/src/components/correlation-filter-panel.tsx
  • apps/monitoring/src/components/filter-bar.tsx
  • apps/monitoring/src/components/metric-card.tsx
  • apps/monitoring/src/components/overview-cards.tsx
  • apps/monitoring/src/components/section-card.tsx
  • apps/monitoring/src/components/status-badge.tsx
  • apps/monitoring/src/features/dashboard/overview-page.tsx

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/ingestion-pipeline-hardening

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Fix first bot message flickering by using stable _animKey instead of
msg.id as AnimatePresence key. Add popLayout transition between empty
state and message list, and AnimatePresence for bubble appearance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@LinMoQC
LinMoQC merged commit 7b2b89a into main Apr 25, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant