eSlider
60c20ed98d
feat(mail): full Gmail+OnlyOffice sync, import, and brain indexing
...
- bin/mail/sync.go: async Go sync engine (8 workers, paginated Gmail via
API + OnlyOffice IMAP); Gmail attachments key off body.attachmentId, not
MIME partId; ICS sidecars Latin-1->UTF-8 normalized (TestICSToMarkdownNormalizesLatin1)
- bin/mail/import: message.json -> markdown; PDFs via pdftotext -layout
fast path with docling subprocess fallback for the ~5% textless files
- bin/mail/index_mail: fresh-rebuild indexer (repo corpus + mail) avoiding
ladybug WAL corruption on bulk-insert into indexed DBs; split from import
- bin/kb/index: keep FTS/VECTOR indexes across incremental runs (drop+recreate
leaves stale backing tables killing the vector index)
- docs: README/PLAN/AGENTS cover the mail pipeline
Result: 17,835 messages -> 28,918 info leafs, FTS+HNSW healthy.
2026-08-11 21:57:38 +01:00
eSlider
9f22380e82
refactor(tools): bin/{subject}/{method} layout; Go serve+watch modules
...
Move serve/ (module) -> bin/server, tools/ -> bin/tools, replace bin/kb-watch
bash with bin/watch Go package; self-executing Go shebangs bin/serve.go and
bin/kb/watch.go; Docker + CI + git/import + docs repointed. Multi-stage image
builds static serve+watch binaries (no Go runtime in container).
2026-08-11 09:52:20 +01:00