பெருமளவிலான உரையாடல் பதிவுகள் (Raw conversation logs) வாசிக்க முடியாத நிலைக்குத் தள்ளப்படும். சில மாதங்கள் தீவிரமாகப் பயன்படுத்திய பிறகு, நீங்கள் பல்லாயிரக்கணக்கான வரிகள் கொண்ட முன்னும் பின்னுமான உரையாடல்களைப் பார்த்துக் கொண்டிருப்பீர்கள். அவற்றைத் தேடுவது மெதுவானது; வாசிப்பது சாத்தியமற்றது. இதற்கு நேர்மாறாக, ஒரு Obsidian vault உங்களுக்குக் கட்டமைக்கப்பட்ட நீண்டகால நினைவாற்றலை வழங்குகிறது: இருவழி இணைப்புகள் (bi-directional links), டேக்ஸ் (tags) மற்றும் தொடர்புகளை வெளிப்படுத்தும் ஒரு கிராஃப் வியூ (graph view). இவ்விரண்டிற்கும் இடையிலான இடைவெளி தெளிவாகத் தெரிகிறது. அதைச் சரிசெய்யத் தானியங்கி முறை (automation) தேவைப்படுகிறது.

ஒவ்வொரு இரவும் அந்த இடைவெளியைக் குறைக்கும் வகையில் ஒரு சிறிய పైప్‌லைன் (pipeline) ஒன்றை நான் உருவாக்கியுள்ளேன். இது எந்த மனிதத் தலையீடும் இன்றி மூன்று படிகளைத் தொடர்ச்சியாகச் செய்கிறது. முதலாவதாக, இது சமீபத்திய உரையாடல் ஏற்றுமதிகளைச் (conversation exports) சேகரித்து, அவற்றை அவற்றின் தற்போதைய நிலைக்குப் புதுப்பிக்கிறது. இரண்டாவதாக, இது கடந்த 28 மணிநேர உரையாடல்களை Claude மூலம் சுருக்கி, கட்டமைக்கப்பட்ட சுருக்கங்களை நேரடியாக Obsidian vault-இல் சேர்க்கிறது. அந்த 28 மணிநேர கால அளவு திட்டமிட்டுத் தேர்ந்தெடுக்கப்பட்டது; இது முந்தைய முழு நாளையும் மற்றும் தாமதங்களுக்கான ஒரு சிறிய கூடுதல் நேரத்தையும் உள்ளடக்கியது. மூன்றாவதாக, இது மாற்றங்களை ஒரு தனிப்பட்ட களஞ்சியத்திற்கு (private repository) commit மற்றும் push செய்வதன் மூலம் அனைத்தையும் பேக்அப் (backup) செய்கிறது; இது ஆஃப்லைன் சேமிப்பகமாகவும், தற்செயலான நீக்கங்களிலிருந்து பாதுகாக்கும் காப்பீடாகவும் செயல்படுகிறது. இந்த முழுச் சங்கிலியும் சலிப்பூட்டும் வகையிலும் (boring) நம்பகமானதாகவும் இருக்க வேண்டும். சலிப்பூட்டும் தானியங்கி முறையே (Boring automation) இலக்காகும்.

macOS உங்கள் ஸ்கிரிப்டை அமைதியாகத் தடுத்தால்

ஒரு இரவுநேரப் பணியின் (nightly job) மிகப்பெரிய எதிரி திடீர் செயலிழப்பு (crash) அல்ல. அது அமைதிதான்.

macOS-இல், Documents கோப்புறை TCC-இன் பாதுகாப்பிற்கு உட்பட்டது; இது முக்கியமான இடங்களுக்கான அணுகலைக் கட்டுப்படுத்தும் ஒரு தனியுரிமை துணை அமைப்பாகும் (privacy subsystem). நீங்கள் உங்கள் ஸ்கிரிப்டை launchd மூலம் திட்டமிட்டால், நீங்கள் கவனிக்கும் வகையிலான பிழைச் செய்தியை (error) காட்டாமல், சிஸ்டம் அந்தச் செயல்பாட்டைத் தடுத்துவிடக்கூடும். உங்கள் லாக் கோப்பு (log file) காலியாகவே இருக்கும். உங்கள் vault புதுப்பிக்கப்படாது. பணி தோல்வியடைந்துவிடும், ஆனால் உங்கள் குறிப்புகள் காலாவதியாகிவிட்டன என்பதை உணரும்போதுதான், சில நாட்களுக்குப் பிறகு அந்த இடைவெளியை நீங்கள் கண்டறிவீர்கள்.

