Backends
scripts/search_server.py sirve la visualización (~/nef/second-brain/dist) y expone /api/search.
--backend auto (default): Worker si hay token; local si no. Si el Worker falla, cae al FTS local e incluye fallback en la respuesta.
--backend worker|local para forzar.
- Worker:
https://second-brain-search.nef.workers.dev → D1 second-brain-search (5,911 tweets + 130,626 likes).
dist/serve-graph.command ahora arranca search_server.py en el puerto 8765 (antes http.server sin API).
Token
- Se lee de
SEARCH_TOKEN o de worker/.dev.vars (ignorado por git).
- Secret remoto
SEARCH_TOKEN configurado en el Worker (verificado con wrangler secret list).
- No está en el env del shell ni en rc files.
Git
- Rama de trabajo:
feature/search-tweets-likes (commits abbe8c1, 41240e1, 385dffe).
- Corpus/datos fuera de tracking en esa rama; los archivos siguen en disco.
- Pendiente (otra sesión): purga de historial (
git filter-repo) en todas las ramas.
Detalle
- Cloudflare bloquea el User-Agent
Python-urllib/3.x con 403; el server usa second-brain-search/1.0.
FTS5 (2026-09-11)
- D1 migrado a FTS5:
tweets_fts (5,911) y likes_fts (130,626); schema en worker/schema_fts.sql.
- Worker usa
MATCH con prefijos ("term"* unidos por AND) y ORDER BY rank; commit f00a70f.
- Costo por búsqueda: ~29 filas leídas (antes: full scan de hasta ~136k con LIKE). La cuota free de 5M filas/día deja de ser el cuello de botella.
- Import final: tweets 5,911 + likes 130,626 (verificado). Writes de FTS5 en D1 se cuentan por operación (baratos).