gadget/docs
Rob Colbert 56f35a2fdf feat: Qdrant semantic search over chat history
Adds vector-based semantic search across all chat sessions using Qdrant.
When a ChatTurn finishes, its content is chunked, embedded, and upserted
to a Qdrant collection. A search API and UI components enable searching
at user, project, and session scope.

Phase 1 — Configuration & Dependencies
- Add port/apiKey to GadgetCodeConfig.qdrant type
- Uncomment and update qdrant section in YAML config example
- Add qdrant config passthrough in env.ts
- Add @qdrant/js-client-rest dependency

Phase 2 — AI Embedding API (@gadget/ai)
- Add IAiEmbeddingResponse interface and abstract embeddings() to AiApi
- Implement embeddings() in OllamaAiApi (client.embeddings)
- Implement embeddings() in OpenAiApi (client.embeddings.create)
- Export IAiEmbeddingResponse from package index

Phase 3 — Backend Vector Store Service
- Create VectorStoreService (ingestTurn, search, removeTurnPoints)
- Hook fire-and-forget ingest after turn.save() in drone-session
- Register VectorStoreService in service startup/shutdown

Phase 4 — Backend Search API
- Create POST /api/v1/search controller with userId enforcement
- Batch-hydrate results from MongoDB (user, project, session, turn)
- Register search route in v1 API router

Phase 5 — Frontend Search Components
- SearchInput: debounced input with lucide-react icons
- ChatSearchResults: modal with score badges, metadata, loading states
- DroneSelectionModal: drone picker for sessions without a drone
- Add searchApi and ISearchResult to API client
- Add search to Home (global), ProjectManager (project), ChatSessionView (session)
- Add id=turn-{turnId} to ChatTurn for scroll targeting
- Scroll-to-turn from search result selection and router state
- Show DroneSelectionModal when no drone available
- Add Select Drone button in ChatSessionView sidebar
2026-05-19 14:28:30 -04:00
..
agent-knowledge project manager and chat session progress 2026-05-01 08:13:22 -04:00
archive integrate docs/archive/* for reference until no longer needed 2026-05-11 11:30:02 -04:00
executive a pile of small fixes 2026-05-11 07:08:18 -04:00
install feat: Qdrant semantic search over chat history 2026-05-19 14:28:30 -04:00
temp prep work for landing page project 2026-05-13 13:15:56 -04:00
abort-controller.md added Gab AI affiliate link; changed Ollama abort procedure 2026-05-15 14:11:45 -04:00
agent-toolbox.md docs: add gadget-tasks documentation, update README and agent-toolbox 2026-05-17 01:30:35 -04:00
architecture.md doc updates for straming response task 2026-05-07 12:30:58 -04:00
configuration.md make reasoning effort configurable; remove sign up concept 2026-05-08 11:40:30 -04:00
drone-logger.md GadgetLogTransportSocket and the drone-to-IDE log 2026-05-09 07:16:50 -04:00
gadget-grid.md use for all home views 2026-05-01 21:19:16 -04:00
gadget-id.md finishing touches on move to GadgetId from ObjectId 2026-05-01 15:07:37 -04:00
gadget-tasks.md docs: add gadget-tasks documentation, update README and agent-toolbox 2026-05-17 01:30:35 -04:00
gadget-workspace.md human draft 2026-04-29 12:30:54 -04:00
landing-page.md updated by agent 2026-05-13 20:01:02 -04:00
philosophy.md typo fixes 2026-05-15 19:38:02 -04:00
reasoning-effort.md make reasoning effort configurable; remove sign up concept 2026-05-08 11:40:30 -04:00
session-heartbeat.md chat session heartbeat and session unlock 2026-05-08 14:27:37 -04:00
socket-protocol.md Phase 2: SubProcess observability in DroneManager and DroneInspector 2026-05-14 13:52:59 -04:00
streaming-responses.md make reasoning effort configurable; remove sign up concept 2026-05-08 11:40:30 -04:00
subagent-context.md subagent context management 2026-05-17 10:21:41 -04:00
subagents.md created 2026-05-11 11:08:29 -04:00
support.md doc updates 2026-04-30 08:00:00 -04:00
workspace-management.md final notes from agent 2026-05-02 18:21:44 -04:00