- REQUIRED_SECRETS include acum hf_token alături de discord_token - teste actualizate pentru noul set de secrete obligatorii (+ test_partial_required) - gates rulate: tests PASS (22 eșecuri preexistente neschimbate), /review (backend) PASS
47 lines
3.3 KiB
Plaintext
47 lines
3.3 KiB
Plaintext
# Ralph Progress Log
|
|
Started: 2026-07-11 09:56
|
|
Project: echo-core
|
|
---
|
|
|
|
## Iterație: 2026-07-11 10:03
|
|
### Story implementat: US-001 - Setup venv-pockettts și pocket-tts.service systemd unit (tags: infra)
|
|
### Status: Complete
|
|
|
|
### Gates rulate:
|
|
- Typecheck: SKIP (mypy neinstalat în .venv; niciun fișier Python schimbat de acest story)
|
|
- Lint: SKIP (ruff neinstalat în .venv; niciun fișier Python schimbat)
|
|
- Tests: PASS parțial — pytest tests/ rulează cu 22 eșecuri preexistente, nelegate de acest story (nu am schimbat cod Python); 1042 passed
|
|
- /review (infra): PASS — diff minimal (.gitignore +1 linie, launcher shell script nou); fără shell injection, fără secret leakage (hf_token citit din keyring, niciodată logat/hardcodat)
|
|
- Smoke test manual: curl -s http://127.0.0.1:7789/health -> 200; systemctl --user restart pocket-tts.service -> health revine 200 în ~3-6s; systemctl --user is-enabled -> enabled
|
|
|
|
### Learnings:
|
|
- Implementarea de bază (venv, launcher, systemd unit) fusese deja făcută într-o iterație anterioară care nu apucase să facă commit/mark passes — la începutul iterației verifică mereu starea reală (ls, systemctl status, curl) înainte să presupui că trebuie construit de la zero.
|
|
- Pattern existent: doar dashboard/echo-taskboard.service e trackuit în git ca template; supertonic-tts.service (alt serviciu existent) NU e trackuit — deci pocket-tts.service urmează același pattern, rămâne doar în ~/.config/systemd/user/, nu în repo.
|
|
- .venv al proiectului nu are ruff/mypy instalate — gate-urile de typecheck/lint din PRD sunt aspiraționale, nu configurate încă; pentru story-uri Python viitoare (US-002+) verifică disponibilitatea înainte să te bazezi pe fail/pass real.
|
|
|
|
### Next:
|
|
- US-002 (backend, hf_token în REQUIRED_SECRETS) — eligibil, dependsOn gol
|
|
- US-003 (db+backend, catalog tts_voices.json) — eligibil, dependsOn gol
|
|
- US-005 (backend, config.json tts section) — eligibil, dependsOn gol
|
|
---
|
|
|
|
## Iterație: 2026-07-11 (US-002)
|
|
### Story implementat: US-002 - Adaugă hf_token la verificarea de secrete în credential_store (tags: backend)
|
|
### Status: Complete
|
|
|
|
### Gates rulate:
|
|
- Typecheck: SKIP (mypy neinstalat în .venv)
|
|
- Lint: SKIP (ruff neinstalat în .venv)
|
|
- Tests: PASS — pytest tests/ rulează cu aceleași 22 eșecuri preexistente (neschimbate, confirmat prin git stash diff), 1043 passed (vs 1042 înainte, +1 test nou)
|
|
- /review (backend): PASS — diff trivial (o linie de date + teste actualizate), fără risc de corectitudine/securitate
|
|
|
|
### Learnings:
|
|
- REQUIRED_SECRETS e folosit doar de check_secrets() (CLI `eco secrets test` / `eco doctor`), nu blochează startup-ul aplicației — sigur de extins fără risc de regressie funcțională.
|
|
- Testele existente pentru check_secrets asertau egalitate exactă de dict, deci orice extindere a REQUIRED_SECRETS necesită update sincron al testelor (test_missing_required, test_present_required, test_all_present din TestCLISecretsTest).
|
|
- Cei 22 de eșecuri preexistenți (test_cli.py::TestDoctor::test_all_pass, test_discord.py, test_heartbeat.py, test_voice_normalize.py etc.) sunt independenți de acest story — verificat cu `git stash` înainte/după.
|
|
|
|
### Next:
|
|
- US-003 (db+backend, catalog tts_voices.json) — eligibil, dependsOn gol
|
|
- US-005 (backend, config.json tts section) — eligibil, dependsOn gol
|
|
---
|