இதை நான் ஒரு கடுமையான முன்-பணி நடைமுறையின் (preflight routine) மூலம் கையாள்கிறேன். முக்கியப் பணி தொடங்குவதற்கு முன், ஸ்கிரிப்ட் இலக்கு கோப்புறையில் (target directory) ஒரு சாதாரண எழுதும் செயல்பாட்டை (write operation) முயற்சி செய்கிறது. macOS அதை மறுத்தால், தோல்வி உடனடியாகக் கண்டறியப்பட்டு, ஒரு தெளிவான டெஸ்க்டப் அறிவிப்பு (desktop notification) அனுப்பப்படும். அங்கு அமைதியான வெளியேற்றம் (quiet exit) கிடையாது. அடுத்து, ஷெல் இன்டர்பிரெட்டருக்கு (shell interpreter) System Settings-இல் 'Full Disk Access' வழங்கப்பட வேண்டும். அந்த அனுமதி மிகவும் விரிவானது என்பதால், அனைத்துத் தானியங்கி ஸ்கிரிப்டுகளையும் பாதுகாக்கப்பட்ட Documents கோப்புறை மரத்திற்கு (folder tree) வெளியே வைத்திருப்பதன் மூலம் பாதிப்பைக் குறைக்கிறேன். அவை வேறு ஒரு பிரத்யேகக் கோப்புறையில் இருக்கும், மேலும் vault பாதை (path) தெளிவாகக் குறிப்பிடப்படும். ஆரம்பகாலக் கண்டறிதல், தெளிவான எச்சரிக்கைகள் மற்றும் கவனமான கோப்புறை அமைப்பு ஆகியவற்றின் கலவை இந்த 'அமைதியான தோல்வி' (silent death) சிக்கலைத் தீர்க்கிறது.

தூக்கம் (Sleep), காலாவதி (Timeouts) மற்றும் முடங்கிய பணிகள் (Frozen Jobs) ஆகியவற்றிற்கான வடிவமைப்பு

லேப்டாப்கள் தூங்கும் (sleep). நெட்வொர்க்குகள் சிறு தடங்கல் (hiccup) ஏற்படும். API அழைப்புகள் முடங்கும் (hang). ஒரு பணி முடங்கினால், அது முழு அமைப்பையும் (system) காலவரையன்றித் தடுத்து நிறுத்தக்கூடாது.

పైప్‌லைனை நிலையாக வைத்திருக்க நான் நான்கு நடைமுறை வழிமுறைகளைப் பயன்படுத்துகிறேன்.

பல நேரக் காலங்கள் (Multiple time slots). அதிகாலை நேரப் பணியை மட்டுமே நம்பியிருக்காமல், கால அட்டவணை (scheduler) நாள் முழுவதும் வெவ்வேறு நேரங்களில் மீண்டும் முயற்சிக்கும். அதிகாலையில் கணினி மூடியிருந்தால், மதிய நேரக் கால இடைவெளியில் அது இயங்கும்.

முடிவுச் குறிகள் (Done markers). ஒரு பணி வெற்றிகரமாக முடிந்தால், அது ஒரு தெளிவான அடையாளத்தை (breadcrumb) விட்டுச் செல்லும். அடுத்த முறை திட்டமிடப்பட்ட முயற்சி முதலில் அந்த அடையாளத்தைச் சரிபார்க்கும். பணி ஏற்கனவே முடிந்துவிட்டால், அது சில நொடிகளில் சுத்தமாக வெளியேறிவிடும். இது தேவையற்ற API அழைப்புகள் மற்றும் கூடுதல் செயலாக்கத்தைத் தவிர்க்கிறது.

mkdir மூலம் கோப்புப் பூட்டுகள் (File locks through mkdir). ஒன்றுடன் ஒன்று மோதும் செயல்பாடுகளைத் தவிர்க்க, நான் கோப்புறை அடிப்படையிலான பூட்டைப் (directory-based lock) பயன்படுத்துகிறேன். உள்ளூர் கோப்பு அமைப்புகளில் (local filesystems) ஒரு கோப்புறையை உருவாக்குவது அணுக்கருச் செயல்பாடு (atomic) போன்றது, எனவே ஒரே நேரத்தில் இரண்டு பணிகள் ஒரே பூட்டுப் பாதையை (lock path) ஆக்கிரமிக்க முடியாது. கோப்புறை ஏற்கனவே இருந்தால், இரண்டாவது முயற்சி உடனடியாக நிறுத்தப்படும். முதல் பணி முடிந்ததும், அது அந்த கோப்புறையை நீக்கிவிடும். இது PID கோப்புகளை விட இலகுவானது மற்றும் கடினமானது