Ședințele tale, în propriul repository

Dacă folderul cu transcrieri se află într-un repository git, Earkeep face commit fișierului fiecărei zile când se încheie ziua, când se schimbă o ședință sau în ambele cazuri, apoi face push pe remote-urile pe care repository-ul tău le are deja. Fiecare parte este o setare, iar repository-ul rămâne al tău.

Problema: evidența nu are istoric

Evidența Earkeep este deja formată din fișiere simple: un fișier JSONL pe zi, într-un folder ales de tine, adesea chiar în repository-ul unde ții notițele. Dar un folder are versiuni doar dacă cineva face commit, iar commit-ul făcut manual se oprește până miercuri. Așa că Earkeep face commit-urile și lasă restul repository-ului în seama ta.

Cum funcționează

Se activează doar într-un repository. Când folderul cu transcrieri, sau unul de deasupra lui, este un repository git, funcția apare în Setări → Stocare și Git. Altfel, există un singur buton care rulează git init, singura cale prin care Earkeep creează vreodată un repository.

Alegi tu când face commit: la sfârșitul zilei, când se schimbă o ședință, în ambele cazuri (implicit) sau niciodată.

  • La sfârșitul zilei înseamnă la cinci minute după miezul nopții. Un laptop aflat în repaus la miezul nopții face commit pentru ziua de ieri când se trezește.
  • Când se schimbă o ședință înseamnă salvată, încheiată, redimensionată, redenumită sau ștearsă, la câteva secunde după ultima modificare, așa că o muchie trasă dintr-o parte în alta înseamnă un singur commit. Începerea unei ședințe nu face commit, și nici liniile noi de transcriere singure.

Un commit pe fișier de zi, și nimic altceva. Ce ai pregătit tu însuți pentru commit (staged) rămâne în afara commit-urilor Earkeep, iar un fișier de zi exclus de .gitignore este lăsat deoparte.

Doar pe un branch permis: main (sau master), orice branch este activ sau unul pe care îl numești tu. Pe orice alt branch nu se face niciun commit, iar Setările spun de ce.

Mesaje de commit care spun ce s-a întâmplat

Fiecare mesaj numește ziua și ședința, așa că git log --oneline se citește ca săptămâna pe care ai avut-o:

shell
$ git log --oneline -- meetings/
4e1c0a7 Earkeep 2026-10-12: transcript of the day
9b2f61d Earkeep 2026-10-12: Roadmap review
51d8e3a Earkeep 2026-10-12: update Weekly sync
c07a9f2 Earkeep 2026-10-12: Weekly sync
8a44b1e Earkeep 2026-10-11: transcript of the day

Fiecare mesaj este un șablon pe care îl poți rescrie în Setări, câte unul pentru fiecare eveniment, cu {date} și {meeting} ca substituenți.

Push-ul este o alegere separată

Faci push pe toate remote-urile (implicit), pe cele alese de tine sau deloc, iar fiecare commit rămâne pe dispozitivul tău.

Aceasta este singura cale prin care o transcriere pleacă de pe dispozitivul tău, și doar către un remote configurat de tine, sub propriul tău cont. Earkeep nu are niciun server pe acest traseu.

Este git-ul tău, așa că agentul tău SSH, credential helper-ele și hook-urile se aplică la fel ca în terminal. Un push care ar cere o parolă sau o frază-parolă eșuează imediat și spune de ce, în loc să aștepte la un prompt pe care nu-l vede nimeni.

Un remote care a avansat este tras (pull), nu refuzat. Earkeep face ce face git pull --rebase --autostash, apoi face push. Înregistrarea continuă; editarea unei ședințe este oprită pentru acel moment și îți spune acest lucru.

Conflictele le rezolvă un agent, nu rămân în seama ta

Când commit-urile remote-ului intră în conflict cu ale tale, Earkeep predă rebase-ul oprit unuia dintre agenții ACP de pe calculatorul tău, de exemplu Claude Code sau Codex. Apoi verifică repository-ul, nu răspunsul agentului: rebase-ul s-a terminat, commit-urile ambelor părți sunt acolo, nu a rămas niciun marcaj de conflict. Abia atunci face push.

Orice rămâne sub acest prag este anulat: rebase-ul este abandonat, branch-ul și modificările tale necomise revin cum erau, iar Earkeep îți spune ce a zis agentul. Agentul este propria ta unealtă, cu propria ta cheie, așa că ceea ce citește ajunge oriunde trimite în mod obișnuit acel agent.

Când un push eșuează, afli

Eroarea apare deasupra transcrierii, în cuvinte simple (remote-ul ți-a respins cheia, gazda nu a putut fi contactată, un conflict are nevoie de tine), iar dedesubt apar cuvintele proprii ale git-ului. Earkeep reîncearcă la fiecare cinci minute, așa că, după ce cauza este remediată, push-ul trece.

Pagini înrudite

Întrebări frecvente

Are Earkeep nevoie de un repository git ca să funcționeze?

Nu. Fără unul, transcrierile sunt fișiere simple într-un folder; cu unul, Earkeep face și commit pentru ele, iar tu poți opri asta.

Va face commit și altor fișiere ale mele?

Nu. Fiecare commit conține fișierul de transcriere al unei zile și nimic altceva; tot ce ai pregătit tu însuți (staged) rămâne în afara lui.

Îmi părăsesc transcrierile dispozitivul?

Doar către remote-urile pe care le-ai configurat tu. Oprește push-ul și fiecare commit rămâne pe dispozitivul tău.

Îmi sincronizează ședințele între calculatoare?

Nu. Earkeep face commit și push, iar pull doar ca să poată face push. Ce ajunge pe celelalte calculatoare ale tale depinde de repository-ul tău.

Ce se întâmplă dacă sunt pe un feature branch când se încheie ziua?

Acolo nu se face niciun commit. Setările arată că ziua așteaptă, iar commit-ul se face după ce revii pe un branch permis.

Se face commit pentru o ședință când începe?

Nu. Se face commit când se încheie sau când o modifici, nu cât timp transcrierea ei încă se scrie.

Ce se întâmplă dacă agentul de conflicte greșește?

Earkeep verifică rezultatul înainte de push. Dacă ceva nu e în regulă, rebase-ul este abandonat, repository-ul tău revine cum era și vezi de ce.

Pot să îmi scriu propriile mesaje de commit?

Da: un șablon pentru fiecare eveniment în Setări → Stocare și Git, cu {date} și {meeting} ca substituenți.

Un istoric al fiecărei ședințe, într-un repository care îți aparține

Probă completă de 14 zile, fără cont.