Knowledge files were only partitioned in the database, which made nested uploads, local folder visibility, and delete behavior diverge from the UI. This change makes folder selection drive physical storage paths, keeps original filenames, adds a minimal WebDAV mount/sync path, and reshapes the knowledge panel so local and remote sources can share the same surface. Constraint: Existing knowledge flow already depends on local-folder-backed uploads and document indexing Rejected: Real-time bidirectional WebDAV sync | too much conflict and lifecycle complexity for the first pass Confidence: medium Scope-risk: moderate Reversibility: messy Directive: Keep remote mounts single-direction into local knowledge folders until etag-based incremental sync and conflict rules are verified Tested: Python py_compile on new/modified backend files; LSP diagnostics on new frontend/backend files; manual targeted code-path inspection Not-tested: Full pytest/vitest end-to-end runs blocked by environment temp/cache permission errors; live WebDAV server interoperability
Jarvis Backend
快速开始
1. 安装依赖
cd backend
uv sync
2. 配置环境变量
cd ..
cp backend/.env.example .env
# 编辑项目根目录 .env
3. 启动开发服务器
uv run uvicorn app.main:app --reload --host "$HOST" --port "$PORT"
4. API 文档
启动后访问 http://<HOST>:<PORT>/docs 查看交互式 API 文档(以项目根目录 .env 中的 HOST 和 PORT 为准)。
环境变量
见 .env.example
数据库
SQLite 数据库位于 ./data/jarvis.db,首次启动自动创建表。