มีอะไรใหม่
มีอะไรใหม่ใน VoiceHotKey — บันทึกการอัปเดตสำหรับ Mac, Windows, iOS, Android และ Linux กรองตามแพลตฟอร์มของคุณ
ประกายระยิบใน Menu Bar ระหว่างการทำงานของ AI
- อนิเมชันประกายระยิบของการทำงาน AI บนไอคอน Menu Bar
แก้ไขการวางอักษรซิริลลิกใน Telegram
- แก้ไข
การวางอักษรซิริลลิกใน Telegram — คลิปบอร์ดหลายรูปแบบ (CF_TEXT + CF_UNICODETEXT), HGLOBAL แบบ GMEM_FIXED, หน้ารหัส ANSI ที่รับรู้สคริปต์
- ชื่ออุปกรณ์ไมโครโฟนใน UI: ตัดคำนำหน้า «Microphone» ที่แปลแล้วออกเพื่อรายการที่สะอาดกว่า
- รวม ScSignTool ไว้ด้วย ดังนั้นการเซ็นรีลีสไม่ขึ้นอยู่กับ PATH ของระบบอีกต่อไป
- ยืนยันคลิปบอร์ดใหม่หลังปิดและตัวจับเวลาการกู้คืน 1 วินาที
- เมนู «Voice to text» ใหม่พร้อมการจัดการคลิกที่แถบสถานะอย่างชาญฉลาด
- การตั้งค่า «Show Floating Animation» ให้คุณซ่อนโอเวอร์เลย์ระหว่างการบันทึกได้
- แก้ไข
ตำแหน่งวางเมื่อพูดไปยัง Notion
- ยกเลิกการถอดเสียงโดยแตะอนิเมชันที่กำลังหมุน (พร้อมช่วงผ่อนผัน 1 วินาที)
- «Cancelled» แสดงด้วยสีแดงในประวัติ
- ปรับปรุง
timeout อ่าน/เขียน OkHttp ลดจาก 2 นาทีเป็น 1 นาที
ปรับแต่งสีของ Air Button ได้
- สีไล่เฉดของ Air Button ปรับแต่งได้ พร้อมตัวเลือกสีในการตั้งค่า
- ไอคอน Menu Bar กลายเป็นมุมมอง SwiftUI แอนิเมชันสไตล์ AirButton
- แก้ไข
แถบแอมพลิจูดค้างหลังจากบัฟเฟอร์เสียงเต็ม
- แถว AI tools ทั้งแถวตอนนี้คลิกได้เพื่อสลับแต่ละ checkbox
ตัวเลือกสี
- ตัวเลือกสีในการตั้งค่าเพื่อปรับแต่งสีของไมค์และไล่เฉดของอนิเมชัน
- สีไดนามิก Material You สำหรับไมค์
- แสดงตัวอย่างสดขณะลากตัวเลื่อนสี
- ตัวเลือกแสดงปุ่มยกเลิกระหว่างการบันทึก
เมนู AI ด้วยท่าทาง อนิเมชันที่ตรงกับ macOS
- ปรับโครงสร้างเวิร์กโฟลว์การบันทึก — เลือกการทำงาน AI หลังการบันทึกผ่านท่าทาง
- อนิเมชันการบันทึก OK แบบเรเดียลที่ตรงกับ macOS
- ไอคอน AirButton ที่ตรงกับ macOS
- สปินเนอร์โค้งหมุนที่ตรงกับ macOS
- ตัวเลือกหยุดชั่วคราวเสียงของแอปอื่นระหว่างการบันทึก
- สลับระหว่างคลิปบอร์ดและการแทรกข้อความโดยตรงสำหรับการพูด
- คลิกขวาที่ใดก็ได้บนโอเวอร์เลย์การบันทึกเพื่อยกเลิก (คลิกซ้ายไม่ยกเลิกอีกแล้ว)
- แถบแอมพลิจูดแบบเรเดียลตอนนี้เริ่มจากนอกวงกลม OK เล็กน้อยเพื่อให้มองเห็นเสียงกระซิบได้ดีขึ้น
- Archive script: แก้ไข notarization โดยใช้ notarytool submit, stapling และการตรวจสอบ
Air Button เป็นค่าเริ่มต้น
- Air Button แสดงเป็นค่าเริ่มต้นที่ 32 px ด้วยช่วง slider 16–32 px
- เพิ่มตัวเลือกแยกแยะตัวพิมพ์ใหญ่/เล็กในการแทนที่
- ปุ่มถอดเสียงใหม่ต่อภาษาในรายการประวัติ
- สปินเนอร์โค้งหมุนที่ตรงกับ macOS
- ไอคอน Air Button วงกลมศูนย์กลางร่วมแบบเขียนโปรแกรม (ไม่ใช่ PNG อีกต่อไป)
- คลิกขวาเพื่อยกเลิกการบันทึกบนโอเวอร์เลย์อนิเมชัน
Air Button โอเวอร์เลย์ที่ลากได้ สปินเนอร์โค้งหมุน
- Air Button ลากได้แล้ว โอเวอร์เลย์การบันทึกรวมเป็นหนึ่งและปรับตำแหน่งใหม่ได้
- สปินเนอร์โค้งหมุนแทนจุดของการถอดเสียง
- แถบแอมพลิจูดเรเดียลแทนวงแหวนระดับเสียงระหว่างการบันทึก
- ปุ่ม OK และอนิเมชันระดับเสียงวงกลมแทนคลื่นรูปแบบการบันทึก
- ปรับปรุง
การตอบสนองของการพูดต่อเนื่อง
- แก้ไข
การวางที่ล้มเหลวเป็นครั้งคราว (Cmd+V ถูกส่งแบบ synchronous แล้ว)
- เลือกโมเดลเริ่มต้นอัตโนมัติจากเซิร์ฟเวอร์ (ลบ gpt-4o-mini ที่เขียน hardcode ออก)
- แก้ไข
เข้าสู่ระบบผ่านลิงก์อีเมล (long-poll ทำงานจริงแล้ว)
- แก้ไข
ข้อความที่พูดถูกแทรกในตำแหน่งผิดเมื่อเคอร์เซอร์อยู่กลางประโยค
- แก้ไข
การพูดไม่ถูกบันทึกใน Google Keep
- Air Button ออกแบบใหม่ด้วยวงกลมศูนย์กลางร่วมแบบเขียนโปรแกรมและมีรอยตัดสามจุดบนวงแหวนด้านนอก
- ฮอตคีย์การประมวลผลภายหลังแบบ camelCase และ Title Case
- ใช้แหล่งข้อมูลอินพุตคีย์บอร์ดของคุณเพื่อเลือกภาษาการถอดเสียงเริ่มต้นในการเปิดใช้งานครั้งแรก
- แก้ไข
ไมโครโฟน USB ภายนอกถูกแทนที่ด้วยไมโครโฟนในตัวของ MacBook
- ลายม้าลายสำหรับแถวรายการฮอตคีย์ด้วยคอนทราสต์ที่รับรู้ธีม
- การตั้งค่า «Show press-and-hold option» — ซ่อน checkbox กดค้างเป็นค่าเริ่มต้น
- แก้ไข
การแสดงฮอตคีย์แสดงตัวปรับแต่งหลังคีย์ปกติ (เช่น 1+Ctrl)
- แก้ไข
การวางพิมพ์ตัวอักษรเดียวแทน Ctrl+V บนเลย์เอาต์ภาษารัสเซีย
- แก้ไข
รายการฮอตคีย์ว่างเปล่าหลังการเข้าสู่ระบบใหม่
- จัดลำดับฮอตคีย์ใหม่ด้วยการลากวาง พร้อมตัวบ่งชี้การวาง
- อินพุตหลายบรรทัดสำหรับช่องการแทนที่การทดแทน
- ลายม้าลายสำหรับกลุ่มฮอตคีย์
- แก้ไข
แครชเมื่ออุปกรณ์เสียงถูกตัดการเชื่อมต่อระหว่างการบันทึกที่ใช้งานอยู่
- ปรับปรุง
การส่งต่อ evdev แบบ batch และ XID โอเวอร์เลย์ X11 ที่แคชช่วยลดภาระของท่อส่งอินพุต
- แก้ไข
แครชในขั้นตอนการยืนยันตัวตนเมื่อแอปไปเบื้องหลัง
- แก้ไข
แครชเมื่อรายการเซิร์ฟเวอร์ AI ว่างเปล่า
- แก้ไข
แครชเมื่อคำขอยืนยันตัวตน long-poll ถูกส่งซ้ำ
- คงเซิร์ฟเวอร์ API «ที่ใช้งานได้ล่าสุด» ไว้เพื่อให้รอดจาก endpoint failover
- คัดลอกข้อความที่ถอดเสียงใหม่อัตโนมัติไปยังคลิปบอร์ดในมุมมองประวัติ
- แก้ไข
สิ่งแปลกปลอมของเครื่องหมายวรรคตอน/ช่องว่าง/ตัวพิมพ์ใหญ่หลังการแทนที่ว่างเปล่า
API failover ทุกที่
- API server failover สำหรับทุก build — แอปรอดจากการหยุดทำงานของ endpoint แต่ละตัว
- เปลี่ยนชื่อ «Manage» → «Manage subscription» ในการแปลทั้ง 59 ภาษา
- ปรับปรุงตรรกะป้ายปุ่มสมัครสมาชิกโดยใช้แฟล็กเซิร์ฟเวอร์
- แก้ไข
ปุ่ม Manage subscription ไม่เปิดเบราว์เซอร์เนื่องจากมีช่องว่างใน URL
- แก้ไข
การแทนที่ไม่ทำงานสำหรับภาษาที่ไม่ใช่ละติน (รัสเซีย CJK ฯลฯ)
- ปรับปรุงตัวจัดการแครชเพื่อจัดการข้อผิดพลาดการเสียหายของ heap/stack
- ตอนนี้การทิ้งข้อมูลแครชรวมอยู่ในรายงานปัญหาด้วยตนเอง
- API server failover ด้วยค่าเริ่มต้นที่เขียน hardcode และ api_version=2
- เพิ่ม ANDROID_ID ลงใน deviceId สำหรับการระบุตัวตนต่ออุปกรณ์ที่ไม่ซ้ำ
- ลดการค้างของ GTK ในแท็บประวัติเพื่อป้องกันการค้างของฮอตคีย์
- แก้ไข
ฮอตคีย์ตายถาวรหลังจากการค้างของ main thread ของ GTK
- แก้ไข
ฮอตคีย์ไม่ตอบสนอง 3–6 วินาที (การทำงานโอเวอร์เลย์ X11 ย้ายออกจาก main thread ของ GTK)
- ราวป้องกันการบันทึกเพื่อป้องกันการบันทึกสั้น/ซ้ำโดยไม่ได้ตั้งใจ
- แก้ไข
ปุ่มรายงานค้าง (timeout subprocess และแก้ไขการ log ซ้ำ)
ความเสถียรของการจับเสียง
- สรุป vorbis stream ก่อนที่จะถอดประกอบอุปกรณ์ WASAPI เพื่อป้องกันการเสียหายของ heap
- ปิดใช้ WASAPI AUTOCONVERTPCM สำหรับอุปกรณ์จับเสียง
- การยกเลิกตาม CancelToken สำหรับคำขอ HTTP ทั้งหมด
- แก้ไข
ฮอตคีย์ตายหลังตัดการเชื่อมต่อคีย์บอร์ด (ลูปการเชื่อมต่อใหม่)
- แก้ไข
แครชจาก heap corruption ระหว่างหยุดบันทึกบน Windows 10 14393
- แก้ไข
race condition ใน audio callback ระหว่างหยุดจับเสียง
- ซ่อนไมค์เมื่ออุปกรณ์ไม่มีการโต้ตอบ (ล็อก doze Always-on Display)
- เพิ่มคำนำหน้า «Mouse» ในชื่อแสดงของปุ่มเมาส์
- แก้ไข
โหมดกดค้างของปุ่มเมาส์
ปล่อย Mac App Store
- กล่องโต้ตอบความยินยอมด้านความเป็นส่วนตัวของข้อมูลสำหรับ MAS Guidelines 5.1.1(i) / 5.1.2(i)
- ชื่อ bundle เดียวกัน «VoiceHotKey» ในการแจกจ่าย MAS และ Direct
- ชื่อ bundle ของ launcher ถูกตรึงไว้ที่ «VoiceHotKey Launcher» ในทุก locale
- ข้อความเป็นกลาง «Continue» แทน prompt สิทธิ์แบบสั่งการสำหรับการตรวจสอบ MAS
ฮอตคีย์เมาส์ แท็บ AI แท็บ Files
- รองรับฮอตคีย์ปุ่มเมาส์
- รองรับคลิปบอร์ด X11 และโหมดกดค้าง
- กฎ udev ของ uinput และ prompt รีบูตของตัวติดตั้งเมื่อเพิ่มกลุ่ม input
- แท็บ AI พร้อมการจัดการ prompt แบบกำหนดเอง (เฉพาะโมเดลที่รองรับ completion)
- แท็บ Files สำหรับการถอดเสียงไฟล์เสียง/วิดีโอ
- แท็บ About พร้อมข้อมูลแอป ลิขสิทธิ์ และลิงก์โซเชียล
- ตรวจสอบความสมบูรณ์ของการติดตั้ง
- API server failover โดยใช้รายการ api_servers ที่เซิร์ฟเวอร์จัดเตรียมไว้
- Failover เมื่อ response API ไม่ใช่ JSON (ข้อผิดพลาด nginx/proxy)
- แก้ไขการ parse response SSE stream สำหรับการถอดเสียงไฟล์
- ซ่อนโอเวอร์เลย์เมื่ออุปกรณ์ถูกล็อกหรืออยู่ในสถานะ Always-on Display
- API server failover
- API server failover สำหรับการเรียก API ทั้งหมด (โดยค่าเริ่มต้น api2.voicehotkey.com)
- คำเตือนแสดงเมื่อฮอตคีย์ล้มเหลวเนื่องจากไม่มีสิทธิ์กลุ่ม input
- ตรวจสอบการสมัครสมาชิกอัตโนมัติเมื่อเปิดใช้งานโดยใช้ StoreKit 2 entitlements
- ติวเตอร์ accessibility แบบ inline แทนหน้าต่างติวเตอร์แยกต่างหาก
- AccessibilityStatusHelper แบบนอกกระบวนการเพื่อสถานะสิทธิ์ TCC ที่แม่นยำ
- เปลี่ยนชื่อการตั้งค่าเป็น «Restore Clipboard After Pasting» (ค่าเริ่มต้นกลับด้าน)
- ยืนยัน SHA256 hash สำหรับการอัปเดตอัตโนมัติ
- การแทนที่ฮอตคีย์ทั้งหมดที่ขับเคลื่อนโดยเซิร์ฟเวอร์ (ยกเลิก merge logic แล้ว)
- การตั้งค่า — หยุดการบันทึกในแท็บ Files ด้วยฮอตคีย์
- จัดลำดับใหม่ด้วยการลากวางสำหรับฮอตคีย์
- โอเวอร์เลย์ไม่รบกวนแผ่นการซื้อของ App Store อีกต่อไป
- การกู้คืนการสมัครสมาชิกตอนนี้ใช้ original_transaction_id เพื่อตรวจจับข้อขัดแย้ง
- ปีลิขสิทธิ์อัปเดตเป็น 2026
- จัดลำดับฮอตคีย์ใหม่ด้วยการลากวางในแท็บหลัก
- ยกเลิกแนวคิด «ฮอตคีย์หลัก» — ฮอตคีย์ทั้งหมดตอนนี้เท่าเทียมกัน
- URL release ที่ขับเคลื่อนโดยเซิร์ฟเวอร์สำหรับการตรวจสอบอัปเดตตามภูมิภาค
- แถวทางลัดว่างเมื่อเปิดใช้งานครั้งแรกเมื่อไม่มีการกำหนดฮอตคีย์
13 ภาษา UI ใหม่
- การแปลภาษา UI ใหม่ 13 ภาษาพร้อมการสลับภาษาแบบสด
- แคชอุปกรณ์เสียงเพื่อหลีกเลี่ยงการแจงนับ ALSA ซ้ำ
- การตรวจจับ distro และ desktop environment ที่แม่นยำสำหรับรายงานบั๊ก
- การทำงานฮอตคีย์ PasteLast ใหม่ — วางผลลัพธ์ล่าสุดจากประวัติ
- เมนู Intelligence ที่เรียบง่ายขึ้นพร้อมการทำงาน Translate และ Fix Layout โดยเฉพาะ
- ภาษา/โมเดลเริ่มต้นสำหรับการทำงานแปล พร้อมการแทนที่โมเดลที่ขับเคลื่อนโดยเซิร์ฟเวอร์
- แก้ไข
เครื่องหมายคำพูดภาษาจีนใน zh.rc ทำให้เกิดข้อผิดพลาดของตัวคอมไพเลอร์ RC
X11 + Wayland, x86_64 + aarch64
- แก้ไขความเข้ากันได้กับ Linux Mint การรวมไอคอน/เมนู Cinnamon รองรับฟอนต์อีโมจิ
- สถาปัตยกรรม 4 build — X11 + Wayland สำหรับ x86_64 และ aarch64
- รองรับการ build ระยะไกลด้วย SSH สำหรับการ deploy ข้ามสถาปัตยกรรม
- fallback xdotool สำหรับ auto-paste บน X11
- ลบ «Upgrade Pro» เมื่ออยู่ใน Pro แล้ว
- แก้ไข
วันหมดอายุใช้วันที่ท้องถิ่น
- รองรับหลายสถาปัตยกรรมสำหรับ x86_64 และ aarch64
- การอัปเดตอัตโนมัติแบบไม่รบกวนที่นำไปใช้เมื่อแอปไม่ได้ใช้งาน
- ย้ายล็อกไปยังตำแหน่งถาวรพร้อมการหมุนตามขนาด
- แคช balancer เพื่อความยืดหยุ่นแบบออฟไลน์
- ลองใหม่เฉพาะภาษา โหมด dev การอัปเดตเฉพาะการอัปเกรด
- ตรวจจับแพ็กเกจ ALSA สำหรับ Ubuntu 24.04+
ติดตั้งและอัปเดตอัตโนมัติ
- โครงสร้างการติดตั้งและอัปเดตอัตโนมัติพร้อมการยืนยัน SHA256 และการบีบอัด UPX
- แทนที่ไอคอนไมโครโฟนด้วยไอคอนที่กำหนดเองได้รับแรงบันดาลใจจาก macOS
- รวมการถอดเสียงและการประมวลผล AI เป็นคำขอเดียว
- อุปกรณ์ส่วนกลางและการทำงานแบบขนานเพื่อลดความหน่วงของการวาง
- โอเวอร์เลย์การบันทึกพร้อมอนิเมชัน waveform และ popup ประวัติ
- แท็บ Substitutions สำหรับกฎการแทนที่ข้อความ
- แท็บ Report Problem สำหรับส่งรายงานบั๊ก
- ระดับเสียงจริงระหว่างการบันทึก
- บันทึก/กู้คืนขนาดหน้าต่างเมื่อรีสตาร์ท
- ตั้งค่าทั้ง CLIPBOARD และ PRIMARY selection เมื่อวาง
Linux MVP
- ไคลเอนต์ Linux เริ่มต้น — ฮอตคีย์ ประวัติ การวางจากคลิปบอร์ด เข้าสู่ระบบ การแทนที่ การทำงาน AI ภาษา
ธีมสีดำ
- ธีมสีดำ
- เพิ่มฮอตคีย์ผ่านปุ่ม «+» ในแท็บหลัก
- จัดการการรีสตาร์ท/ออกจากระบบ Windows อย่างราบรื่น
- ปุ่มลองใหม่เมื่อถอดเสียงใหม่
- ข้อความข้อผิดพลาดเมื่อเปลี่ยนโหมดด้วยใบอนุญาตที่ไม่ถูกต้อง
- แก้ไข
การบันทึกค้างในการประมวลผลหลังการอัปโหลดที่ถูกยกเลิก
- การพูดตอนนี้แทรกข้อความตรงกลางข้อความที่มีอยู่แทนการแทนที่
- จัดการเครื่องหมายวรรคตอนหลายตัว แทรกคำนำหน้า/ต่อท้ายตามเงื่อนไข
- ลดการคืบของ CPU ระหว่างการบันทึก (ย้าย timer ไปยัง AppState เพื่อหลีกเลี่ยง retention cycle)
- รีเซ็ต appStatus จาก callback เพื่อรับประกันสถานะ `.idle` หลังการทำงาน
- จัดเรียงแผงบันทึกไปข้างหน้าทันทีที่พร้อมใช้งาน
- บล็อกเหตุการณ์การเปิดใช้ใหม่ที่ไม่ใช่ผู้ใช้เริ่ม เพิ่มการบันทึกล็อกรอบ ๆ การเปิดใช้ใหม่
- ย่อหน้าต่างแทนการออกจากแอปเมื่อปิด
- แก้ไข
ข้อความข้อผิดพลาดใบอนุญาตถูกซ่อนเมื่อใบอนุญาตอัปเดต
กด Esc เพื่อหยุดการบันทึก
- เพิ่มตัวเลือกในการกด Escape เพื่อหยุดการบันทึก
- เหตุการณ์คีย์ Esc ถูกกลืนเมื่อยกเลิกเพื่อไม่ให้แพร่กระจายไปยังแอปอื่น
- กลไก fallback และการบันทึกล็อกที่ปรับปรุงแล้วสำหรับการมองเห็นอนิเมชันการถอดเสียงที่เป็นพัก ๆ
การบันทึกผ่าน Bluetooth
- ตัวเลือกการบันทึก Bluetooth พร้อมการจัดการแหล่งเสียงที่แตกต่าง
- การตอบกลับด้วยการสั่น
- การป้องกันเมื่อ Bluetooth ปิดใช้งาน
- แก้ไข
การกระโดดของเลย์เอาต์บนอุปกรณ์ Samsung
- ระงับการเปิดใช้งานแอปที่ไม่ได้ตั้งใจภายใน 1.5 วินาทีหลังตื่นหรือการเปลี่ยนแปลงแหล่งพลังงาน
- ตรรกะการวางตำแหน่งสำรองเมื่อไม่มี `kCGWindowBounds` — โอเวอร์เลย์ปรากฏเสมอ
- ลดขนาด channel เพื่อป้องกันการใช้หน่วยความจำสูง
- แก้ไข
แครชที่เป็นไปได้หลายรายการเมื่อ init
ผสมเสียง + หูฟังเป็นข้อความ
- ผสมเสียง — เสียงและหูฟังถอดเสียงพร้อมกัน ปรับมาตรฐานและล้างทุกวินาที
- แก้ไข
race condition เมื่อผสมเสียง
- วิธีแก้ปัญหาสำหรับแอปที่โฟกัสไม่คงที่ เช่น ChatGPT Atlas และ Notion
- ประหยัดแบตเตอรี่เมื่อผู้ใช้ไม่ได้เข้าสู่ระบบหรือออกจากแอป
- อีเมลรวมในชื่อไฟล์ล็อก จำกัดความยาวชื่อไฟล์ที่ 255 ตัวอักษร
- เครื่องมือ AI «translate» เพิ่มลงในเมนู Air Button
- การจัดตำแหน่งเครื่องมือ AI ในเลย์เอาต์วงกลมพร้อมรองรับการคลิกเมาส์
- อัปเกรดไลบรารีหลายรายการ
- ปิดการสอนชั่วคราว
- แก้ไข
ปุ่มด้านล่างประวัติไม่แสดงเมื่อผู้ใช้มี nav bar
- แก้ไขประสิทธิภาพสำหรับเวิร์กโฟลว์การบันทึก
- ตัวบ่งชี้การโหลดขณะสอบถามการซื้อ
- อัปเดตเวอร์ชันไลบรารี billing
- แก้ไข
แครชเนื่องจากการเข้าถึงเธรดหลักและการเปลี่ยนแปลงได้
- เพิ่ม `PowerSourceMonitor` เพื่อเชื่อมโยงการเชื่อมต่อที่ชาร์จกับการเปิดใช้งานแอป
Air Button เปิดตัวบน Windows
- Air Button — เปิดตัวครั้งแรกบน Windows (ตรงกับการออกแบบ macOS)
- ลดความถี่การ polling ไมโครโฟนเพื่อหลีกเลี่ยงการทำให้ CoreAudio ไม่พอใจและการส่งรายการอุปกรณ์ที่ไม่สมบูรณ์
- แก้ไข
แครชที่เกิดจาก force-unwrap พิกัดโอเวอร์เลย์
- ไม่ลงทะเบียน Open at Login โดยค่าเริ่มต้นใน build ของ Mac App Store
- ย้ายปุ่ม Terms of Service และ Privacy Policy ไปยังเมนู About
- เพิ่มตัวเลือกลบบัญชี (build 467)
- การเปลี่ยนแปลงโค้ดตอบสนองต่อ «Missing Screen Recording Usage Explanation»
- แก้ไข
สูญเสียสิทธิ์เครือข่ายที่เกิดจากการแก้ไข entitlements
การเลือกภาษาพูดด้วยตนเอง
- ตัวเลือกในการเลือกภาษาพูดด้วยตนเอง
- บังคับลองใหม่บนเซิร์ฟเวอร์อื่นทุกครั้งที่การถอดเสียงผิดพลาด
- จัดตำแหน่งใหม่อย่างถูกต้องบนมุมมองการเลือกภาษาพูด
- ขนาดเดียวกันเมื่อบันทึกและการถอดเสียง AI
- ตัวสังเกตการตื่นทำให้โอเวอร์เลย์แสดงขึ้นเมื่อตื่น
- แก้ไข
ตรวจจับสิทธิ์ Accessibility บน macOS ≥ 12 และ < 15
- ใช้ accessibility โดยไม่ต้องรีสตาร์ท
- การจัดการ relaunch Accessibility ที่เป็นมิตรกับ Mac App Store
- ลบ dependencies AlamoFire, Moya และ KeyboardKit
- อัปเดตไลบรารี KeyboardShortcuts เป็น 2.4
- อนิเมชันการบันทึกและการถอดเสียงสไตล์ Mac
- ตรรกะการเลือกเซิร์ฟเวอร์
- อย่าแสดงตัวเลือกภาษาเมื่อผู้ใช้พูดเพียงภาษาเดียว
- แสดงคำใบ้ «stop speaking» ในครั้งแรก
- ตรวจจับสิทธิ์ Accessibility ที่ถูกเพิกถอนในขณะ runtime และเปิดแอปใหม่อย่างปลอดภัยแทนที่จะหยุดระบบ CGEvent ของ macOS
- เปิดใช้งานแอปอัตโนมัติเมื่อสิทธิ์ Accessibility ถูกปิดใช้งานในขณะ runtime
สอดคล้องกับ API v2
- สอดคล้องกับ API v2 พร้อมการควบคุมการเข้าถึงที่เข้มงวดขึ้น
- Debounce สำหรับ `LoginResourceService.refreshUserInfo()`
- ตรวจจับการให้สิทธิ์ Accessibility อัตโนมัติและรีสตาร์ทแอปเพื่อใช้งาน
ภาษาอินพุตต่อฮอตคีย์
- เพิ่มการเลือกภาษาอินพุตที่ระดับ `UserShortcut`
- การทำงาน AI ใหม่ «Start with an Uppercase letter»
- แก้ไข
แครช Core Data เมื่อ entity `UserShortcut` มี UUID เป็น nil
- แก้ไข
การคำนวณรัศมีอนิเมชันและความยาวคลื่น
- รองรับการทำงาน upload-file
- แสดงเมนูภาษาพูดขณะบันทึก
- รีเซ็ตภาษาพูดเมื่อหยุดการถอดเสียง
- เตรียมมุมมองอนิเมชัน waveform
- ป็อปอัพเรตติ้งแบบควบคุม — ไม่แสดงเมื่อผู้ใช้เรตแล้วหรือเลือก «never rate»
- แก้ไข
แตะที่ใดก็ได้ทำให้การบันทึกหยุด
- ปรับปรุง
แก้ไขความเร็วในการสลับแท็บ
- Balancer ข้ามเซิร์ฟเวอร์ที่ไม่พร้อมใช้งานและรีเฟรชรายการเมื่อว่างเปล่า
- วิธีที่สะดวกสำหรับการเรียก API
- อัปเกรดเป็นการตั้งค่าโปรเจกต์ที่แนะนำของ Xcode 26
- แก้ไข
คำเตือน Swift concurrency และ deprecation หลายรายการ
- เพิ่มตัวเลือกระดับไมโครโฟน-เป็นสูงสุดพร้อมการแปล
- ทำความสะอาดระบบ localization (ลบภาษาที่ Whisper ไม่รองรับออก — คีร์กีซ ไอริช โดกรี ราชสถาน สันสกฤต ฯลฯ)
- ป้องกัน race condition เมื่อผู้ใช้สลับ Accessibility เร็วเกินไป
- แสดงทันทีเมื่อ Accessibility ถูกเปิดใช้งาน
- เพิ่มการรองรับ `api_version=2` (WIP)
- ความคงอยู่ของการตั้งค่าผ่าน endpoint `/users/config`
- แก้ไขที่เป็นไปได้สำหรับการสลับภาษาบน iPhone SE
- หมายเลขโทรศัพท์บันทึกไว้ในแบบฟอร์มรายงาน
เปลี่ยนชื่อเป็น Air Button + การเลือกไมค์รวม
- เปลี่ยนชื่อ «Floating Button» เป็น «Air Button» ทั่วทั้งแอป
- รวมตรรกะการเลือกไมโครโฟนในเมนู
- เมนูคลิกขวาบน Floating/Air Button
- เพิ่มเมนูซ่อนปุ่ม
- แสดงตัวเลือก upload-file
- แก้ไข
แชร์จาก WhatsApp (และน่าจะแอปอื่นด้วย)
- ป้องกันแครชเมื่อแยกวิเคราะห์การตอบกลับของเซิร์ฟเวอร์ (Gson)
- พยายามเปิดแอปใหม่หลังติดตั้งใหม่
- ออกจากกิจกรรมทั้งหมดเมื่อผู้ใช้ปัดการแจ้งเตือนออก
- แก้ไข
ไม่สามารถออกจากแอปเมื่อไม่มีกิจกรรมที่ใช้งานอยู่
- การปรับขนาดปุ่มและอนิเมชันจาก Settings หลีกเลี่ยงการตัดออกแปลก ๆ
- การฟื้นฟูโฟกัสหลังการโต้ตอบกับ Overlay
- การตอบกลับทางสัมผัสเบา ๆ บน slider
- เสียงเป็นข้อความต่อเนื่อง
- Tooltip บนการควบคุมทั้งหมดเมื่อวางเมาส์
การควบคุมปุ่มลอย
- ตัวเลือกปุ่มลอยย้ายไปยังแท็บเฉพาะพร้อมการควบคุมเพิ่มเติม
- ตัวเลื่อนความทึบแสงของปุ่มลอย ตัวเลื่อนขนาด hot-reload สำหรับขนาด/ตำแหน่ง
- อนุญาตให้ลากระหว่างการบันทึก
- การทำงาน AI «Start upper-case without terminal mark»
การเลือกอุปกรณ์เสียง
- กล่องโต้ตอบการเลือกอุปกรณ์เสียงพร้อมตัววัดระดับเสียงสด (รีเฟรช 5× ต่อวินาที)
- «system audio» ที่แปลแล้วในอนิเมชันการบันทึก
- คัดลอก transcript ไปยังคลิปบอร์ด
- การตั้งค่า «Pause keyboard and mouse tracking»
- แก้ไข
การบันทึกหยุดหลัง 1 นาที
- สวิตช์ «Stop recording manually» พร้อมตัวจับเวลา
รีแบรนด์: VoiceKey
- ชื่อปฏิบัติการที่เขียนใหม่ใน C++ ถูกเปลี่ยน: VoiceHotKey → VoiceKey เพื่อแยกความแตกต่างจากแอป .NET
ขั้นตอนการถอดเสียงใหม่
- อนิเมชันคลื่นเสียงระหว่างการบันทึก
- เพิ่มตำแหน่งโอเวอร์เลย์กลาง-ล่าง
- แชร์ไฟล์จากประวัติ
- การทำงานคัดลอกคลิปบอร์ดเพิ่มเติม
- ตัวเลือกเมนูเพิ่มในรายการประวัติ
- ลบกล่องโต้ตอบสิทธิ์ «run at startup»
- ซ่อนเนื้อหาบนแท็บ Main เมื่อไม่ได้ยืนยันตัวตน
- บันทึกเป็นไฟล์จากประวัติ
- เปลี่ยนการติดตามเมาส์/คีย์บอร์ด
ปุ่มลอย + แท็บ Files
- ปุ่มลอยพร้อมปุ่มการทำงาน
- แท็บ Files — ถอดเสียงใหม่จากประวัติ คลื่นเสียงระหว่างการบันทึก
- ปุ่มยกเลิกระหว่างการบันทึก
- ระยะเวลาการบันทึกแสดงในประวัติ
- ระดับเสียงจริงระหว่างการบันทึก (แทนอนิเมชัน)
- ตัวเลือกลบ timestamp
- รีเฟรชรายการอุปกรณ์เสียงเมื่ออุปกรณ์ถูกเพิ่ม/ลบ/เปิดใช้งาน/ปิดใช้งาน
- การควบคุมการเปิดเสียงและระดับไมค์ (สอดคล้องกับเกณฑ์ระดับต่ำสุดของแอป C#)
- แก้ไขขนาดหน้าต่าง Remind-to-use
- ตรรกะการยกเลิกระหว่างการถอดเสียง
- ระยะเวลาเสียงแสดงในประวัติ
เตือนให้ใช้แอป
- ฟีเจอร์ «Reminder to use app» (เตือนให้คุณพูดหากคุณพิมพ์มาก)
- ซ่อนไอคอนหลายรายการที่ไม่ได้ใช้ใน build VHK keyboard
รองรับ iPad
- ฟังก์ชันลบบัญชี
- รองรับ iPad พร้อมภาพหน้าจอ iPad
- สีปุ่มแถบบนของคีย์บอร์ดเปลี่ยนตามคำติชมของ Apple
- สัญญาณการตอบกลับเมื่อเล่นการถอดเสียงเสียง
- ปุ่มยกเลิกการบันทึก
- ตัวเลือกย่อไปยังถาดเท่านั้น
- อัปเดตเวิร์กโฟลว์ TranscribeLast
- การตั้งค่าย้ายไปทางซ้าย ชื่อแท็บได้รับอีโมจิ หน้าต่างสามารถปรับขนาดได้
- ฮอตคีย์ยกเลิก (แยกจากการถอดเสียง)
- ตัวเลือกย่อไปยังถาดเท่านั้น
- UI การตั้งค่าระยะเวลาและ timeout
- รองรับ proxy
- ตั้งธีมเริ่มต้นเป็น System
ธีม + การทำงาน Start-with
- รองรับธีม (การใช้งานครั้งแรก)
- การทำงาน AI «Start with...»
- จัดการ Unauthorized
- การทำงาน AI ใหม่
- การทำงาน AI «Start with lower case without terminal sign»
- โมดูล Compose สำหรับการติดตั้งภาษาเพิ่มเติม
- หน้าที่แสดงรายการภาษาที่ติดตั้งแล้ว
- ล้างสถานะคีย์บอร์ดเสมือนเมื่อผู้ใช้ล็อก/ปลดล็อกหน้าจอ
- การเพิ่มประสิทธิภาพเลย์เอาต์กล่องโต้ตอบหลัก — ช่องว่างน้อยลงระหว่างเมนูหลักและเนื้อหา
- Publisher และขนาดการติดตั้งโดยประมาณเพิ่มในรีจิสทรี
- โฟกัสการป้อนข้อมูลคีย์บอร์ดเมื่อนำทางผ่านเมนูหลัก
- วางข้อความในการควบคุมการแก้ไขในโฟกัส
- เพิ่มการตั้งค่าไดเรกทอรีการบันทึก
- แก้ไขการกะพริบของการเปลี่ยน DPI
แยก VHK Mic ออกจากคีย์บอร์ด
- ทำซ้ำโปรเจกต์เพื่อสร้างแอป «vhk-mic» แบบแยกเดี่ยวที่แยกจากแอปคีย์บอร์ด
- การเริ่มต้นและพฤติกรรมแยกสำหรับแอป mic vs keyboard
- อนุมานการทำงานจากทางลัดสิ้นสุด
- แสดงอนิเมชัน lottie บนทุกจอภาพ
- คงตำแหน่งการเลื่อนเมื่อลบรายการออกจากประวัติ
- แก้ไข
รายการซ้ำในประวัติ
- แก้ไข
ลำดับความสำคัญของภาษาอนุญาตให้มีการซ้ำ
- การจัดเรียงการควบคุมแท็บหลัก
- ภาษา UI ใหม่ — id (อินโดนีเซีย), kk (คาซัค), uk (ยูเครน)
- กล่องโต้ตอบหลังการติดตั้ง
- บันทึกเหตุการณ์แอปพลิเคชัน Windows แนบกับรายงานผู้ใช้
- ตรวจสอบการตั้งค่าการเข้าถึงไมโครโฟน Windows ก่อนบันทึก
- รายการกระบวนการที่กำลังทำงานเพิ่มในรายงานผู้ใช้
- การอัปเดตอัตโนมัติของ loader เอง
- ปรับปรุงหน่วยความจำและแก้ไขการรั่วไหลของหน่วยความจำ
แท็บ Files
- เพิ่มแท็บ Files สำหรับการถอดเสียงไฟล์เสียง/วิดีโอ
- แท็บ History — ปุ่มเล่นบันทึก
- คลิกรายการประวัติเพื่อคัดลอกไปยังคลิปบอร์ด
- แก้ไขการแปลง UTC-string ของวันที่/เวลา
แท็บ History
- แท็บ History — ปุ่ม «try again»
- แก้ไข
ปัญหาไมโครโฟน iOS 18
- แก้ไข
ไม่สามารถหยุดหรือเริ่มการบันทึกได้
- ใช้การอัปเดตกับเวอร์ชันใหม่เมื่อแอปไม่ได้ใช้งาน
- แปลงการบันทึกล่าสุดเป็นข้อความ
- กล่องโต้ตอบ AI — ใช้งานทางลัดคีย์บอร์ด
- ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตก่อนรีเฟรชข้อมูลหรือส่งรายงาน
- ข้อความข้อผิดพลาดที่ปรับปรุงแล้ว (น้อยลงของ «Something went wrong»)
- แก้ไข
เอาต์พุต TextAI ที่ยาวถูกเพิ่มต่อท้ายแทนการแทนที่
เสียงเป็นข้อความบนแท็บ Main
- ตรรกะเสียงเป็นข้อความบนแท็บ Main
- ใช้งาน endpoint REST `/transcribe_with_ai`
- เลือกเซิร์ฟเวอร์ AI สำหรับ `/completions`
กล่องโต้ตอบ AI
- การใช้งานกล่องโต้ตอบ AI เริ่มต้น
- แทนที่การควบคุมการแก้ไขดั้งเดิมด้วยเวอร์ชันกำหนดเอง (Direct2D)
- การควบคุมการแก้ไขกำหนดเอง — โหมดบรรทัดเดียว
ยืนยันตัวตนด้วยการ poll ลิงก์
- ยืนยันตัวตนด้วยการ poll ลิงก์
- เพิ่มระยะเวลาของแบนเนอร์สีเขียว
- ปุ่มยกเลิกบนหน้าต่างอนิเมชัน
- การอัปเดตอัตโนมัติเรียกใช้การรีสตาร์ทเมื่อแอปไม่ได้ใช้งานเท่านั้น
- เพิ่มข้อมูลเวอร์ชันในโลดเดอร์
- ส่งรายงานแครชที่ startup
- แท็บ About — Report Problem
การสมัครสมาชิก
- การนำการสมัครสมาชิกไปใช้
- การทำงาน AI จัดเรียงตามการใช้งาน
- มุมมองการสมัครสมาชิกปัจจุบัน
- การตั้งค่า «Run on startup»
- ล้างการติดตั้งก่อนหน้าเพื่อตั้งค่าที่สะอาด
ตัวติดตั้ง NSIS
- ตัวติดตั้งผ่านสคริปต์ NSIS
- GitHub Actions แบ่งเป็นเวิร์กโฟลว์ develop และ release
- รับประกันอินสแตนซ์เดียวของแอป (นำอินสแตนซ์ที่กำลังทำงานมาข้างหน้า)
- Combobox กำหนดเองพร้อมอีโมจิ/รูปภาพในแท็บหลัก
- รองรับ placeholder ในกล่องแก้ไข
- อัปเดตสีของธีมสว่าง
- ร่าง Direct2D edit (การจัดการคีย์ tab ด้วยตนเอง)
คำเตือนการใช้งาน
- แนะนำ Usability Warnings — แสดงปัญหาคีย์บอร์ด ไมค์ และ accessibility เชิงรุก
- รองรับฟอนต์สีสำหรับอีโมจิ
- การบันทึกที่ถูกยกเลิกตอนนี้แสดงในประวัติ
- ปรับปรุง
การห่อข้อความของประวัติและประสิทธิภาพการเลื่อน
- การตั้งค่าเพิ่มเติมสำหรับการทำงาน AI
- UI ลำดับความสำคัญของภาษา
- ตรวจจับภาษา UI อัตโนมัติในการทำงานครั้งแรก
- `refreshUserInfo()` ตอนนี้ล้มเหลวอย่างเงียบเมื่อ guard อินเทอร์เน็ตปิด
DeepL + proxy
- รองรับการแปล DeepL
- รองรับ HTTP proxy
- การตรวจสอบนามสกุลไฟล์ด้านไคลเอนต์
- เขียนเวิร์กโฟลว์การอัปโหลดไฟล์ใหม่ — การยกเลิกงานถอดเสียง ตัวบ่งชี้ความคืบหน้า การ hash SHA256
- เซิร์ฟเวอร์ API จำลองสำหรับการทดสอบการบูรณาการ
- จัดการ UpgradePlan ข้อผิดพลาดของ balancer การจัดการออนไลน์/ออฟไลน์
- เริ่ม/หยุดการตรวจจับคีย์บอร์ดเมื่อจำเป็นเท่านั้น (ประหยัดแบตเตอรี่)
- ทดสอบบน Vivo X70 Pro
- UI ข้อผิดพลาดใบอนุญาตระดับบนสุด
- หน้าต่าง tooltip
- ปรับปรุงประสิทธิภาพการตรวจจับคีย์บอร์ด
- แก้ไข
NPE ที่เป็นไปได้
การตรวจจับคีย์บอร์ดที่รวดเร็ว
- เพิ่มความเร็วการตรวจจับคีย์บอร์ด — รวบรวมโหนดทั้งหมดพร้อมกัน
- หยุดการค้นหาทันทีเมื่อพบ editable ที่โฟกัส
- แก้ไข
ตัวตรวจจับคีย์บอร์ดบางครั้งไม่ตรวจจับ
การถอดเสียงไฟล์
- ความสามารถในการถอดเสียงไฟล์เสียงและวิดีโอ
ยืนยันตัวตน long-polling
- การยืนยันตัวตนแบบ long-polling (การเข้าสู่ระบบผ่านลิงก์อีเมล)
- การบันทึกล็อก REST API
- อัปเกรดเป็น Java 21 (จากนั้นย้อนกลับไปที่ 17) เพิ่มเวอร์ชัน Kotlin
- พิมพ์เหตุผลการออกล่าสุดเมื่อแอปเริ่ม
- แก้ไข
NPE ที่เป็นไปได้เมื่อผู้ใช้ไม่มี timestamp การหมดอายุ
- เมนู «About» ของ macOS ที่สมบูรณ์
- กลับไปยังแหล่งอินพุตหลักเสมอเมื่อปล่อยคีย์บันทึก — แก้ไขปัญหา E/T ของรัสเซีย
- การใช้งาน endpoint `/users/info`
- การควบคุมแถบความคืบหน้า
CPU idle ≤ 1%
- ปรับปรุงประสิทธิภาพทั่วทั้งแอป — การใช้งาน CPU idle ลดลงเหลือ ≤ 1%
- รวมวิธีการแสดงทางลัดคีย์บอร์ดใน recorder, menu bar และ dock menu
- การคำนวณ Device ID
- รวบรวมข้อมูลระบบ
- เวอร์ชันการทำงาน AI ที่สั้นกว่า
- ยกเลิกการทำงาน AI
- การบูรณาการ Play Integrity
- ใช้อีเมลเป็น account id
- Timber สำหรับการบันทึกล็อก
การเรียกเก็บเงินในแอป
- ใช้งานฟีเจอร์การเรียกเก็บเงิน Google Play
- บันทึกใบเสร็จการซื้อลงฐานข้อมูลแอป
- Activity เพื่อแสดงรายการซื้อ ปิด activity เมื่อการซื้อสำเร็จ
- เวิร์กโฟลว์การเข้าสู่ระบบที่ปรับปรุงแล้ว
ยกเลิกจาก Overlay
- การบันทึก การอัปโหลด และการประมวลผลตอนนี้สามารถยกเลิกจาก Overlay ได้
- ตอบสนองต่อการเปลี่ยนแปลงระบบพิกัด multi-display ของ macOS (TopLeft → BottomLeft origin)
การย้ายการตั้งค่าจาก C#
- ความคงอยู่ของการตั้งค่า mic, mic2, lang และ theme + การย้ายจากรูปแบบการจัดเก็บของแอป C#
- การย้ายการตั้งค่าทั่วไปและฮอตคีย์จากที่เก็บข้อมูล C#
- เพิ่มระดับล็อกในการตั้งค่า
- รองรับการเปิดใช้ฮอตคีย์ปุ่มเมาส์สำหรับหน้าต่าง AI Presets
- การทดสอบความหน่วงสำหรับ balancer ที่เลือกถูกเพิ่มในการบันทึกล็อก
- การเข้าถึง `NSPasteboard` แบบรวมศูนย์ผ่าน ClipboardHelper
- Activity แผนราคา
- ซื้อรายการจากเว็บผ่านเบราว์เซอร์ในแอป
- แก้ไข
สีของไมค์ไม่แสดงอย่างถูกต้องในธีมสว่าง
- ป็อปอัพ billing เมื่อคลิกวันหมดอายุ
- แก้ไข
คีย์บอร์ดซ่อนการป้อนข้อความ
- ฟังก์ชันส่งรายงานพร้อมการบันทึกล็อก
ทางลัดในเมนู Dock
- ทางลัดทั้งหมดตอนนี้เข้าถึงได้จากไอคอน Dock ของ macOS
- แทนที่การพึ่งพาการแจ้งเตือน `NSManagedObjectContextDidSave` ด้วยโซลูชัน realtime
- รีเฟรชไมโครโฟนเมื่อระบบตื่น — แก้ไขแอปที่เพิกเฉยไมโครโฟน USB-C/TB ที่ติดอยู่กับจอภายนอก
- รักษาการตั้งค่าเมื่อสลับระหว่างเสียงเป็นข้อความและคัดลอกข้อความ
- ลดการใช้ CPU จากตัวจัดการทางลัดโดยลดการพึ่งพา DB
VHKToastView
- แนะนำ `VHKToastView` — ระบบ toast ที่มีรหัสสีและตอบสนองการแตะสำหรับข้อความแอป
ทางลัดที่จัดลำดับใหม่ได้
- ความสามารถในการจัดลำดับทางลัดใหม่พร้อมการปรับปรุง UX/UI
- รองรับทางลัดปุ่มเมาส์สำหรับ `SendReportView`
- ปรับปรุงตรรกะ flow และความเสถียรสำหรับ `KeyShortcutRecorder` และ `MouseShortcutManager`
- การแยกทางสายตาที่ดีขึ้นระหว่างทางลัด
- ลากวางสำหรับฮอตคีย์
- ตัวเลือกปิดเสียงไมค์ ตั้งระดับไมค์ให้สูงสุด
- โฟกัสอัตโนมัติที่ textbox ฮอตคีย์เมื่อค่า combo ถูกเปลี่ยน
- แสดงชื่อคีย์ «Copilot» แทน LWin+LeftShift+F23
- รวม endpoints
- บังคับการบันทึกเสียงในเครื่อง การย้ายความเป็นส่วนตัว การรีเฟรชการแปล
- นำฟังก์ชัน Paste/Dialog ไปใช้สำหรับ Action และ Translate ตรงกับพฤติกรรมของ Windows
- แก้ไข
ความเข้ากันได้ย้อนกลับกับ macOS Monterey
- จัดเรียงเมนู Actions + AI ใหม่พร้อมการตรวจสอบและแสดง eligibility
รายงานปัญหา
- เพิ่มปุ่ม «Report problem»
- เพิ่มการ log ไฟล์พร้อมตัวกรองความเป็นส่วนตัว
- ฟีเจอร์ fix-layout สำหรับโหมดคลิปบอร์ด (MVP)
- สถานะผู้ใช้ทั้งหมดย้ายไปยัง AccountService เพื่อการจัดการการเปลี่ยนแปลงใบอนุญาตที่เหมาะสม
- ย้ายการทำงานฮอตคีย์เก่าไปยังระบบการทำงานใหม่
- «Use AI without closing» — คลิกขวาบน `IntelligenceResultsView`
- ปุ่มแก้ไขถัดจาก prompt แบบกำหนดเอง (เปิด AI Presets)
การทำงาน AI ข้อความ + แปล
- นำการทำงาน AI ข้อความไปใช้
- เพิ่มภาษาแปล
- จำเป็นต้องเข้าสู่ระบบเพื่อใช้แอป
- Diarization ปิดโดยค่าเริ่มต้น
โครงการเขียน C++ ใหม่
- โครงโปรเจกต์ Windows C++ เริ่มต้น — จุดเริ่มต้นของการเขียนใหม่ที่ต่อมาแทนที่แอป .NET
- ย้ายไป Room สำหรับฐานข้อมูลท้องถิ่น
- ออกแบบมุมมองเรตติ้งใหม่เพื่อความดึงดูดที่ดีขึ้น
- แก้ไข
สถานะการถอดเสียง AI ไม่เคยแสดง
- แก้ไข
เลื่อนขึ้นยากในประวัติ
- แปลงปุ่ม «Action» เป็นเมนู dropdown
- เพิ่มฟีเจอร์เรตติ้ง (#51)
- Toast เมื่อรายการถูกคัดลอกไปยังคลิปบอร์ด (#52)
- AI แสดงในประวัติ
- อีโมจิธงถัดจากภาษา
- การปรับ UI หลายรายการตาม Material Guidelines
เสียงเป็นข้อความต่อเนื่อง
- รองรับเสียงเป็นข้อความต่อเนื่อง
- แสดงภาษาเป็น `Русский (Russian)` (endonym + ชื่อภาษาอังกฤษ)
- อัปเดตการแปลและปรับปรุงลำดับการทำงาน
- ใช้สีไดนามิก Material YOU
- แยกแยะสีข้อผิดพลาด/สำเร็จในโหมดมืดเทียบกับสว่าง
prompt กำหนดเอง + ประวัติ AI
- Prompt กำหนดเอง (บันทึก prompt AI ของคุณเอง)
- คลิกรายการประวัติเพื่อคัดลอกไปยังคลิปบอร์ด
- แสดงทั้งข้อความต้นฉบับและข้อความที่ถอดในประวัติ
การทำงาน AI
- การทำงาน AI — การใช้งานครั้งแรกและ UI
คัดลอกข้อความและถาม AI
- นำเวิร์กโฟลว์ «Copy text and ask AI» ไปใช้
ออกแบบตรรกะการเปิดใช้งานใหม่
- ออกแบบตรรกะการเปิดใช้งานใหม่ — ง่ายขึ้นและทนทานขึ้น
- แก้ไขการจัดการฮอตคีย์ — บังคับลำดับคีย์ รองรับทางลัดปกติกับ Control แม้ว่าจะตั้งฮอตคีย์ Control ไว้
- แก้ไข prompt แบบกำหนดเองโดยตรงจากกล่องโต้ตอบ AI
- ตัวติดตั้ง Windows 7 — เพิ่ม dependency net45
- การย้ายตัวเลือกที่สำคัญไปยังรูปแบบใหม่
- แสดงหน้าต่างให้เร็วที่สุดเท่าที่จะเป็นไปได้แล้วค่อยทำการเริ่มต้น
- Prejit เมื่อติดตั้ง
- แก้ไข
บั๊กเมื่อข้อความหายไปที่ prompt อนุญาตคีย์บอร์ด/เมาส์
- ล้างข้อผิดพลาดใบอนุญาตเมื่อเข้าสู่ระบบ
- เพิ่มการทำงาน AI «Improve writing»
- จัดการข้อผิดพลาด startup สำหรับไดเรกทอรี root, logs และ recording
- ตรวจสอบว่า balancer เข้าถึงได้ก่อนใช้งาน ตรรกะลองใหม่ที่ดีขึ้นสำหรับเครือข่ายที่ไม่เสถียร
- ตอนนี้แอปสามารถปรับขนาดในแนวตั้งได้เพื่อขยายส่วนทางลัด
- แสดง «D1» และคีย์ตัวเลขอื่น ๆ เป็น «1» (การแสดงฮอตคีย์ที่สะอาดขึ้น)
- จัดการไมค์ออฟไลน์ในท่อส่งการถอดเสียง
- กล่องโต้ตอบเลือก-ไมค์จัดการกรณีที่ไม่มีไมค์ออนไลน์
- แก้ไข
การรั่วไหลของหน่วยความจำสำหรับตัวเลือกการทำงาน
- สำหรับรายงานปัญหา แนบข้อผิดพลาด Windows จาก 7 วันล่าสุด
- บันทึกล็อก uptime และการใช้หน่วยความจำ
- เพิ่ม prompt AI ในตัว การแปลและการรองรับโทนใน AI Results
AI บน macOS
- นำฟีเจอร์ AI จากเวอร์ชัน Windows ไปใช้
- บังคับผู้ใช้ให้ระบุรายละเอียดของรายงาน
- ข้อผิดพลาดแครชล่าสุด 20 รายการเพิ่มในการรายงานปัญหา
พื้นฐาน AI
- prompt AI เริ่มต้นพร้อม «last used» ที่บันทึกไว้
- แฟล็กใบอนุญาต `CanAI` แทนที่ eligibility ต่อโมเดล
- กำหนดค่าภาษาแปลในแท็บ AI
- เปลี่ยนรายการภาษาเป็นลำดับตัวอักษร
- คงโอเวอร์เลย์แม้ macOS ปิดผ่านการรีเฟรชจอที่เกี่ยวกับ Handoff
- การบูรณาการ Firebase Crashlytics
- การปรับปรุงการวางหลายครั้ง
- เพิ่มช่องโทรศัพท์ใน Report Problem บันทึกในการตั้งค่า
- Fallback ไปที่ไมค์เริ่มต้นเมื่อการค้นหาหลัก/รองล้มเหลว
- เพิ่มเมนูไมโครโฟนใน UI หลัก UI แบบกะทัดรัดผ่านระยะห่างที่แน่นขึ้น
แท็บ Files ได้คุณสมบัติเท่ากัน
- แท็บส่งรายงานใน About
- ตัวเลือก no-hold เริ่มต้นสำหรับฮอตคีย์
- ข้อผิดพลาด «ไม่มีอินเทอร์เน็ต» ที่เป็นมิตรกับผู้ใช้
- แก้ไข
ส่วนเสียงสุดท้ายไม่ถูกถอดเสียงเมื่อเสร็จสิ้น
- การถอดเสียงอัตโนมัติพื้นฐาน (แบ่งเสียงยาวเป็นชิ้น)
- เพิ่มเกณฑ์ระยะเวลาความเงียบในการตั้งค่า (เริ่มต้น 500 ms)
- `MouseShortcutManager` ถูกปรับให้ใช้ `CGEventTap`
- แสดงตัววัดระดับเมื่อเลือกไมค์
- กล่องโต้ตอบแยกสำหรับการเลือกไมค์
- ตัวเลือก «default» ไมโครโฟน
- เปลี่ยนไปใช้เซิร์ฟเวอร์สาธารณะ
แท็บ Files (อัปโหลด + ถอดเสียง)
- เวิร์กโฟลว์การอัปโหลดและถอดเสียงไฟล์เริ่มต้นในแท็บ Files
- การถอดเสียงไฟล์ที่ยกเลิกได้พร้อมความคืบหน้า
- อนุญาตการถอดเสียงด้วยเสียงในขณะที่ไฟล์กำลังถอดเสียง
FleksySDK
- การบูรณาการ FleksySDK — การพิมพ์และปัดบนคีย์บอร์ดของระบบ
- Backspace ทริกเกอร์ฟังก์ชัน xmark แก้ไขวิธีแสดงคีย์ F
ระบบยืนยันตัวตนใหม่
- ระบบยืนยันตัวตนใหม่พร้อม refresh token
- รองรับตัวอักษรที่ไม่สามารถพิมพ์ได้ของ Unicode Scalar + แก้ไขการรองรับคีย์ Fn
- รองรับ `stream_progress` ลบตัวเลือก GPT ที่ล้าสมัย
Custom shortcut recorder
- ลบการพึ่งพาแพ็กเกจ KeyboardShortcuts — recorder ทางลัดใหม่สร้างจากศูนย์
- การจัดทำดัชนี timestamp ของประวัติช่วยปรับปรุงความเร็วฐานข้อมูล
- timeout 60 นาทีสำหรับการถอดเสียงไฟล์ แก้ไข timeout สำหรับไฟล์ขนาดใหญ่
- แก้ไข
timestamp เตือนไม่อัปเดตระหว่างการถอดเสียง
- คีย์ Space เป็นการยืนยัน
- Tooltip บนการทำงานที่ปิดใช้งาน
- ละเว้นคีย์ Alt ซ้าย การยืนยันด้วยคีย์ Tab
ประวัติ
- ฟังก์ชันประวัติ
- ปุ่มถอดเสียงที่ด้านบนของคีย์บอร์ด การตั้งค่าย้ายไปทางซ้าย
- ออกแบบการตั้งค่าฮอตคีย์ใหม่ให้ตรงกับเวอร์ชัน Windows
- รายการเมนูแยกสำหรับการเลือกฮอตคีย์ที่มีหรือไม่มีการกดค้าง
- ตัวแก้ไขฮอตคีย์จัดการลูกกลิ้ง escape ย่อ ปิด ctrl+enter (ใช้ตามที่เป็น)
- บันทึก/โหลดการแทนที่ prompt AI และฮอตคีย์
- หาก textbox ถูกโฟกัสในแอป วางที่นั่น มิฉะนั้นวางในพื้นที่ข้อความ Files
- Del หรือ Backspace ล้างฮอตคีย์
- การเลือก AI เป็นหน้าต่างปกติ — บันทึกขนาดเมื่อปิด อนุญาตการบันทึกในหน้าต่าง AI
- ตัวเลือกการหน่วงเวลาก่อนหยุดการบันทึก
- รีเฟรชการสมัครสมาชิกก่อนถอดเสียงหากผู้ใช้เพิ่งซื้อหรือการสมัครสมาชิกหมดอายุ
- เพิ่มตัวเลือกในการใช้การแตะสองครั้ง (หรือแตะครั้งเดียว) ของคีย์เพื่อเริ่มและหยุดการบันทึก
ผู้ช่วยการใช้งาน
- Usability Helper ตรวจจับความขัดแย้งกับ Punto Switcher และแนะนำวิธีแก้ไข
- เข้าถึงรายการ Substitutions จาก menu bar
UI แตะ / กดค้าง / คลิกซ้ำ
- โหมดการถอดเสียงกดค้างแล้วปล่อยและคลิก-คลิกซ้ำ
- การตั้งค่าระยะเวลาการบันทึกสูงสุด
- แก้ไข
คำเตือนคอมไพเลอร์
- ปฏิบัติตามคำสั่ง Quit ของ macOS จากเมนู Apple
- ตัวเลือกแสดง/ซ่อนไอคอน dock
อนิเมชัน Lottie ของไมค์
- อนิเมชัน Lottie สำหรับไมค์ลอย
- Repository เพื่อตรวจจับสถานะไมค์ปัจจุบัน
- โมเดลสถานะบริการ
- ตัวเลือกภาษาเริ่มต้น ไอคอนแอป โหมดแนวตั้งเท่านั้น
- ตรวจสอบสถานะสำหรับคีย์บอร์ดที่เปิดใช้งาน การเข้าถึงเต็มรูปแบบ การเข้าถึงไมโครโฟน
- แทรกข้อความที่ถอดเสียงในแอปที่ใช้งานอยู่
การเลือกการทำงาน
- การเลือกการทำงานที่ทำงานขั้นต่ำ (เลือกสิ่งที่จะทำกับข้อความที่ถอด)
- แก้ไข
sticky keys แถวฮอตคีย์แรก (record + transcribe) ตอนนี้ถูกตรึงไว้
- รองรับหลายคีย์ในการบันทึก
- ตั้งค่าเริ่มต้นเป็นภาษาอังกฤษหากการตรวจจับภาษาล้มเหลว
- Snackbar ที่เคลื่อนไหว
- แก้ไข
การแปลภาษารัสเซียสำหรับ «Keep Running»
- แก้ไข
การตัดทอนข้อความสำหรับ «min record duration» ในการแปลที่ยาว
- แก้ไข
Cut, Copy, Paste ตอนนี้ทำงานภายในแอป
- ละเว้นการตั้งค่าการปรับประสิทธิภาพแบตเตอรี่
- ตรวจจับสิทธิ์การแจ้งเตือนที่ปิดจาก App Info
- ตรวจจับ hint text ผ่าน `ACTION_SET_SELECTION`
commit แรก
- โครงคีย์บอร์ดแบบกำหนดเองและการตั้งค่าโปรเจกต์
- บันทึกโดยไม่ต้องกดค้างฮอตคีย์
- ตัวเลือกในการวางในหน้าต่างเริ่มต้น (source)
- ย้ายตรรกะ retrieve-cursor-position จาก InsertIt
- พจนานุกรม key/value ของ accessibility
- ฟังก์ชันส่วนขยายใหม่หลายรายการ (คลิปบอร์ด การพิมพ์ nodeInfo)
- ตอนนี้การแทนที่กรองผ่าน `NSRegularExpression` — เฉพาะคำทั้งคำ เคารพตัวพิมพ์ใหญ่
- ตัวเลือกช่วงเตือน
- การแทนที่ «replace by words»
- หน้าต่าง Upgrade Plan
- สไตล์ข้อผิดพลาดของปุ่มบันทึกให้ตรงกับสี
- Normalizer ข้อความรัสเซีย ไทย และญี่ปุ่น
- ปรับปรุงความเสถียรของไมโครโฟนสำหรับจอภายนอกและไมโครโฟนแบบถอดได้อื่น ๆ
- ความคงอยู่หลังจากถอดไมค์ออก
- ลบรายการเมนูที่ไม่จำเป็น
- หน้าต่าง Remind — กระตุ้นให้ใช้แอป
- อัปเดตรายการ fallback balancer
- จัดการไฟล์ที่ไม่ถูกต้องที่วางบนแท็บ Files
- ไดเรกทอรีการบันทึกเริ่มต้น
- Prejit เมื่อติดตั้งและ hook อัปเดต
- ตอนนี้การวางทำงานบนเลย์เอาต์คีย์บอร์ดใด ๆ
- เพิ่มตัวเลื่อนการหน่วงเวลาสำหรับการกดค้างปุ่มเมาส์ ปรับปรุงความเสถียร
- ใช้ Win32 สำหรับการตรวจจับแพลตฟอร์ม
- การแสดงผลซอฟต์แวร์บน Windows ต่ำกว่า 10
- รายการ fallback balancer เมื่อเกิดข้อผิดพลาดการรีเฟรช
แยกการตั้งค่า + หน้าต่างสิทธิ์
- ย้ายเกณฑ์ระยะเวลาไปที่แท็บ Settings ย้ายการตั้งค่าบางอย่างไปแท็บแยก
- หน้าต่างสิทธิ์พร้อมคลิก-เพื่อเปลี่ยน
- Hooks แบบขี้เกียจ
- ปุ่ม OK ที่ใช้ร่วมกัน
- ไม่เข้าถึง backend ที่ startup สำหรับการติดตั้งใหม่
การบันทึกด้วยเมาส์
- เพิ่มฟังก์ชันการบันทึกด้วยปุ่มเมาส์
- แท็บ Files ทำงาน — เลือกและวางไฟล์ checkbox diarization เส้นทางไฟล์ที่แก้ไขได้
- ตรวจสอบนามสกุล FilePath เพื่อป้องกันการส่งที่ไม่ดี
- checkbox สำหรับคัดลอก transcript
- ทำให้การวางง่ายขึ้นเพื่อใช้ Command+V เสมอผ่าน `simulateCommandV`
แท็บ Files + mouse hook
- แท็บ Files เริ่มต้น — เลือกและวางไฟล์
- การใช้งาน mouse hook พร้อมการติดตามสถานะ `isdown`
- แทนที่ `NSAlert` ด้วย `VHKAlert`
- ตัวเลือกไดเรกทอรีการบันทึก
- ตัวเลือกไมค์สำรอง
- แก้ไข
deadlock
- เพิ่มการรองรับ `SMAppService` สำหรับ macOS ≥ 13 (API Login Items ที่ทันสมัย)
- เลื่อน Control (การบันทึกปกติ) เป็น Control+I (การบันทึก AI) โดยไม่ขัดจังหวะการบันทึกที่เริ่มแล้ว
- รีเฟรชไมค์เมื่อจำนวนจอเปลี่ยน
- รีเฟรชไมค์เมื่อ Mac ตื่นจากโหมด sleep
- เพิ่มลิงก์ YouTube ซ่อนตัวเลือก GPT
- ถอดเสียงด้วย GPT
- ลิงก์เครือข่ายสังคม
- ใช้การตอบกลับ backend ที่ถูกแปล
- แปลเป็นภาษาที่จำเป็นทั้งหมด
รัสเซีย + สลับภาษา runtime
- การแปลภาษารัสเซียพร้อมการสลับภาษา runtime
- ย้ายสตริงทั้งหมดไปยังทรัพยากร
- ขอให้ผู้ใช้ซื้อก่อนช่วงประเมินสิ้นสุด
- ลดขนาดแอปเป็น 40 MB (จาก 54 MB)
- ใช้ตรรกะบัญชีดำ
ทางลัดที่ทำงาน
- ทางลัดเริ่มต้นจัดส่ง
- การใช้งานทางลัดที่ทำงาน
- การจัดการพิเศษสำหรับข้อผิดพลาดใบอนุญาต
- เปิดการตั้งค่าหรือประวัติจากไอคอน taskbar
- Device ID ที่ไม่ซ้ำต่อเครื่อง OS ถูกส่งเป็น query param แยก
- ใช้อนิเมชัน Lottie ทั่วทั้งแอป
- รีเฟรชข้อมูลผู้ใช้ทุกชั่วโมง
- แสดงชื่ออุปกรณ์เต็มเพื่อให้คุณบอก Line-In จาก Mic ได้
- บันทึกรายการ balancer ลงไฟล์ รีเฟรชก่อนบันทึก (แต่ไม่เกินหนึ่งครั้งทุก 5 นาที)
- ใช้ balancer ในลำดับที่เซิร์ฟเวอร์กำหนด
- แสดงเวอร์ชันในกล่องข้อความ
- แก้ไข
ปัญหาการปรับขนาด
- แก้ไข
การเลือกไมโครโฟนที่บันทึกไว้
- winget manifest
- ไวยากรณ์การแทนที่ขยาย — regex สไตล์ Notepad++ (นำหน้าด้วย `r'...'`)
- ใช้ fallback balancer ลดการหน่วงเวลาเริ่มบันทึกจาก 300 ms เป็น 15 ms
- แก้ไข
ปัญหา mutex
อัปเดตอัตโนมัติ
- เพิ่มฟังก์ชันอัปเดตอัตโนมัติ
- แก้ไข
ขนาดไอคอน MenuBarExtra
- การคลิกไอคอน Dock จะเปิด/ปิด Settings
- ตั้งค่า Crashlytics
- เปลี่ยนชื่อ APK อัตโนมัติตาม git
- ปรับโครงสร้าง — recorder ที่ใช้ร่วมกันใน view model
ไมค์ที่ลากได้ บันทึกตำแหน่งแล้ว
- บันทึกและโหลดขนาดและตำแหน่งของไมค์
- ย้ายตัวประมวลผล accessibility ไปใช้ use case
- ย้ายไปใช้ Hilt dependency injection ทั่วทั้งแอป
- จดจำไมโครโฟนที่ใช้ล่าสุดระหว่างการเปิดใหม่
- การยืนยันตัวตนสำหรับผู้ใช้ที่ไม่ได้ลงทะเบียน
- Ping balancers และใช้ตัวที่เร็วที่สุด
- บันทึกการบันทึกเป็น OGG แทน WAV
- การซื้อการสมัครสมาชิกมีในแอป
- รูปแบบการบันทึกเปลี่ยนจาก WAV เป็น OGG (การบีบอัดดีกว่า)
- ตรวจสอบอัตราตัวอย่าง encoder ที่เข้ากันได้ผ่าน `kAudioFormatOpusSamplingRate`
- อนิเมชันโอเวอร์เลย์ไมค์ทำงานอย่างถูกต้องบน SideCar และการตั้งค่า multi-display
- อัปเดตรายการไมโครโฟนเมื่อเปิด MenuBarExtra
commit แรก
- โปรเจกต์ Android เริ่มต้นพร้อมคำขอสิทธิ์ไมค์และการตั้งค่า Hilt
- เพิ่มปุ่ม Subscribe และ Manage
แท็บ History (เวอร์ชันแรก)
- แท็บ History — เวอร์ชันแรก
- อัปเดตไอคอนแอป
- ฮอตคีย์เริ่มต้นเปลี่ยนเป็น Right Control
- ลดขนาดแอปจาก 86 MB เป็น 51 MB
- การออกแบบ UI ใหม่ตามคำติชมของผู้ใช้ — แท็บเดียว «Main» แท็บการแทนที่ ปุ่มลบที่จัดชิดขวา บันทึกเมื่อเปลี่ยนแปลง
- อนิเมชันการแจ้งเตือน (ปิดเมื่อคลิก)
- นโยบายลองใหม่สำหรับทุกคำขอ backend
- endpoints แบบ HTTPS เท่านั้น
- ยืนยันตัวตนผ่านลิงก์ เข้าสู่ระบบผ่านรหัส
- เลือกภาษา Whisper ใดก็ได้สำหรับการถอดเสียง
- หน้าต่างการแจ้งเตือนที่เกาะอยู่ถัดจากแอปที่เปิด
- ผู้ใช้สามารถเปลี่ยนรหัสผ่าน
- อัปเดตไอคอนแอป
- รีเฟรช auth token ทุก 4 ชั่วโมง
- เพิ่ม timeout ในตัวเลือก
เวอร์ชัน Windows เริ่มต้น
- การใช้งาน Windows ขั้นต่ำพร้อมการบันทึก การเปิดใช้งานฮอตคีย์ และการวางเมื่อปล่อย
- แก้ไข
การวางไม่ทำงานในบางแอป กลืนฮอตคีย์เพื่อไม่ให้ Telegram พิมพ์ตัวอักษรต่อไป
commit แรก
- โปรเจกต์ macOS พื้นฐานพร้อมตัวเลือก menu bar
ยังไม่มีรายการสำหรับแพลตฟอร์มนี้ — กลับมาเยี่ยมชมอีกครั้งเร็ว ๆ นี้