გამოშვების შენიშვნები — 26 აპრილი, 2026
19 დღის წინ გამოვუშვით დიდი გამოშვება დიაგნოსტიკური მოდულითა და პროსოდიის ანალიზით. მას შემდეგ გუნდმა განახორციელა კიდევ 295 ცვლილება — და ისინი მცირე არ არის. ამ გამოშვებაში შეგიძლიათ ჩაწეროთ ad-hoc სესია პაციენტის მოსვლამდეც კი, თქვენი ჩანაწერები ერწყმის AI-ს მუშაობასა და ტრანსკრიფციას გვერდიგვერდ, სამ სვეტად, საჯარო თერაპევტის პროფილი სრული ძალით დაბრუნდა, ხოლო მობილურ აპლიკაციას ახლა მუქი თემა აქვს. კულისებში გავიარეთ SOC 2 / HIPAA გამკვრივების ეტაპი, DDD აუდიტი და პაციენტის მონაცემების სრული ფსევდონიმიზაცია AI მხარეს.
💚 მადლობა გუნდს, რომელმაც ეს გამოშვება წაიყვანა — მოხსენებებით, ტესტებით, კოდითა და მოთმინებით:
- Bohdan — ad-hoc სესიები, პაკეტის ლიმიტები და საშეღავათო პერიოდი, DDD აუდიტი, KSeF ინვოისები, ათობით გასწორება (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
- Bartek — 3-მხრივი შერწყმა, 9 ცალკეული კბთ ანალიზი, კოგნიტური დამახინჯებები, პაკეტის სესიების მრიცხველი (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
- Ewa Cylwik / Ewa — Beck PDF, იმავე პაციენტისთვის მეორე AITS სესია, მობილურის მუქი თემა და ცარიელი მდგომარეობა, მრავალენოვანი მეილინგი, UI ფერები, პაციენტის ელფოსტის უნიკალურობა (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
- Joanna — განმეორებადი კალენდარი, Zoom-ის დამალვა, დროულად გაუქმება, თვითრეფლექსია სესიის ხარისხის შეფასების ნაცვლად (SCRUM-789, 874, 918, 919, 1005)
- ასევე მადლობა Bartlomiej-ს - კოგნიტური დამახინჯებებისა და სესიების მრიცხველისთვის, რომელიც ახალი გამოწერის მოდელის საფუძველი გახდა
1. ⚡ Ad-hoc სესიები — ჩაწერა პაციენტის მოსვლამდე
თუ ოდესმე გიწევდათ ჩამწერის სწრაფად ჩართვა — იმიტომ, რომ პაციენტი გაუფრთხილებლად შემოვიდა, იმიტომ, რომ ეს ერთჯერადი კონსულტაციაა, იმიტომ, რომ ეს შეხვედრაა ვინმესთან, ვინც ჯერ თქვენს ჩანაწერებში არ ფიგურირებს — ახალი ad-hoc სესიის მოდული ამ მთელ პრობლემას წყვეტს.
- Quick Record Button ვებ დაფაზე, ტელეფონის PWA-ში და MAUI აპლიკაციაში — ერთი დაწკაპუნება იწყებს ჩაწერას, სანამ პაციენტის მონაცემებსაც კი შეავსებთ
- AdHoc Inbox — გამოყოფილი უჯრა მიუნიჭებელი ჩანაწერებისთვის, სანამ არ გადაწყვეტთ, სად მიდის ისინი
- AssignPatientModal — მიანიჭეთ ჩანაწერი არსებულ პაციენტს ან შექმენით ახალი პირდაპირ Inbox-იდან
- Resume / Re-enter room — დაასრულეთ იმ სესიის ჩაწერა, რომელიც ადრე დაიწყეთ
- Orphan retention + auto-complete — X დღის განმავლობაში მიუნიჭებელი სესიები ავტომატურად იხურება, რათა Inbox მოწესრიგებული დარჩეს
- ვიდეო „Start without patient” — LiveKit-ის ოთახში შეგიძლიათ დაიწყოთ სესია არსებულ პაციენტთან კონფლიქტის გარეშე; AdHoc შემდეგ Inbox-ში ხვდება
სექცია დაცულია PromptyAI კოდით პარამეტრებში — ნაგულისხმევად გამორთულია, მომხმარებლებისთვის, რომლებსაც სურთ ჯერ დანარჩენის ნახვა. დაპროექტებული და გამოშვებული Bohdan-ის მიერ.
2. 📊 პაკეტის ლიმიტები და საშეღავათო პერიოდი — გამჭვირვალე გამოწერა
გამოწერები სრულად გადამუშავდა. ძველი Starter/Standard გეგმები გაუქმებულია, მათ ნაცვლად მოვიდა Start / Practice / Pro — ზომები, მორგებული ყოველთვიური სესიების რეალურ მოცულობაზე.
- სესიების მრიცხველი დაფაზე — იხილეთ, რამდენი სესია გამოიყენეთ ამ თვეში და რამდენი დაგრჩათ პაკეტში
- ლიმიტის ელფოსტები — ავტომატური შეტყობინებები 80% და 100% გამოყენებისას
- Upgrade prompt — ლიმიტის მიღწევისას, მკაცრი დაბლოკვის ნაცვლად, გეძლევათ რბილი შეთავაზება გეგმის შეცვლის შესახებ
- ფასწარმოქმნა Stripe-იდან + ფასდაკლებები — ფასი, რომელსაც აპლიკაციაში ხედავთ, პირდაპირ Stripe-იდან მოდის, აქტიური ფასდაკლებების გათვალისწინებით (beta-ტესტერის კოდს ვადა არ ეწურება)
- გამოწერის გაუქმება აპლიკაციიდან — გააუქმეთ პირდაპირ აპლიკაციაში, საჭირო აღარაა მხარდაჭერისთვის მეილის გაგზავნა
- 14-დღიანი საშეღავათო პერიოდი — თუ გადახდა ვერ შედგა, გეძლევათ 14 დღე, საკუთარი ანგარიშის წვდომით მხოლოდ (პაციენტების გადახედვის გარეშე), T+0 და T+13 ელფოსტებით. რეალური მონაცემების დაკარგვა მხოლოდ ორი კვირის შემდეგ იწყება
- გამოწერის ბანერი — სუფთა შეტყობინება აპლიკაციის ზედა ნაწილში, მენიუსა და შეტყობინებას შორის ცარიელი ზოლის გარეშე
- სესიების ლიმიტის სიმულატორი — PromptyAI პანელში არის სატესტო რეჟიმი, სადაც შეგიძლიათ ნახოთ, როგორ იქცევა აპლიკაცია სავსე პაკეტზე
Bartlomiej-ისა (მრიცხველი და ლიმიტები, SCRUM-1266) და Bohdan-ის (გამოწერა, საშეღავათო პერიოდი, upgrade prompt — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392) ერთობლივი მუშაობა.
3. 📝 ჩანაწერების 3-მხრივი შერწყმა — თერაპევტი, AI და ტრანსკრიფცია ერთ ხედში
ეს ერთ-ერთი ყველაზე დიდი არქიტექტურული ცვლილებაა კულისებში, მაგრამ მისი გავლენა ყოველდღიურ მუშაობაზე ძალიან შესამჩნევია: ყოველი ჩანაწერების ველი (Notes, SessionSummary, კონცეპტუალიზაციის სექციები) ახლა ცალ-ცალკე იმახსოვრებს, რა დაწერა თერაპევტმა, რა გენერირდა AI-ის მიერ და რა მოვიდა ჩამწერიდან/ტრანსკრიფციიდან.
- Notes 3-way — ჩანაწერების ხედი გვერდიგვერდ აჩვენებს სამ წყაროს: თქვენს ტექსტს, AI-ის შეთავაზებებს და ავტომატურ ტრანსკრიფციას, ხოლო თქვენ ირჩევთ, რა შეინარჩუნოთ
- SessionSummary 2-way + JSON merge — სესიის შეჯამებაში თქვენს ნამუშევარს AI ანალიზთან ერთ თანმიმდევრულ დოკუმენტად აერთიანებთ
- Timestamp separator — როცა AI-ის ველს ხელით ასწორებთ, სისტემა ტოვებს ხილულ კვალს იმის შესახებ, თუ როდის და ვისია ეს ფრაგმენტი
- [AI] მარკერი პირველივე გენერაციიდან — თქვენი ველები არ ერევა გენერირებულებს
- SourceBadge — ფერადი ბეჯი ხატულით, რომელიც აჩვენებს, საიდან მოდის ფრაგმენტი, დიდი ასოებით ტექსტის ნაცვლად
- AI-ს სექციის ჩანაცვლება დამატების ნაცვლად — შეჯამების ხელახალი გენერაციის მოთხოვნისას, AI სექციას ანაცვლებს ქვემოთ კიდევ ერთი ასლის დაწყობის ნაცვლად
დაპროექტებული და გამოშვებული Bartek-ის მიერ (SCRUM-1320, SCRUM-1368-1375). ქვემოთ: სრული i18n 8 ენაზე და ახალი DDD კონტექსტები.
4. 🔍 კბთ ანალიზები — 9 ცალკეული, მოთხოვნით გენერირებული ანგარიში
ძველი მონოლითური „კბთ ანალიზის გენერაცია” გაიყო 9 ცალკეულ ერთეულად, რომელსაც თერაპევტი გაუშვებს მაშინ, როცა ეს ნამდვილად სჭირდება. ნაკლები ლოდინი, მეტი კონტროლი.
- 9 დამოუკიდებელი ანალიზი — თითოეული ცალკე გენერირდება, მოთხოვნისამებრ
- Prompt edit cog — დააწკაპუნეთ კბილანაზე თითოეული ანალიზის გვერდით, რომ ნახოთ/შეცვალოთ პრომპტი, რომელსაც AI გამოიყენებს
- CBT ANALYSES სექცია PromptyAI კოდის უკან — სექცია ხელმისაწვდომია კოდის შეყვანის შემდეგ პარამეტრებში, ახალი ფუნქციების მტესტავი მომხმარებლებისთვის
კოგნიტურმა დამახინჯებებმა მიიღეს საკუთარი ხედი (მოხსენებული Bartlomiej-ის მიერ, SCRUM-1385):
- მონაცემთა ხედი AI ანგარიშის ნაცვლად — ხედავთ კონკრეტულ ციტატებს ტრანსკრიფციიდან, AI-ის მიერ მონიშნულს, და არა მათგან გენერირებულ თხრობას
- ყველა ციტატა expand-ის შემდეგ — თარიღების დიაპაზონის ფილტრის გარეშე, expand ყველაფერს ავლენს
- ხელმისაწვდომია მთავარ მენიუში — Conceptualization v2-ის ქვეშ
ძველი COGNITIVE_DISTORTIONS_INVENTORY პრომპტი მოიხსნა (SCRUM-1386).
5. 🌐 საჯარო თერაპევტის პროფილი — სრული განახლება რედაქტირების პანელებით
საჯარო პროფილი aitherapy.support ბრენდის ქვეშ სრულად თავიდან აშენდა.
- 3 ახალი edit drawer — ბიოგრაფია, სპეციალიზაციები, საკონტაქტო დეტალები რედაქტირდება ელეგანტურ გვერდით პანელებში
- Owner edit mode — როცა საკუთარ პროფილს ავტორიზებული უყურებთ, რედაქტირების ღილაკები ხელთანაა
- გამოცდილების წლები — ახალი
YearsOfExperienceველი, ხილული საჯარო პროფილზე - ფერების რებრენდინგი — sage/lavender პალიტრა aitherapy.support ბრენდის ქვეშ
- „თქვენი კონფიდენციალურობის” სექცია მოიხსნა — ის ზედმეტი იყო; GDPR ფუთერშია
- Lucide icons — თანამედროვე, სუფთა ხატულების ტიპოგრაფია
ქვემოთ დაემატა საჯარო endpoint GET /api/public/therapists — რომელიც აბრუნებს აქტიური საჯარო პროფილების მქონე თერაპევტებს. საფუძველი თერაპევტების დირექტორიისთვის.
6. 🎥 ვიდეო სესიები — PiP, კამერების შეცვლა, გამოსწორებული ფონის ბლური
ვიდეომ მიიღო გასწორებების ნაკრები, რომელსაც შეამჩნევს ნებისმიერი თერაპევტი, რომელიც აპლიკაციით სესიებს ატარებს.
- PiP / minimize — შეამცირეთ ვიდეო ოთახი მცურავ მინი-პლეიერამდე და შეამოწმეთ ჩანაწერები სხვა ტაბში კავშირის გაწყვეტის გარეშე. მიკროფონი და კამერა კვლავ მუშაობს
- Swap cameras — ერთი დაწკაპუნებით შეცვალეთ, ვინ არის მთავარ ხედში და ვინ - მინიში
- PiP resume — შემცირებიდან დაბრუნებისას, გამოტოვებთ lobby-ს (PreJoinLobby) და პირდაპირ საუბარში ხვდებით
- მონაწილეთა ცალ-ცალკე აუდიო დიარიზაციისთვის — ტრანსკრიფცია მოსაუბრეებს PiP-შიც კი ყოფს
- ფონის ბლური გასწორდა — CSP ბლოკავდა MediaPipe WASM-ს; ბლური ახლა ერთი დაწკაპუნებით მუშაობს
- უფრო სუფთა AITS session UI — AI ასისტენტი ტულბარიდან გაქრა, ნაკლები ვიზუალური ხმაური
- PiP overlay-ზე დაწკაპუნება შესაძლებელია —
pointerEvents:none-ისა დაoverflow:hidden-ის მოხსნით, PiP ღილაკები დაწკაპუნებაზე რეაგირებენ - „Join session” ღილაკი — CSS override-ით იყო დამალული, ახლა ხილულია
- Stale closure handleMaximize-ში — გასწორდა; PiP-ის გადიდება აღარ აგდებს შეცდომას
7. 📐 Beck v2 კონცეპტუალიზაცია და ABC — PDF, ვერსიის გადართვა, პრომპტის რედაქტირება
- Beck და ABC v2 PDF — გასწორებული ფორმატირება და ავტომატური სესიის მასალებში ჩართვა (მოხსენებული Ewa-ს მიერ, SCRUM-1297)
- Beck PDF — მხოლოდ-ჩარჩოიანი სექციები, ფერადი სპეციალიზაციები, სუფთა ინიციალები, SVG ისარი სექციებს შორის
- ABC v1/v2 toggle Conceptualization v2-ში — აირჩიეთ, რომელი ABC ვერსია გამოჩნდეს
- Prompt edit cog ABC v2-ში — შეცვალეთ AI პრომპტი ABC v2 ტაბში
- PDF ექსპორტი AI ანალიზებისა და ABC-სთვის სესიის მიხედვით — ინდივიდუალური ანალიზები ცალ-ცალკე ექსპორტირდება
- ABC ლეიბლების პლურალიზაცია 8 ენაზე — კონცეპტუალიზაციის ცხრილს აქვს სწორი მრავლობითი ფორმები
- ABC-ის ცარიელი სვეტების გასწორება — backend აბრუნებს სწორ მრავლობით property სახელებს
8. 🧾 ინვოისები და KSeF — გადახდების არჩევა + state machine
ინვოისირების სისტემა გადამუშავდა KSeF-თან (პოლონეთის ეროვნული ელექტრონული ინვოისირების სისტემა) შესაბამისობისთვის.
- ინვოისი არჩეული გადახდებიდან — აირჩიეთ გადახდები და სისტემა მათგან ერთ ინვოისს ქმნის (snapshot + Payment FK)
- „ინვოისის გამოწერის” შესვლის წერტილი თერაპევტის ფინანსურ ხედში — სწრაფი წვდომა დაფიდან
- პუნქტის წაშლა ინვოისის გამოწერის მოდალში — შეცდომების გასწორება ადგილზევე
- KSeF dev/prod გამიჯვნა — sandbox და production ცალ-ცალკე credential-ებზე მუშაობს
- Invoice state machine (SCRUM-1357 Bohdan) — Draft → Issued → Sent → Cancelled, არასწორ გადასვლებზე DB constraint-ით
- AE KsefToken — KSeF ტოკენი დაშიფრულია Always Encrypted-ით
Bohdan-ის ერთობლივი მუშაობა (SCRUM-1357, SCRUM-1388).
9. 📅 კალენდარი, განმეორებადი სესიები და ლოკაციები
კვირეულმა და განმეორებადმა კალენდარმა მიიღო ათობით მცირე, მაგრამ შესამჩნევი გაუმჯობესება — უმეტესობა მოხსენებული Joanna-სა და Ewa-ს მიერ.
- სესიები 22:00-დან — უხილავი იყო კვირეულ ბადეში, ახლა ჩანს დღის ბოლომდე
- ყველა საათი განმეორებადი სლოტის ბადეზე (SCRUM-874, Joanna)
- დროულად გაუქმებული სესია — არ ჩანს როგორც „გადაუხდელი” (SCRUM-918, Joanna)
- განმეორების ლეიბლი განმეორებადი სლოტის გვერდით (SCRUM-919, Joanna) — ხედავთ „ყოველკვირეულს”, „ორკვირეულს” თითოეული განმეორებადი სესიის გვერდით
- Zoom ინტეგრაციის დამალვა UI-დან (SCRUM-789, Joanna) — Zoom აღარ არის მხარდაჭერილი როგორც ვიდეო არხი
- სესიის popover კალენდარში — აღარ იმალება ეკრანს გარეთ
- TherapistAvailability — auto-save ყოველ ცვლილებაზე (debounce 800 ms), შენახვის ღილაკი საჭირო აღარაა
- AddSessionModal — ოფცია „სესიის შექმნა ხელმისაწვდომობის საათების გარეთ” — გამონაკლისებს შეუძლიათ სლოტის ძალით შექმნა
- სტატუსი „No-show” (NoShow=5) — ახალი სტატუსი, დასაყენებელი დასრულებულიდან ან გაუქმებულიდანაც კი
- RecurringSessionsCalendar — შემაჯამებელი ფილები ლეგენდისა და ბადის ზემოთ
თერაპევტის ლოკაციებმა მიიღეს ონლაინ შეხვედრის არხები თითოეული ლოკაციისთვის:
- Onsite რეჟიმი — მისამართისა და ქალაქის ველები ადგილზე შეხვედრის ლოკაციებისთვის
- Onsite/online გადამრთველი checkbox-ის ნაცვლად — რეჟიმის უფრო ნათელი არჩევანი
- ონლაინ არხი თითოეული ლოკაციისთვის — სხვადასხვა ლოკაციას შეიძლება ჰქონდეს სხვადასხვა არხი (AITS, Google Meet, გარე ბმული), რომელიც ავტომატურად ვრცელდება სესიებზე
- მუდმივი შეხვედრის ოთახები თითოეული პაციენტისთვის — ყოველ პაციენტს აქვს მუდმივი AITS ოთახის ბმული და ცალკე გარე ბმული, ხილული პაციენტის პარამეტრებში
- ლოკაციის წაშლა — გასწორდა (ქრებოდა DB-დან, მაგრამ რჩებოდა UI-ის სიაში)
და ბოლოს, შეხვედრის ტიპი განმეორებად სესიებში — გასწორდა MeetingType-ისა და MeetingLink-ის გავრცელება განმეორებადი სერიის კონფიგურაციიდან თითოეულ გენერირებულ სესიასა და შემხსენებელ ელფოსტებზე (SCRUM-902, Ewa).
10. 📱 მობილური აპლიკაცია — მუქი თემა, AdHoc Inbox, დახვეწა
მობილური გადავიდა ვერსია 1.5.0-ზე (build 18), მომხმარებლისთვის ხილული ცვლილებების დიდი ნაკრებითა და App Store / Play Store ხელმოწერის რამდენიმე დახვეწით.
- მუქი თემა — სრული მუქი რეჟიმი წასაკითხი ჯგუფის სათაურებით (SCRUM-1089, Ewa + SCRUM-815)
- კონფიგურირებადი შეხსენებები — აირჩიეთ, როდის გსურთ სესიის შეტყობინება
- მობილური შეხსენება 15 წთ — 15-წუთიანი წინასწარი შეხსენება + გაფრთხილება, როცა სისტემური შეტყობინებები გამორთულია (SCRUM-815, Bohdan)
- ცარიელი მდგომარეობა სესიების სიისთვის — ცარიელი ეკრანის ნაცვლად, უფრო მდიდარი onboarding (SCRUM-1094, Ewa)
- Auto-refresh ბანერი — როცა აპლიკაცია აღმოაჩენს განახლებას, აჩვენებს მიმზიდველ განახლების ბანერს
- AdHoc Inbox + AssignPatient + quick-start MAUI-ში (SCRUM-1289, Bohdan)
- PWA mobile quick-start ad-hoc სესიებისთვის (SCRUM-1286, Bohdan)
- Responsive ვებ ხედი ტელეფონისთვის — desktop უცვლელია, ტელეფონზე განლაგება ეგუება ვიწრო ეკრანს
- Deep-link handler iOS-ში — იყენებს BindingContext-ს, URL scheme-ის რეგისტრაციას
- iOS NSLocation purpose strings — ITMS-90683-ის გასწორება (App Store ამ სტრიქონების გარეშე build-ს ითხოვდა)
- Android AAB — ცალკე jarsigner ეტაპი
- App Store Connect და Google Play მასალები — სრული პაკეტი პლუს WCAG 2.2 აუდიტი
11. 🔐 უსაფრთხოება: SOC 2 / HIPAA, MFA, AI-ს სრული ფსევდონიმიზაცია
პროდუქტის შრის ქვემოთ ჩავატარეთ სრული SOC 2 და HIPAA გამკვრივების ეტაპი, პლუს DDD აუდიტი ხუთი კონკრეტული შედეგით.
- MFA-ს ხელახალი დადასტურება კრიტიკული ოპერაციებისთვის — მგრძნობიარე მოქმედებებისთვის (პაროლის შეცვლა, მონაცემების ექსპორტი) ხელახლა ადასტურებთ MFA-თი
- Backup codes MFA-სთვის — საგანგებო კოდები, თუ ტელეფონს დაკარგავთ
- IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — AI მოდელისკენ ყველა გამოძახება ახლა გადის ფსევდონიმიზაციის gateway-ს გავლით. სახელები, თარიღები, ადგილები იცვლება ფსევდონიმებით, სანამ აპლიკაციას დატოვებენ; AI იღებს მხოლოდ ანონიმიზებულ ვერსიას
- ელფოსტისა და SMS შეტყობინებების ფსევდონიმიზაცია (SCRUM-1354) — შეტყობინებების შაბლონებიც არ აჟღერებენ პაციენტის მონაცემებს გაგზავნისას
- Google/Zoom OAuth ტოკენები დაშიფრულია Always Encrypted-ით (SCRUM-1355) — ინტეგრაციის წვდომის ტოკენები სვეტის დონეზეა დაშიფრული
- Patient.PendingConsent ალმა (SCRUM-1356) — პაციენტები აქტიური თანხმობის გარეშე იღებენ enforcement flow-ს + frontend ბეჯს
- Invoice state machine (SCRUM-1357) — ინვოისის სტატუსები არასწორ მიმართულებებში უცვლელია, დაცული DB დონეზე
- აუდიტის უცვლელობა + user snapshot 3 აუდიტის ცხრილში — მოქმედებების ჟურნალის ფაქტის შემდეგ შეცვლა შეუძლებელია
- DeanonymizationAuditLog — პაციენტის მონაცემების ყოველი გამოყენება დეანონიმიზაციის შემდეგ ილოგება მისი შემსრულებლის ელფოსტისა და displayName snapshot-თან ერთად
- Hardcoded საიდუმლოებები მოშორდა — ყველა გასაღები და პაროლი appsettings.json-იდან გადავიდა Azure Key Vault-ში
- Always Encrypted ყველა მომხმარებლის ტექსტური მონაცემისთვის (ADR-0018) — არქიტექტურული მიმართულება დამტკიცებულია; შემდეგი ცხრილები მომდევნო გამოშვებაში გადავა
- ISO/IEC compliance gap ანალიზი — 95 ხარვეზი 9 სტანდარტში დამუშავებულია, გამოსწორების გეგმით
დაფუძნებულია სრულ DDD აუდიტზე (სესიები 1-8, ფაზები 1-6) — დომენის კონტექსტების რესტრუქტურირება, არქიტექტურის დოკუმენტაცია, ADR-ები, mermaid + ტესტები, playbook-ები, Confluence ინტეგრაცია.
12. 👤 პაციენტის პორტალი — ანალიზები Goals-ში, მასალები, გაუმჯობესებული გადახედვა
- Beck კონცეპტუალიზაცია პაციენტის „Goals” ტაბში — კონცეპტუალიზაციის გამოქვეყნებისას, პაციენტი მას თავის პორტალში ხედავს
- ანალიზების გამოქვეყნება პაციენტის პორტალზე + შეტყობინების პარამეტრები (SCRUM-1338, Bartlomiej) — აკონტროლეთ, რას და როდის იღებს პაციენტი
- პორტალის PDF გადახედვა —
iframeembed-ის ნაცვლად, CSP უშვებსblob:-ს (PDF-ები იტვირთება) - პაციენტის პორტალის გადახედვა თერაპევტის ხედიდან — ნახეთ, რას ხედავს პაციენტი (chrome wrapper-ში, დაფა 1:1)
- სესიის მასალები Azure Blob Storage-ში — SessionMaterial როგორც blob, ლოკალური ფაილური სისტემის გარეშე
- თანხმობის / დოკუმენტების სექცია + რეგისტრაციის წყარო პაციენტის პარამეტრებში
- პაციენტის ელფოსტის გლობალური უნიკალურობა (SCRUM-898) — მეორე პაციენტი იმავე ელფოსტით იღებს 409-ს + დახურულ მოდალს (SCRUM-898, Ewa)
- შეტყობინების შაბლონის seeder SK, CA, RU, UK, LT-სთვის (SCRUM-883, Joanna) — სრული მრავალენოვანი მეილინგი
- Resolver fallback პლატფორმის ნაგულისხმევზე — როცა თერაპევტს შაბლონი არ გადაუწერია, იგზავნება ნაგულისხმევი მრავალენოვანი (SCRUM-883)
13. 🎙️ ტრანსკრიფცია — საიმედო ჩაწერა, append, რეალურ დროში დიარიზაციით
- Append არსებულ ტრანსკრიფციაზე — გააგრძელეთ ჩაწერა იმავე სესიაში; სეგმენტები ემატება (intent გვერდის გადატვირთვასაც უძლებს)
- მონაწილეთა ცალ-ცალკე აუდიო დიარიზაციისთვის — ვიდეო ტრანსკრიფცია მოსაუბრეებს დამოუკიდებელ ტრეკებზე ყოფს
- ტრანსკრიფცია PiP-საც უძლებს — ოთახის შემცირება ჩაწერას არ წყვეტს
- ტრანსკრიფციის ენა სესიის პარამეტრებიდან — STT იყენებს ენას, რომელიც პაციენტისთვის დააყენეთ
- ტრანსკრიფციის Auto-refresh focus / visibilitychange / ვიდეოდან დაბრუნებისას
- დადასტურება ჩაწერის შეჩერებაზე < 2წმ — დაცვა ცარიელი WAV-ისგან შემთხვევითი დაწკაპუნებით
- „იგზავნება” ბეჯი სესიების სიაში — ხედავთ, როცა ჩანაწერი ატვირთვაშია
- რეალურ დროში დიარიზაცია ვიდეო სესიაში — ადრე არ იწყებოდა; ახლა მუშაობს
- OPFS backup + 48 kbps Opus — ჩანაწერი ასევე ინახება ლოკალურად OPFS-ში, როგორც fallback, აუდიო პარამეტრები გაერთიანებულია
- SAS direct upload audio (SCRUM-1276, Bohdan) — აუდიო პირდაპირ მიდის Azure-ში SAS URL-ის მეშვეობით, backend-ის გვერდის ავლით
- m4a ნატიურად Azure Speech-ისთვის — m4a მუშავდება ნატიურად, კონვერტაციის გარეშე
- ფორმატის ამოცნობა magic bytes-ით (SCRUM-1311, Bohdan) — როცა Content-Type=
application/octet-stream, ფორმატი ამოიცნობა ფაილის შიგთავსიდან - Hub DB ტექსტის გარეშე — SignalR-ის realtime hub აღარ ინახავს ტექსტს DB-ში; finishPending იყენებს multipart POST-ს, MAUI-ს მსგავსად
- SignalR 1006 გასწორება — skipNegotiation მოშორდა, რომ Azure SignalR იმუშაოს + keep-alive-ის მორგება
- [AI] მარკერი პირველივე გენერაციიდან + საიმედო მარკერის ძებნა
14. 💬 შეტყობინებები, პაციენტის პარამეტრები, მცირე UX
- NotificationTemplatesAdmin — HTML/Text გადართვა ელფოსტის რედაქტორში
- NotificationSettings — ელფოსტის გადახედვა HTML-ს რენდერავს fallback-ით
- PromptEditModal — თავიდან აშენდა: ტაბები, მოდელის ამომრჩევი, აუცილებელი ვერსიის სახელები
- Hide_dev_ui ალმის გადატვირთვა გამოსვლისას — დეველოპერის ალმები სესიებს შორის არ ინახება
- სატესტო პაციენტი Ann Fauler — ინგლისური 1:1 ასლი პოლონური Anna Pełnialska-სი, მხოლოდ-EN დემოებისთვის
- Dev UI presentation mode გადართვა — სწრაფი გადართვა პრეზენტაციის რეჟიმში
- Bug report — Jira attachments + reporter-ის ლეიბლი + ცენტრირებული „Submit” ღილაკი
- Auth-refresh loop გასწორდა — მოთხოვნების abort და login-ზე დაბრუნება 401-ზე
- „სერვერი იწყება” ბანერი — ცივ სტარტზე (scale-to-zero) ვაჩვენებთ შეტყობინებას ცარიელი გვერდის ნაცვლად
- სესიის შეფასების სკალა — თვითრეფლექსია ხარისხის შეფასების ნაცვლად + disclaimer (SCRUM-1005, Joanna)
- „Minimize” ღილაკის ფერი შეიცვალა კობალტისფერ იასამნისფერზე (SCRUM-1307, Ewa)
- „Transcription” ლეიბლის ფერი წითლიდან მწვანეზე (SCRUM-1304, Ewa)
- „Record now” → „Record AdHoc session” — უფრო ზუსტი ღილაკის სახელი
- Sandbox მწვანე ლენტით ზედა-მარცხენა კუთხეში +
[SANDBOX]პრეფიქსი სათაურში — გარემოს არევის თავიდან ასაცილებლად, პლუს განმეორებადი PROD → Sandbox კლონირება (Azure IaC + სკრიპტები)
✅ QA Checklist — რა შეამოწმოთ deploy-ის შემდეგ
| ფუნქცია | შემოწმება |
|---|---|
| Ad-hoc სესია — Quick Record | დააწკაპუნეთ Quick Record-ზე დაფაზე ან PWA-ში — ჩაწერა მაშინვე იწყება, სესია ხვდება AdHoc Inbox-ში |
| AssignPatient AdHoc Inbox-ში | გახსენით ad-hoc ჩანაწერი — შეგიძლიათ მიანიჭოთ არსებულ პაციენტს ან შექმნათ ახალი |
| პაკეტის ლიმიტი | დაფა აჩვენებს სესიების მრიცხველს მიმდინარე თვისთვის და რამდენი დარჩა პაკეტში |
| საშეღავათო პერიოდი წარუმატებელი გადახდის შემდეგ | გამოწერის სიმულატორი PromptyAI-ში — გამოიწვიეთ წარუმატებელი გადახდა, 14 დღით მხოლოდ ანგარიშზე წვდომას იღებთ |
| 3-მხრივი შერწყმის ჩანაწერები | სესიის დეტალებში Notes ველი აჩვენებს სამ წყაროს გვერდიგვერდ (თერაპევტი / AI / ტრანსკრიფცია); შეგიძლიათ აირჩიოთ, რა შეინარჩუნოთ |
| 9 კბთ ანალიზი | კბთ ანალიზების ტაბი აჩვენებს 9 ცალკეულ ერთეულს; თითოეული მოთხოვნით გენერირდება; თითოეულს აქვს prompt-edit cog |
| საჯარო პროფილი — drawer-ები | გახსენით საკუთარი საჯარო პროფილი ავტორიზებულმა — ბიოგრაფიის, სპეციალიზაციის, კონტაქტის რედაქტირების drawer-ები ხილულია |
| ვიდეო PiP | ვიდეო სესიის დროს დააწკაპუნეთ minimize-ზე — ფანჯარა იკეცება მინი-პლეიერამდე, მიკროფონი კვლავ მუშაობს, ბრუნდებით lobby-ს გარეშე |
| ფონის ბლური | ვიდეო lobby-ში ჩართეთ ფონის ბლური — მუშაობს დაუყოვნებლივ, CSP შეცდომების გარეშე |
| Beck კონცეპტუალიზაციის PDF | გენერირეთ კონცეპტუალიზაციის PDF — ჩნდება სესიის მასალებშიც |
| ABC v1/v2 toggle | Conceptualization v2-ში შეგიძლიათ გადართოთ ABC-ის წყარო ვერსია 1-სა და 2-ს შორის |
| ინვოისი არჩეული გადახდებიდან | აირჩიეთ რამდენიმე გადახდა და დააწკაპუნეთ „ინვოისის გამოწერა” — snapshot-იდან იქმნება ერთი ინვოისი |
| განმეორებადი სესია Google Meet-ით | სერიის მეორე და მესამე სესიას სწორად აქვს დაყენებული Google Meet და ელფოსტა შეიცავს სწორ ბმულს |
| სესიები 22:00-დან | კვირეული კალენდარი აჩვენებს 22:00-სა და მის შემდეგ დაგეგმილ სესიებს |
| „No-show” სტატუსი | დასრულებულ / გაუქმებულ სესიაში შეგიძლიათ სტატუსი შეცვალოთ „No-show”-ზე |
| მობილურის მუქი თემა | მობილურ აპლიკაციაში გადართეთ მუქ თემაზე — ჯგუფის სათაურები წაკითხვადია |
| AdHoc Inbox მობილურში | მობილური აჩვენებს ad-hoc inbox-ს და საშუალებას გაძლევთ მიანიჭოთ პაციენტი |
| MFA-ს ხელახალი დადასტურება | პაროლის შეცვლისას აპლიკაცია ხელახლა ითხოვს MFA-ს |
| AI ფსევდონიმიზაცია | ლოგებში ხედავთ, რომ პაციენტის მონაცემები AI-სთან ფსევდონიმების სახით მიდის |
| სესიის მასალები, როგორც blob | ატვირთეთ ფაილი სესიის მასალებში — ის ხვდება Azure Blob Storage-ში და არა ლოკალურ დისკზე |
| პაციენტის ელფოსტის გლობალური უნიკალურობა | დაამატეთ მეორე პაციენტი იმავე ელფოსტით — იღებთ 409-ს და მოდალი იხურება |
| „სერვერი იწყება” ბანერი | ხანგრძლივი უმოქმედობის შემდეგ, აპლიკაციაში შესვლისას ჩნდება ბანერი ცარიელი გვერდის ნაცვლად |
🛠️ რა გავასწორეთ — წვრილი შრიფტით
დიდი ფუნქციების გარდა, გადაწყდა ~80 მოხსენება ტესტერებისა და მომხმარებლებისგან. მთავარი:
- PiP overlay არ იყო დაწკაპუნებადი — გასწორდა
- Stale closure handleMaximize-ში — PiP-ის გადიდება აღარ აგდებს შეცდომას
- PiP ინარჩუნებს კავშირს — ადრე
room.disconnect()ეშვებოდა fullscreen↔PiP გადასვლისას - „Join session” ღილაკი დამალული იყო CSS override-ით — გამოჩნდა
- მეორე AITS სესია იმავე პაციენტისთვის (SCRUM-1319, Ewa) —
Session.VideoInviteToken-ზე UNIQUE INDEX-ის მოხსნა - სესიების ნუმერაცია კონცეპტუალიზაციაში გამოტოვებს გაუქმებულებს (SCRUM-1267, Bohdan)
- Null-safe Payment წვდომა GetSessionDetailsAsync-ში (SCRUM-1268, Bohdan)
- Anna Pełnialska-ს სატესტო სესიის კოლიზია Jan-თან 14:00-ზე — გასწორდა seeder-ში
- დაფის დამუხრუჭება — null-safe mapping GetTodaySessionsAsync-სა და GetSessionDetailsAsync-ში
- Auto-refresh მიკროფონიდან ჩაწერის დასრულების შემდეგ — მუშაობს
- Batch fallback აღარ გადაფარავს ტექსტს წინა ჩანაწერებიდან და არ ბლოკავს UI-ს Processing სტატუსით
- ტრანსკრიფციის ენა სესიის პარამეტრებიდან — STT ითვალისწინებს პაციენტის პრეფერენციას
- CSP —
*.clarity.ms-ისა დაblob:-ის დაშვება connect-src-ში, ანალიტიკა script-src-ში - Auth-refresh loop — მოთხოვნების abort 401-ის შემდეგ და login-ზე დაბრუნება
- CSP MediaPipe WASM — ფონის ბლური მუშაობს
- DEV/SANDBOX ribbon ასევე Azure FQDN-ზე, არა მხოლოდ custom domain-ზე
- მცდარი toast „Transcription failed” სესიაში შესვლისას — მოშორდა
- Toast წითელი ბანერის ნაცვლად წარუმატებელ ტრანსკრიფციაზე + მოშორდა „Resample” ღილაკი
- რეალურ დროში დიარიზაცია ვიდეო სესიაში — სწორად იწყება
- AI streaming — თითო-handler-ზე AbortController საერთოს ნაცვლად (
BodyStreamBuffer was aborted) - Nginx non-root + Azure Container Apps — რამდენიმე იტერაცია, რომ ეს ემუშავა
- Distributed lock (sp_getapplock) — startup მიგრაციები აღარ კონფლიქტში მოდის პარალელურ deploy-ებზე
- DbUpdateConcurrencyException batch ტრანსკრიფციის poller-ში (SCRUM-1313, Bohdan)
- BlobNotFound, როგორც მოსალოდნელი მდგომარეობა (SCRUM-1314, Bohdan)
- Stripe webhook non-JSON payload-ები (სკანერები / ბოტები) — ჩუმად მუშავდება (SCRUM-1315, Bohdan)
- აუდიო ფორმატის ამოცნობა magic bytes-ით (SCRUM-1311, Bohdan)
- მდგრადი აუდიო ატვირთვა + დამცავი Content-Type (SCRUM-1293, Bohdan)
- FK მიგრაცია ActiveEmbeddingModelId → ON DELETE NO ACTION
- Dev client deploy — CACHE_BUST=
github.shaაიძულებს frontend-ის თავიდან აგებას
ეს არის ამ გაზაფხულის ყველაზე დიდი და მკვრივი გამოშვება. თუ ფუნქცია ნაცნობი გეჩვენებათ — ეს იმიტომ, რომ ეს თქვენი მოთხოვნა ან თქვენი ტიკეტი იყო. მადლობა ყოველი მოხსენებისა და ყოველი სქრინშოთისთვის.
სტატია მოამზადა Therapy Support-ის გუნდმა