Je meetings, gecommit in je eigen repository

Staat je transcriptmap in een git-repository, dan commit Earkeep het bestand van elke dag erin: aan het eind van de dag, wanneer een meeting verandert, of allebei. Daarna pusht Earkeep naar de remotes die je repository al heeft. Elk onderdeel is een instelling en de repository blijft van jou.

Het probleem: het archief heeft geen geschiedenis

Het archief van Earkeep bestaat al uit gewone bestanden: één JSONL-bestand per dag, in een map die jij kiest, vaak in de repository waar je notities staan. Maar een map heeft pas versiebeheer als iemand hem commit, en handmatig committen houdt je tot woensdag vol. Daarom doet Earkeep de commits en laat het de rest van de repository aan jou.

Zo werkt het

Het gaat alleen aan binnen een repository. Is de transcriptmap, of een map erboven, een git-repository, dan biedt Settings → Storage & Git de functie aan. Anders vind je er één knop die git init uitvoert, de enige manier waarop Earkeep ooit een repository aanmaakt.

Jij kiest wanneer er gecommit wordt: aan het eind van een dag, wanneer een meeting verandert, allebei (de standaard) of nooit.

  • Aan het eind van een dag betekent vijf minuten na middernacht. Slaapt je laptop om middernacht, dan commit hij gisteren zodra hij wakker wordt.
  • Wanneer een meeting verandert betekent opgeslagen, beëindigd, in lengte aangepast, hernoemd of verwijderd, een paar seconden na de laatste wijziging, zodat het slepen van een rand één commit is. Het starten van een meeting levert geen commit op, en nieuwe transcriptregels op zich ook niet.

Eén commit per dagbestand, en niets anders. Wat je zelf hebt gestaged, blijft buiten de commits van Earkeep, en een dagbestand dat je .gitignore uitsluit, wordt overgeslagen.

Alleen op een branch die je toestaat: main (of master), welke branch er ook is uitgecheckt, of een branch die je zelf opgeeft. Op elke andere branch wordt er niets gecommit en vermeldt Settings waarom.

Commitberichten die zeggen wat er gebeurde

Elk bericht noemt de dag en de meeting, zodat git log --oneline leest als de week die je hebt gehad:

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

Elk bericht is een sjabloon dat je in Settings kunt herschrijven, één per gebeurtenis, met {date} en {meeting} als plaatsaanduidingen.

Pushen is een aparte keuze

Push naar elke remote (de standaard), naar de remotes die je kiest, of helemaal niet, en elke commit blijft op je apparaat.

Dit is de enige manier waarop een transcript je apparaat verlaat, en alleen naar een remote die jij hebt ingesteld, onder je eigen account. Earkeep heeft geen server in dat pad.

Het is je eigen git, dus je SSH-agent, credential helpers en hooks werken zoals in een terminal. Een push die om een wachtwoord of passphrase zou vragen, mislukt meteen en zegt waarom, in plaats van te wachten op een prompt die niemand ziet.

Een remote die is doorgegaan, wordt gepulld, niet geweigerd. Earkeep doet wat git pull --rebase --autostash doet en pusht daarna. Het opnemen gaat gewoon door; het bewerken van een meeting staat op dat moment even stil en dat wordt erbij gemeld.

Conflicten lost een agent op, ze blijven niet aan jou over

Als de commits van de remote conflicteren met de jouwe, geeft Earkeep de vastgelopen rebase door aan een van de ACP-agents op je computer, zoals Claude Code of Codex. Daarna controleert Earkeep de repository, niet het antwoord van de agent: de rebase is afgerond, de commits van beide kanten zijn er, er staat geen conflictmarkering meer in. Pas dan pusht het.

Alles wat daar niet aan voldoet, wordt teruggedraaid: de rebase wordt afgebroken, je branch en niet-gecommitte wijzigingen staan weer zoals ze waren, en Earkeep vertelt je wat de agent zei. De agent is je eigen tool met je eigen sleutel, dus wat hij leest, gaat waarheen die agent het normaal verstuurt.

Mislukt een push, dan hoor je het

Een fout verschijnt boven het transcript in gewone woorden (de remote wees je sleutel af, de host was niet bereikbaar, een conflict heeft jou nodig), met de eigen woorden van git eronder. Earkeep probeert het elke vijf minuten opnieuw, dus zodra de oorzaak is verholpen, gaat de push door.

Gerelateerd

Veelgestelde vragen

Heeft Earkeep een git-repository nodig om te werken?

Nee. Zonder repository zijn de transcripts gewone bestanden in een map; met een repository commit Earkeep ze ook, en dat kun je uitzetten.

Commit het ook mijn andere bestanden?

Nee. Elke commit bevat het transcriptbestand van één dag en niets anders; wat je zelf hebt gestaged, blijft erbuiten.

Verlaten mijn transcripts mijn apparaat?

Alleen richting de remotes die je zelf hebt ingesteld. Zet pushen uit en elke commit blijft op je apparaat.

Synchroniseert het mijn meetings tussen computers?

Nee. Earkeep commit en pusht, en pullt alleen om te kunnen pushen. Wat er op je andere computers aankomt, hangt af van je repository.

Wat als ik op een feature branch zit wanneer de dag eindigt?

Dan wordt daar niets gecommit. Settings laat zien dat de dag wacht, en de commit volgt zodra je weer op een toegestane branch zit.

Wordt een meeting gecommit als hij begint?

Nee. Hij wordt gecommit wanneer hij eindigt of wanneer je hem wijzigt, niet terwijl het transcript nog wordt geschreven.

Wat gebeurt er als de conflictagent het fout doet?

Earkeep controleert het resultaat voordat het pusht. Klopt er iets niet, dan wordt de rebase afgebroken, staat je repository er weer bij zoals voorheen en zie je waarom.

Kan ik mijn eigen commitberichten schrijven?

Ja: een sjabloon per gebeurtenis in Settings → Storage & Git, met {date} en {meeting} als plaatsaanduidingen.

Een geschiedenis van elke meeting, in een repository die van jou is

14 dagen volledig proberen, geen account nodig.