প্রকল্প সম্পর্কে
# ক্লড কোড সেশন রিসেট শিডিউলার
## সারসংক্ষেপ
এটি একটি GitHub Actions ভিত্তিক অটোমেশন টুল যা নির্ধারিত সময়ে ক্লড কোড সেশনের রিসেট পরিচালনা করে। সিস্টেমটি কৌশলগত সময়ে স্বয়ংক্রিয় সেশন রিসেট চালায় যা সাধারণ কাজের সময়ের সাথে সামঞ্জস্যপূর্ণ, যাতে ব্যবহারকারীরা প্রয়োজনে নতুন ৫ ঘণ্টার ব্যবহার উইন্ডো পান।
## মূল ক্ষমতাসমূহ
### স্বয়ংক্রিয় সেশন ব্যবস্থাপনা
- সাধারণ কাজের সময়ের সাথে মিল রেখে প্রতিদিন চারটি সেশন রিসেট চালায়
- ট্রিগার এবং রিসেট ইভেন্টের মধ্যে ৫ ঘণ্টার কাউন্টডাউন ব্যবহার করে
- ক্রন এক্সপ্রেশনের মাধ্যমে কাস্টমাইজযোগ্য সময়সূচি
### স্বাস্থ্য পর্যবেক্ষণ
- ক্লড কোড কার্যকারিতা নিশ্চিত করতে অন্তর্নির্মিত Q&A যাচাই পরীক্ষা (যেমন, “১+১=?”) চালায়
- টাইমস্ট্যাম্পসহ স্বাস্থ্য পরীক্ষার ফলাফল লগ করে
- রিসেট সম্পূর্ণ চিহ্নিত করার আগে সিস্টেম কার্যকর আছে কিনা যাচাই করে
### একাধিক টোকেন সমর্থন
- নির্ভরযোগ্যতার জন্য প্রাথমিক এবং ব্যাকআপ OAuth টোকেন কনফিগার করা যায়
- প্রতিটি টোকেনের কার্যকলাপ লগে ট্র্যাক করা হয়
- একটি টোকেন ব্যর্থ হলে রিডান্ডেন্সি থাকে
### কার্যকলাপ লগিং
- `logs/YYYYMM-session-log.csv` ফাইলে মাসিক CSV লগ সংরক্ষিত হয়
- রেকর্ডে টাইমস্ট্যাম্প, ইভেন্টের ধরন, টোকেন আইডি এবং রিসেট সময় অন্তর্ভুক্ত থাকে
- স্বয়ংক্রিয় Git কমিট লগ ইতিহাস সংরক্ষণ করে
### টাইমআউট সুরক্ষা
- জব-স্তরের টাইমআউট: ৫ মিনিট
- প্রতি ধাপের টাইমআউট: ২ মিনিট
- অনিয়ন্ত্রিত এক্সিকিউশন সম্পদ গ্রাস করা থেকে বিরত রাখে
## ডিফল্ট সময়সূচি (UTC+8)
| ট্রিগার সময় | রিসেট সময় | কভারেজ |
|------------|-----------|----------|
| ০৫:২৩ | সকাল ১০:০০ | সকালের কাজের সময় |
| ১০:২৩ | বিকাল ৩:০০ | বিকালের কাজের সময় |
| ১৭:২৩ | রাত ১০:০০ | সন্ধ্যার কাজের সময় |
| ২২:২৩ | রাত ৩:০০ (পরের দিন) | গভীর রাতের কভারেজ |
প্রতিটি ট্রিগার কাঙ্ক্ষিত রিসেট সময়ের ৫ ঘণ্টা আগে সক্রিয় হয়। সিস্টেমটি GitHub Actions এক্সিকিউশন কনজেশন এড়াতে `:২৩` মিনিট ব্যবহার করে।
## সেটআপ নির্দেশনা
১. **OAuth টোকেন তৈরি করুন**: `claude setup-token` চালান এবং তৈরি টোকেন কপি করুন
২. **সিক্রেট যোগ করুন**: GitHub রিপোজিটরি সেটিংসে `CLAUDE_CODE_OAUTH_TOKEN_1` এবং ঐচ্ছিকভাবে `CLAUDE_CODE_OAUTH_TOKEN_2` কনফিগার করুন
৩. **Actions সক্রিয় করুন**: রিপোজিটরিতে GitHub Actions-এর জন্য `id-token: write` অনুমতি আছে কিনা নিশ্চিত করুন
৪. **সক্রিয়করণ**: শিডিউলার চালু করতে ওয়ার্কফ্লো ফাইল পুশ করুন
## কাস্টমাইজেশন
কোনো ক্রন সময়সূচি পরিবর্তন করতে `.github/workflows/auto-checkin.yml` সম্পাদনা করুন। সময় গণনার সূত্র:
```
ট্রিগার সময় + ৫ ঘণ্টা = সেশন রিসেট সময়
```
উদাহরণ:
- প্রতিদিন সকাল ৯:০০ টায় একবার রিসেট: ক্রন `23 20 * * *` ব্যবহার করুন (৪:২৩ AM UTC ট্রিগার, ৯:০০ AM UTC+8-এ রিসেট)
- প্রতিদিন সকাল ১০:০০ এবং বিকাল ৪:০০ টায় দুবার: ক্রন `23 21,3 * * *` ব্যবহার করুন
## পরীক্ষা
- **GitHub Actions**: Actions ট্যাবে গিয়ে ম্যানুয়ালি ওয়ার্কফ্লো চালান
- **স্থানীয় পরীক্ষা**: `uv run --python 3.13 python src/log_qa_check.py --token TOKEN_1`
## ফাইল কাঠামো
```
.github/workflows/auto-checkin.yml # শিডিউলার কনফিগারেশন
src/log_qa_check.py # Q&A এবং লগিং স্ক্রিপ্ট
logs/YYYYMM-session-log.csv # মাসিক কার্যকলাপ রেকর্ড
```
## সমস্যা সমাধান
- **OAuth ত্রুটি**: `claude setup-token` দিয়ে টোকেন পুনরায় তৈরি করুন এবং সিক্রেট নামের সাথে হুবহু মিল আছে কিনা যাচাই করুন
- **ওয়ার্কফ্লো টাইমআউট**: টাইমআউট সুরক্ষাসহ সর্বশেষ সংস্করণ ডিপ্লয় হয়েছে কিনা নিশ্চিত করুন
- **ভুল সময়**: UTC রূপান্তর যাচাই করুন এবং মনে রাখবেন GitHub Actions-এ সামান্য এক্সিকিউশন বিলম্ব হতে পারে
- **লগ নেই**: ক্লড অথেন্টিকেশন স্ট্যাটাস পরীক্ষা করুন এবং অটোমেশনের উপর নির্ভর করার আগে স্থানীয়ভাবে পরীক্ষা করুন
## নিরাপত্তা
- সোর্স কোডে কখনো টোকেন হার্ডকোড করবেন না
- সব সংবেদনশীল মানের জন্য GitHub Secrets ব্যবহার করুন
- পর্যায়ক্রমে OAuth টোকেন ঘোরান
- রিপোজিটরি অ্যাক্সেস শুধুমাত্র বিশ্বস্ত কন্ট্রিবিউটরদের মধ্যে সীমাবদ্ধ রাখুন
প্রকল্পটিতে আর্কিটেকচার ডিসিশন রেকর্ড (ADR) রয়েছে যা সময়সূচি অপ্টিমাইজেশন, টাইমআউট কনফিগারেশন এবং স্বাস্থ্য পরীক্ষা বাস্তবায়নের নকশা সিদ্ধান্ত নথিভুক্ত করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.