MicroFish/.kiro/specs
Dominik Seemann ebeff4940d fix(graph): default embeddings to local ollama and gate empty graph builds
Two coupled changes that together restore non-empty post-migration graph
builds and remove the silent "succeeded but empty" outcome.

Root cause: Config defaulted EMBEDDING_MODEL to OpenAI text-embedding-3-small
(1536 dim), but Graphiti's Neo4j vector index is 1024 dim. With the
documented Dashscope LLM default, EMBEDDING_API_KEY/EMBEDDING_BASE_URL
fell back to LLM_*, producing either a 4xx (since #29 propagates as
Task.FAILED) or a write that landed metadata but no entities.

Changes:
- Flip Config defaults to local Ollama (mxbai-embed-large, 1024 dim,
  http://localhost:11434/v1). Override semantics unchanged: explicit
  EMBEDDING_* env vars continue to win, so existing OpenAI/Gemini setups
  are not affected.
- Gate _build_graph_worker on a non-zero entity-node count before
  complete_task. Mirrors the existing _recover_stuck_projects rule;
  surfaces any residual silent failure as Task.FAILED with the new
  progress.emptyGraphFailure locale key, instead of marking the project
  GRAPH_COMPLETED on an empty graph.
- Update README, CLAUDE.md, and docker-compose.yml comments to reflect
  Ollama as the active default and OpenAI/Gemini as commented fallbacks.
- The matching .env.example diff is recorded in
  .kiro/specs/graph-build-empty-fix/HANDOFF.md for manual operator apply
  (file is hook-protected from the assistant).

Spec: .kiro/specs/graph-build-empty-fix/

Closes #37
2026-05-11 09:43:28 +00:00
..
graph-build-empty-fix fix(graph): default embeddings to local ollama and gate empty graph builds 2026-05-11 09:43:28 +00:00
graphiti-neo4j-finalize feat(graphiti): finalize neo4j migration with provider switch 2026-05-07 08:43:36 +00:00
graphiti-ollama-embedder fix(graphiti): surface embedding failures and document ollama embedder 2026-05-07 20:39:42 +00:00
i18n-backfill-zh-json fix(i18n): backfill english-only entries in zh.json 2026-05-07 15:32:30 +00:00
i18n-ci-guard chore(i18n): refresh cjk baseline and update spec status 2026-05-09 10:59:51 +00:00
i18n-e2e-english-verification chore(i18n): add e2e english verification spec, audit, and report 2026-05-07 18:44:13 +00:00
i18n-externalize-backend-logs feat(i18n): externalize chinese log and api response strings 2026-05-07 13:52:22 +00:00
i18n-externalize-remaining-backend-logs fix(i18n): externalize remaining chinese backend log strings 2026-05-07 22:40:18 +00:00
i18n-frontend-comments docs(i18n): translate chinese comments in frontend src to english 2026-05-07 17:42:05 +00:00
i18n-frontend-ui-strings fix(i18n): externalize chinese ui strings in process and step views 2026-05-07 21:57:06 +00:00
i18n-locale-parity-guard feat(i18n): enforce locale-key parity in pr-time ci guard 2026-05-09 00:46:37 +00:00
i18n-oasis-profile-generator-prompts Merge remote-tracking branch 'origin/main' into feat/25-i18n-oasis-profile-generator-prompts 2026-05-11 11:19:46 +02:00
i18n-ontology-generator-prompts feat(i18n): translate ontology_generator prompts to english 2026-05-07 09:40:27 +00:00
i18n-readme-tagline-and-assets docs(i18n): translate readme tagline and rename chinese assets 2026-05-07 19:39:30 +00:00
i18n-report-agent-prompts feat(i18n): translate report_agent react prompts to english 2026-05-07 12:49:23 +00:00
i18n-simulation-config-generator-prompts feat(i18n): translate simulation_config_generator prompts to english 2026-05-07 11:43:47 +00:00
i18n-translate-backend-comments chore(i18n): refresh cjk baseline and update spec status 2026-05-09 10:59:51 +00:00