eSlider
678a1d1dba
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
8781c0c3eb
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
eSlider
6f766226f6
feat(kb): fill brain from eslider portfolio, evidence gates green
...
- kb/index: index yaml seeds (knowledge-mesh, workspace catalogs) as leafs
- kblib: open_readonly no longer writes schema; INSTALL extensions helper
- facts/audit db: drop init_schema on read-only connection
- kb/eval: assert by text fragment not stale leaf ids; recall@5 = 1.0
- corpus: var/kb.lbug rebuilt with eslider/cv (4580 leafs) + ops facts
Confirmed facts now: eslider DevOps/25yr engineer (CV README x career-timeline)
+ 13 ops facts (docker ps x compose, ssh x docs).
2026-08-10 22:12:52 +01:00
eSlider
4fdc0ef4a8
feat(kb): brain tools, Go async serve, root-level docker
...
- tools/kblib.py: ladybug schema, embeddings, FTS+vector, hybrid RRF
- bin/kb/{index,search,get,stats,eval}: corpus indexing + deduction search
- bin/facts/{extract,audit}: 2-source evidence acquisition + gates
- serve/: async Go HTTP server (goroutines, bounded worker pool), TDD
- docker/ flattened to root: compose.yaml + Dockerfile (multi-stage Go)
- docker scripts -> bin/ shebang pattern (kb-watch, docker-entrypoint)
- bin/ci/semver + tools/semver.py: conventional-commit semver release
- ci.yml: go tests + shell checks; drop release-please (PR toggle blocked)
2026-08-10 21:58:25 +01:00