Cele două linkuri Facebook din 31 aug erau video-uri DIFERITE, nu unul singur —
de aceea retry-urile au produs duplicate în loc să acopere ambele.
- adaugă „How to Do ACTIVE RECALL Effectively" (Simple, actually, 9:14) și
„How to Study & Learn Using Active Recall" (Huberman × Cal Newport, 5:39),
transcrise corect în engleză, cu TL;DR completat
- șterge 807k-views-15k-reactions.md și 810k-views-15k-reactions.md: ambele erau
același link, transcrise cu `ro` forțat pe audio englezesc (text halucinat)
- adaugă nota YouTube din 29 aug rămasă necomisă
- reindexare via tools/update_notes_index.py
cron/: bookkeeping de last_run/next_run scris de scheduler.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0188YmDTUAzVvZDVh8JL8xSa
VM 109 a ajuns pe pvemini pe 27 aug fara ca root-ul de acolo sa aiba cheia
SSH autorizata pe Windows guest, ceea ce a stricat testul DR saptamanal
(eroare de auth SSH mascata drept "NFS/restore failed"). Migrat inapoi pe
pveelite (unde cheia originala functioneaza) si documentat gap-ul structural
din procedura de failover/migrare pentru viitor.
- dashboard/handlers/files.py: handle_files_download() servește mp3/wav/zip
din WORKSPACE_DIR cu Content-Disposition attachment, resolve dedicat
(nu _resolve_sandboxed, care nu ajunge niciodată la WORKSPACE_DIR)
- dashboard/api.py: rutează /api/files/download
- tools/epub_to_audio.py: tool nou de conversie EPUB → audio
- cron/jobs.json, memory/kb/index.json: stare auto-generată (job runs,
regenerare index KB)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fallback-ul local (Qwen3.5-2B, LXC 104) raspundea ca nu are unelte sau
internet. Acum conversează, are unelte read-only si istoric per canal.
Unelte (allowlist strict read-only, src/local_fallback_tools.py):
- cauta_web — DuckDuckGo Lite, fara API key
- masini — status Proxmox/LXC prin SSH paralel (src/net_status.py)
- vremea, sold, facturi, trezorerie, doctor, logs, email, kb,
cauta_memorie, citeste_pagina
Protocol: function calling OpenAI nativ. Protocolul text anterior
("TOOL: nume arg") pierdea argumentul in 100% din cazuri.
Uneltele cu output deja formatat se intorc verbatim — modelul de 2B
transforma un `doctor` cu 5 linii OK in "Sistemul este in 5/5 state.".
Doua treceri: prima decide uneltele (cu tools, temp 0), a doua reface
turnul fara ele — prezenta definitiilor strica raspunsurile simple
("cat fac 128/4?" -> "Nu stiu ce inseamna 128/4"). Few-shot doar pe
cereri creative: pe turnuri factuale strica aritmetica (17*23 -> 471).
Ocoliri deterministe pentru ce modelul greseste reproductibil: vremea si
preturile live (raspundea din memorie), plus sarcini "instructiune: text"
(payload-ul dicta unealta — "scrie mai politicos: da-mi raportul acum"
chema `sold`). llama.cpp nu e determinist nici la temperatura 0 si
ignora tool_choice, deci promptul singur nu ajunge.
Masurat: 36/36 pe set combinat (17 alegere unealta + 19 comprehensiune),
de la 14/19 pe comprehensiune inainte de regulile negative din prompt.
Comenzi: /f (inlocuieste /testfallback, ramas alias), /f reset, /masini.
Prefixul "Claude e la limita" apare doar pe calea de rate limit.
roa2web: /otp <cod> pentru 2FA din chat — mesajul de eroare trimitea la
verify_2fa(code, email), imposibil de rulat din Discord.
Corectat memory/kb/tools/infrastructure.md: LXC 101 si 110 sunt pe pve1.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B88u3KkzvUNnzU56y7GBn2
Pre-existing work committed before starting Ralph self-improvement run on
ralph/echo-improve branch, so that branch's diff stays isolated to the
pocket-tts integration.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Jobul intern rula pe zile greșite (vineri/sâmbătă/marți în loc de
joi/vineri/luni) din cauza convenției diferite de day-of-week dintre
APScheduler și crontab standard. Scriptul standalone via OS crontab
e mecanismul corect și funcțional — rămâne singura sursă.
chore: sync stare working-tree — cron, KB notes, anaf-monitor snapshots
Pre-existing uncommitted changes swept in with the STT work:
anaf-monitor snapshots/versions, cron job + newsletter state, 9 youtube KB
notes, tools/ocr_bon.py, and tools/tts.py.
Note: the tts.py change breaks 2 truncation tests in test_voice_normalize.py
(sanitize word-count) — flagged for a separate follow-up.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- dashboard/handlers/youtube.py: după descărcare transcriere, cheamă
`claude -p` cu un prompt structurat care generează TL;DR + puncte cheie
+ citate + idei acționabile + secțiuni tematice în proze. Fallback la
transcriptul brut dacă Claude eșuează.
- nota Grantham: format complet — TL;DR, puncte cheie, citate,
idei acționabile, secțiuni tematice în proze curgătoare.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Expose a navigation layer to the agent and harden RAG, after analyzing the
OKF note and testing on the real KB.
- memory_search.search(): dedupe best-chunk-per-file (a relevant note can no
longer be buried by another file's chunks) + keyword fallback tagged
degraded:True when Ollama is unreachable (no more hard crash).
- update_notes_index.py: emit per-folder index.md + root router; prune empty
folders; fix latent subcategory->project bug.
- Exclude generated index.md from RAG rglob (reindex/incremental) + indexer
scans + heartbeat freshness check (prevents self-pollution / reindex thrash).
- CLAUDE.md: reframe memory as hybrid (navigation first, RAG for fuzzy recall).
- Delete stale orphan kb/youtube/index.json; correct the OKF source note.
- Tests: dedup, keyword fallback, index.md exclusion. Plan + review in docs/.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- tools/youtube_subs.py: get_subtitles() returneaza acum (title, desc, transcript).
Functii noi is_description_about_video() si extract_relevant_description()
detecteaza daca descrierea contine capitole/timestamps (nu doar promotie autori)
si curata trailing-urile promotionale inainte sa includa descrierea in output.
- dashboard/handlers/youtube.py: aceleasi functii adaugate; nota KB generata
include acum un bloc "Descriere / Index" daca descrierea e relevanta pentru video.
- memory/kb/youtube: nota Jeremy Grantham (AI bubble, investitii, toxicitate)
cu descrierea ca index de capitole.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
La salvarea unui email forwardat, se extrage acum expeditorul original
din body și se elimină prefixul Fwd: din titlu — în loc de adresa lui Marius.
Corectat și fișierul deja salvat din 07 mai.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
State files updated by dashboard/heartbeat/cron jobs, plus new KB
captures (samsung firmware todo, scout song reel, weekly youtube notes).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Clone romfastsql repo local pe /home/moltbot/workspace/romfastsql/
- Fix: LXC 171 e pe pvemini, nu pveelite
- Adaug secțiuni lipsă: HA groups, corosync token tuning (post-incident 2026-04-20)
- Diagnostic tools: rasdaemon, netconsole, kdump-tools
- OOM alerting, mail notifications, swap pveelite
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
LXC 171 mutat pe pveelite (nu pvemini), RAM 4GB (nu 16GB).
LXC 110 disk 8GB (nu 30GB), SSH user moltbot@.
Adăugat VM 302 (oracle-test, 10.0.20.130).
VM 201 extins cu detalii IIS, domenii, Win-ACME, ZFS replication.
VM 109 extins cu Oracle 19c, schedule backup RMAN.
Proxmox VE 8.4.14, storage cluster documentat.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
memory/* was fully ignored; now only memory/kb/ is tracked
so notes, coaching sessions, insights, and project docs are
versioned while embeddings and sqlite databases stay untracked.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>