Οι συναντήσεις σας, με commit στο δικό σας αποθετήριο

Αν ο φάκελος των μεταγραφών σας βρίσκεται μέσα σε αποθετήριο git, το Earkeep κάνει commit το αρχείο κάθε ημέρας όταν τελειώνει η ημέρα, όταν αλλάζει μια συνάντηση ή και στις δύο περιπτώσεις, και κάνει push στα remote που έχει ήδη το αποθετήριό σας. Κάθε βήμα είναι ρύθμιση και το αποθετήριο παραμένει δικό σας.

Το πρόβλημα: το αρχείο δεν έχει ιστορικό

Το αρχείο του Earkeep είναι ήδη απλά αρχεία: ένα αρχείο JSONL ανά ημέρα, σε φάκελο της επιλογής σας, συχνά μέσα στο αποθετήριο όπου ζουν οι σημειώσεις σας. Ένας φάκελος όμως έχει εκδόσεις μόνο αν κάποιος κάνει commit, και το commit με το χέρι σταματά να γίνεται μέχρι την Τετάρτη. Έτσι το Earkeep κάνει τα commit και αφήνει το υπόλοιπο αποθετήριο σε εσάς.

Πώς λειτουργεί

Ενεργοποιείται μόνο μέσα σε αποθετήριο. Όταν ο φάκελος των μεταγραφών, ή κάποιος φάκελος πάνω από αυτόν, είναι αποθετήριο git, η δυνατότητα εμφανίζεται στις Ρυθμίσεις → Storage & Git. Διαφορετικά υπάρχει ένα κουμπί που εκτελεί git init, ο μοναδικός τρόπος με τον οποίο το Earkeep δημιουργεί αποθετήριο.

Εσείς επιλέγετε πότε γίνεται commit: όταν τελειώνει η ημέρα, όταν αλλάζει μια συνάντηση, και τα δύο (η προεπιλογή) ή ποτέ.

  • Όταν τελειώνει η ημέρα σημαίνει πέντε λεπτά μετά τα μεσάνυχτα. Ένας φορητός υπολογιστής που κοιμάται τα μεσάνυχτα κάνει commit την προηγούμενη ημέρα όταν ξυπνήσει.
  • Όταν αλλάζει μια συνάντηση σημαίνει όταν αποθηκεύεται, τελειώνει, αλλάζει διάρκεια, μετονομάζεται ή διαγράφεται, λίγα δευτερόλεπτα μετά την τελευταία επεξεργασία, ώστε το σύρσιμο μιας άκρης να είναι ένα commit. Η έναρξη μιας συνάντησης δεν κάνει commit, ούτε οι νέες γραμμές μεταγραφής από μόνες τους.

Ένα commit ανά αρχείο ημέρας και τίποτα άλλο. Ό,τι έχετε κάνει εσείς stage μένει εκτός των commit του Earkeep, και ένα αρχείο ημέρας που αποκλείει το .gitignore σας παραλείπεται.

Μόνο σε branch που επιτρέπετε: το main (ή το master), όποιο branch είναι ενεργό ή ένα που θα ορίσετε. Σε οποιοδήποτε άλλο branch δεν γίνεται commit και οι Ρυθμίσεις εξηγούν γιατί.

Μηνύματα commit που λένε τι έγινε

Κάθε μήνυμα αναφέρει την ημέρα και τη συνάντηση, έτσι το git log --oneline διαβάζεται σαν την εβδομάδα που περάσατε:

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

Κάθε μήνυμα είναι ένα πρότυπο που μπορείτε να ξαναγράψετε στις Ρυθμίσεις, ένα ανά συμβάν, με τα {date} και {meeting} ως σημεία αντικατάστασης.

Το push είναι ξεχωριστή επιλογή

Κάντε push σε κάθε remote (η προεπιλογή), στα remote που θα επιλέξετε ή καθόλου, και κάθε commit μένει στη συσκευή σας.

Αυτός είναι ο μόνος τρόπος με τον οποίο μια μεταγραφή φεύγει από τη συσκευή σας, και μόνο προς ένα remote που έχετε ρυθμίσει εσείς, με τον δικό σας λογαριασμό. Το Earkeep δεν έχει κανέναν διακομιστή σε αυτή τη διαδρομή.

Είναι το δικό σας git, οπότε ο SSH agent, οι credential helpers και τα hooks σας ισχύουν όπως σε ένα τερματικό. Ένα push που θα ζητούσε κωδικό ή passphrase αποτυγχάνει αμέσως και λέει γιατί, αντί να περιμένει μια προτροπή που δεν βλέπει κανείς.

