deepDDW 0.1.0 — First Formal Release
deepDDW 0.1.0 — First Formal Release
deepDDW: memory & knowledge base for DeepSeek Harness, reachable from any device on your LAN.
MIT licensed · Python 3.11+ · No GPU required · Single-server, team-ready (up to ~20 users)
This is the first formal release. Compared to the initial trimmed open-source snapshot, 0.1.0 ships the full stability base, the memory subsystem, and three deployment paths — all verified end-to-end on real hardware.
What's New vs the Initial Version
🚀 Deployment & Packaging
- Docker one-click deployment —
docker compose -f deepddw-compose.yml up -d --build(gateway + SearXNG), verified end-to-end on a real macOS arm64 host: containers healthy, MCP tools/call and chat verified inside the container - Windows standalone exe — PyInstaller one-dir build, auto-produced by the
windows-buildGitHub Actions workflow (green build + in-container smoke test:/health200, auth gate 401); data lives under%USERPROFILE%\.deepddw, upgrades = folder replacement - GitHub Actions CI — pytest full suite + ruff (F/E9 zero-tolerance) + leak scan, all green on every push
🧠 Memory Subsystem (rebuilt)
- Layered memory — user rules / project notes / daily logs / daily reflections, plus archive; migrated from the old flat key-value store with a migration script (old data preserved)
- Automatic memory injection — chat assembles a
<memory_system>block into the system prompt (budget-capped at 2400 chars, RAG context first, memory after) - LLM-powered memory — keyword expansion for retrieval (natural language → 3–6 search keywords, cached 1h), AI distillation of conversations into daily logs, daily reflection auto-generated from recent logs (all with graceful degradation when the LLM is unavailable)
- Auto-consolidation — after each chat reply the conversation is distilled into today's memory in the background (skippable via
auto_consolidate: false)
🔍 Knowledge Base
- Hybrid vector + keyword retrieval — LanceDB hash-trick embeddings + SQLite FTS5/LIKE, RRF fusion; auto-degrades to keyword-only when LanceDB is absent
- Automatic RAG — chat queries hit the knowledge base first (≤3 hits × 600 chars into system context),
ragflag on by default - Session → document — conversations saved as searchable docs via MCP tools, traceable per session
🛡️ Security Hardening
- Token gate (Bearer /
X-DDW-Token), fail-fast when unconfigured; LAN bypass disabled by default - One-time 60s scan-to-pair codes (no long-token exposure in QR/URL)
- Cross-site proxy request rejection (
sec-fetch-site), CORS configurable and narrowed, API keys encrypted at rest (Fernet), keys never returned in plaintext - Trusted-proxy aware client-IP detection (strict private ranges)
🔌 MCP (dual protocol)
- streamable-http (2025-03-26) + classic JSON-RPC (2024-11-05), 14 tools:
ddw.llm.chat,ddw.kb.search,ddw.memory.*(9),ddw.docs.save,ddw.session.docs,ddw.docs_portal.search - Lenient session mode: stale MCP sessions auto-recreate without restart
Quality Gates (all green at this release)
| Gate | Result |
|---|---|
| pytest (tests/ + plugins/) | 105 passed (macOS host + 16 GB test device) |
| ruff --select=F,E9 | zero violations |
| ruff --select=E,W,F net-new vs HEAD | 0 |
| py_compile full tree | pass |
| GitHub Actions (CI + windows-build) | both green |
| Leak scan (commercial/business identifiers) | none |
Quick Start
# Docker (recommended)
cp .env.example .env # set DDW_ACCESS_TOKEN
docker compose -f deepddw-compose.yml up -d --build
# → http://<server-ip>:8500/
# Or bare metal
pip install -r requirements.txt
uvicorn core.main:app --host 0.0.0.0 --port 8500
# Or Windows
# download deepddw-windows.zip from Actions artifacts → run deepddw.exeSee README.md for details, security notes, and the roadmap.
deepDDW — enterprise-grade capability, open-sourced for everyone.