Ένα remote που έχει προχωρήσει γίνεται pull, δεν απορρίπτεται. Το Earkeep κάνει ό,τι κάνει το git pull --rebase --autostash και μετά push. Η εγγραφή συνεχίζεται· η επεξεργασία μιας συνάντησης σταματά για εκείνη τη στιγμή και το δηλώνει.

Τις συγκρούσεις τις επιλύει ένας agent, δεν σας τις αφήνει

Όταν τα commit του remote συγκρούονται με τα δικά σας, το Earkeep παραδίδει το σταματημένο rebase σε έναν από τους ACP agents του υπολογιστή σας, όπως το Claude Code ή το Codex. Στη συνέχεια ελέγχει το αποθετήριο, όχι την απάντηση του agent: το rebase ολοκληρώθηκε, τα commit και των δύο πλευρών υπάρχουν, δεν έμεινε κανένας δείκτης σύγκρουσης. Μόνο τότε κάνει push.

Οτιδήποτε λιγότερο από αυτό αναιρείται: το rebase ακυρώνεται, το branch σας και οι αλλαγές σας χωρίς commit επανέρχονται όπως ήταν, και το Earkeep σας λέει τι είπε ο agent. Ο agent είναι δικό σας εργαλείο με δικό σας κλειδί, επομένως ό,τι διαβάζει πηγαίνει εκεί όπου ο agent συνήθως το στέλνει.

Όταν ένα push αποτυγχάνει, το μαθαίνετε

Η αποτυχία εμφανίζεται πάνω από τη μεταγραφή με απλά λόγια (το remote απέρριψε το κλειδί σας, δεν ήταν δυνατή η σύνδεση με τον host, μια σύγκρουση χρειάζεται εσάς), με τα δικά του λόγια του git από κάτω. Το Earkeep ξαναπροσπαθεί κάθε πέντε λεπτά, έτσι μόλις διορθωθεί η αιτία το push ολοκληρώνεται.

Σχετικά

Συχνές ερωτήσεις

Χρειάζεται το Earkeep αποθετήριο git για να λειτουργήσει;

Όχι. Χωρίς αποθετήριο, οι μεταγραφές είναι απλά αρχεία σε έναν φάκελο· με αποθετήριο, το Earkeep κάνει επιπλέον commit, και μπορείτε να το απενεργοποιήσετε.

Θα κάνει commit τα άλλα αρχεία μου;

Όχι. Κάθε commit περιέχει το αρχείο μεταγραφής μίας ημέρας και τίποτα άλλο· ό,τι έχετε κάνει εσείς stage μένει εκτός.

Φεύγουν οι μεταγραφές μου από τη συσκευή μου;

Μόνο προς τα remote που έχετε ρυθμίσει εσείς. Απενεργοποιήστε το push και κάθε commit μένει στη συσκευή σας.

Συγχρονίζει τις συναντήσεις μου ανάμεσα σε υπολογιστές;

Όχι. Το Earkeep κάνει commit και push, και pull μόνο για να μπορέσει να κάνει push. Το τι φτάνει στα άλλα μηχανήματά σας εξαρτάται από το αποθετήριό σας.

Τι γίνεται αν βρίσκομαι σε feature branch όταν τελειώνει η ημέρα;

Δεν γίνεται commit εκεί. Οι Ρυθμίσεις δείχνουν ότι η ημέρα περιμένει, και το commit γίνεται μόλις επιστρέψετε σε επιτρεπόμενο branch.

Γίνεται commit μιας συνάντησης όταν ξεκινά;

Όχι. Γίνεται commit όταν τελειώνει ή όταν την αλλάξετε, όχι όσο γράφεται ακόμη η μεταγραφή της.

Τι γίνεται αν ο agent των συγκρούσεων κάνει λάθος;

Το Earkeep ελέγχει το αποτέλεσμα πριν κάνει push. Αν κάτι δεν πάει καλά, το rebase ακυρώνεται, το αποθετήριό σας επιστρέφει στην προηγούμενη κατάσταση και βλέπετε γιατί.

Μπορώ να γράψω τα δικά μου μηνύματα commit;

Ναι: ένα πρότυπο ανά συμβάν στις Ρυθμίσεις → Storage & Git, με τα {date} και {meeting} ως σημεία αντικατάστασης.

Ιστορικό για κάθε συνάντηση, σε αποθετήριο που σας ανήκει

Πλήρης δοκιμή 14 ημερών, χωρίς λογαριασμό.