Skip to content

Releases

1.15.3

Choose a tag to compare

@pramchanok pramchanok released this 29 Oct 09:05

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • แก้ไขขั้นตอนการติดตั้ง Auto-Update บน Windows ให้ปิดโปรเซสและไม่ลบ Cache ระหว่างอัปเดต:
    • ปรับ customUnInstall ใน NSIS (assets/installer.nsh) ให้ลบโฟลเดอร์ gitlab-req-manager-updater เฉพาะตอนถอนการติดตั้งจริง (${ifNot} ${isUpdated}) เพื่อไม่ให้ Uninstaller ตัวเก่าเผลอลบ update-info.json และไฟล์ cache สำหรับ differential update ทิ้งกลางคันระหว่างอัปเดตเวอร์ชัน
    • เพิ่ม Pre-install Shutdown Hook ก่อนเรียก autoUpdater.quitAndInstall ให้ครอบคลุมทุกช่องทาง (รวมถึงการกดติดตั้งจากเมนูคลิกขวาที่ System Tray) เพื่อตั้งสถานะ isQuitting, หยุด Background Services / Tunnel / Single-Instance Pipe และปิดหน้าต่างทั้งหมดทันทีเมื่อเริ่มติดตั้งอัปเดต

1.15.2

Choose a tag to compare

@pramchanok pramchanok released this 29 Oct 07:27

ความปลอดภัยและการแก้ไขข้อบกพร่อง (Security & Bug Fixes)

  • อัปเกรด Electron และ Dependencies ปิดช่องโหว่ความปลอดภัย: อัปเกรด electron เป็น 43.8.4 (แพตช์ช่องโหว่ Brotli CVE-2026-111497, eMudhra TLS CVE-2026-115570, CVE-2026-114121 และ CVE-2026-114124), อัปเดต dompurify เป็น 3.4.17 (CVE-2026-116802) และอัปเดตชุดไลบรารีที่เกี่ยวข้องจนไม่เหลือช่องโหว่ใน npm audit
  • ป้องกันหน้าต่าง Electron หลุดไปยังเว็บภายนอกและตรวจสอบผู้เรียก IPC: เพิ่ม hardenWebContents บล็อกการเปิด popup และการ navigate ออกจากหน้าแอปในทุก BrowserWindow, เปิด sandbox: true ทุกหน้าต่าง, ตรวจสอบ origin ของ top-level frame ก่อนอนุญาตให้เรียก IPC ทุกช่องทาง และกรองให้ openSafeExternalUrl เปิดเฉพาะลิงก์ http(s) ในทุกจุด (รวมถึง Tray และ Notification)
  • ปรับความปลอดภัยของลิงก์ Markdown, HTML Sanitization และ CSP: ดักคลิกลิงก์ทั้งหมดใน <ReactMarkdown> และบล็อก HTML ที่ผ่าน DOMPurify ให้เปิดผ่านเบราว์เซอร์ภายนอกเสมอ ตัดแท็กเสี่ยง UI-redressing (<style>, <form>, <iframe>, <base>) และเพิ่ม Content-Security-Policy (CSP) สำหรับ production build
  • ป้องกัน CSV Formula Injection และจำกัดสิทธิ์ Named Pipe: ป้องกันอักขระขึ้นต้นสูตรคำนวณ (=, +, -, @) และการแทรกบรรทัดใหม่เมื่อ Export รายงานเป็นไฟล์ CSV สำหรับ Excel พร้อมจำกัดสิทธิ์ Single-Instance Named Pipe / Unix Socket ให้เฉพาะเจ้าของบัญชีผู้ใช้บนเครื่อง

1.15.1

Choose a tag to compare

@pramchanok pramchanok released this 19 Sep 15:27

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • ปรับ Emoji Picker ในช่องคอมเมนต์: ย้ายปุ่ม Emoji เข้า Markdown toolbar จัดแนวไอคอนให้ตรงกับเครื่องมืออื่น ลดขนาด picker และวางขึ้นหรือลงอัตโนมัติตามพื้นที่หน้าจอ พร้อมแก้ให้ปิดโดยไม่เลือกแล้วเปิดใหม่ได้ และแทรก Emoji ตรงตำแหน่งเคอร์เซอร์

1.15.0

Choose a tag to compare

@pramchanok pramchanok released this 19 Sep 11:36

การปรับปรุง (Improvements)

  • กู้คืนงานรีวิวต่อเนื่อง: บันทึกร่างคอมเมนต์ ไฟล์ที่ดูแล้ว และตำแหน่งการรีวิวบนเครื่อง โดยแยกตาม GitLab บัญชี และ MR พร้อมล้างสถานะไฟล์ที่ดูแล้วเมื่อ head SHA เปลี่ยน
  • ปรับช่องเขียนคอมเมนต์: เปิด Markdown toolbar เป็นค่าเริ่มต้น เปลี่ยนปุ่ม Emoji เป็นไอคอนหน้ายิ้ม และแยกโหลด editor กับ emoji picker เพื่อลดงานโหลดในหน้าที่ไม่ใช้งาน
  • ลดงาน sync และ pipeline API ที่ซ้ำซ้อน: รวมคำขอ sync ที่เข้าระหว่างรอบไว้รอบถัดไป ล้าง pipeline cache เฉพาะ MR ที่เกี่ยวข้องกับ webhook และไม่ล้าง cache เมื่อมีคอมเมนต์ พร้อมป้องกันผลลัพธ์ที่กำลังโหลดกลับมาเติม cache ที่ถูกล้างแล้ว
  • ปรับการรีเฟรชหน้า MR: รวมคำขอรีเฟรชที่เข้าติดกัน พักการรีเฟรชตามรอบเมื่อซ่อนหน้าต่าง และอัปเดตข้อมูลอีกครั้งเมื่อกลับมาเปิด
  • เพิ่มการควบคุมการแจ้งเตือน: รองรับช่วงเวลางดแจ้งเตือน ประวัติแจ้งเตือนแยกบัญชี และการปิดแจ้งเตือนราย MR ชั่วคราว โดยหน้า Notification Inbox และ Review Queue พร้อมชุดตัวกรองยังซ่อนไว้เป็นค่าเริ่มต้น
  • เพิ่ม Sync Health: แสดงสถานะความสำเร็จของแต่ละส่วน เวลาที่พยายาม sync และ webhook ล่าสุด เพื่อแยกข้อมูลที่อัปเดตสำเร็จออกจากข้อมูลเดิม

การแก้ไขข้อบกพร่องและความปลอดภัย (Bug Fixes & Security)

  • เพิ่มความถูกต้องของ GitLab API: โหลด MR สำหรับรีวิวและ MR ที่สร้างเองครบทุกหน้า รองรับ Retry-After และรายงานความล้มเหลวของโปรเจกต์แทนการแสดงรายการ All Open ที่ไม่ครบว่า sync สำเร็จ
  • รักษาข้อมูลเมื่อ API ล้มเหลวบางส่วน: เก็บข้อมูลและเวลาสำเร็จครั้งก่อนของส่วนที่ล้มเหลว พร้อมรักษาฐานการตรวจแจ้งเตือนของกลุ่ม
  • ป้องกันข้อมูลข้ามบัญชี: ทิ้งผลลัพธ์จากบัญชีเดิมเมื่อเปลี่ยนบัญชี ปิดหน้าต่างรายละเอียดที่เกี่ยวข้อง และแยกการตรวจแจ้งเตือนซ้ำตามบัญชี
  • ป้องกันการเก็บ token แบบไม่เข้ารหัส: หาก OS secure storage ใช้งานไม่ได้ เก็บ token เฉพาะในหน่วยความจำจนปิดแอป พร้อมย้าย token รูปแบบเดิมไปยังการจัดเก็บที่เหมาะสม

การตรวจสอบและเครื่องมือพัฒนา (Validation & Tooling)

  • เพิ่ม TypeScript checks ทั้ง main และ renderer ในคำสั่ง build พร้อม regression tests สำหรับ API, sync, cache, notifications, token storage และสถานะงานรีวิว
  • เพิ่มเครื่องมือวัดประสิทธิภาพบน Electron ด้วยโปรไฟล์และข้อมูลจำลองแยก พร้อมรายงาน baseline ของเวลาเปิดแอป/หน้า MR, CPU และหน่วยความจำ โดยไม่อ้างเป็นผลวัด GitLab จริง

1.14.4

Choose a tag to compare

@pramchanok pramchanok released this 21 Aug 13:19

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • กู้คืนการทำงานของปุ่ม Team Lead Overview: เพิ่ม IPC Handler open-lead-overview-window ใน Main Process เพื่อให้สามารถกดปุ่ม "Lead ↗" ในหน้า Team Report และเปิดหน้าต่างสรุปผลรวมสำหรับ Team Lead ได้ตามปกติ

1.14.3

Choose a tag to compare

@pramchanok pramchanok released this 18 Aug 10:30

การปรับปรุง (Improvements)

  • รองรับ Collapsed Diff และ Generated Files สไตล์ GitHub: เพิ่มการตรวจจับไฟล์ที่ถูกยุบ (Collapsed Diffs) และไฟล์ประเภท Generated Code/Lockfiles (เช่น package-lock.json, yarn.lock, pnpm-lock.yaml, go.sum, composer.lock ฯลฯ) พร้อมแสดงข้อความและดีไซน์แบบ GitHub Box
  • โหลด Diff แบบ On-Demand (Load diff): เพิ่มปุ่ม "Load diff" พร้อมสถานะกำลังโหลด เพื่อดึง Patch ตัวเต็มผ่าน API GET /projects/:id/merge_requests/:iid/raw_diffs และสกัดเฉพาะ Diff ของไฟล์นั้นมาแสดงผลได้ทันที

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • แก้ไข GitLab Raw Diff Endpoint และ Fetch Text Parsing: แก้ไข path การเรียก Raw Diff endpoint ให้ถูกต้องตาม GitLab API v4 (/raw_diffs) พร้อมปรับปรุง FetchWrapper ให้รองรับการอ่าน response แบบ text/plain

1.14.2

Choose a tag to compare

@pramchanok pramchanok released this 11 Aug 06:14

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • คืนค่าไอคอน Tray App ดั้งเดิม: คืนค่าภาพไอคอน Tray App กรอบสี่เหลี่ยมสีส้ม/เทา/ฟ้า (Squircle) ดั้งเดิมของแอป พร้อมยกเลิกการปรับ Template Image บน macOS เพื่อให้แสดงผลภาพไอคอนดั้งเดิมได้สมบูรณ์ทั้งบน Windows และ macOS

1.14.1

Choose a tag to compare

@pramchanok pramchanok released this 11 Aug 04:33

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • แก้ไขภาพไอคอน Tray App บน macOS: ปรับปรุงการเลือกไฟล์ไอคอนใน Tray (tray-icon, tray-icon-active, tray-icon-update) ให้ใช้ภาพ Alpha Mask ที่ถูกต้องร่วมกับ setTemplateImage(true) แก้ปัญหาไอคอนขึ้นเป็นกล่องสี่เหลี่ยมสีดำ/ขาวทึบบน Menu Bar ของ macOS

1.14.0

Choose a tag to compare

@pramchanok pramchanok released this 10 Aug 07:24

การปรับปรุง (Improvements)

  • Redesign หน้า Lead Overview: ปรับปรุงหน้าจอสรุปภาพรวมสำหรับ Team Lead ให้มีโครงสร้างการอ่านเป็นลำดับขั้น (Visual Hierarchy) ระดับพรีเมียม พร้อมการ์ด KPI สรุปผล 5 หมวดหลัก
  • ระบบเปรียบเทียบสมาชิกทีม (Executive Member Comparison Modal): เพิ่มหน้าต่าง Modal เปรียบเทียบผลงานของสมาชิกในทีม 2-3 คนแบบข้างต่อข้าง (Side-by-Side) พร้อมกราฟแท่งเปรียบเทียบกิจกรรม อัตรา Merge Success Rate (%) และเวลาเฉลี่ย (Avg Lead Time)
  • เพิ่มช่วงเวลารายปี (Yearly Timeframe): รองรับการเลือกดูรายงานและสถิติกิจกรรมแบบรายปี (Yearly) ทั้งในหน้า Dashboard หลัก รายงานสมาชิก และหน้าต่าง Compare
  • การเลือกสมาชิกในเปรียบเทียบแบบยืดหยุ่น: ปรับให้เริ่มต้นแบบไม่ฟิกซ์ตัวเลือก และสามารถเลือก/สลับรายชื่อสมาชิกจากหน้าต่างกลางจอได้อย่างอิสระ
  • เพิ่มกราฟและตัวชี้วัดประสิทธิภาพ: แสดงสัดส่วนผลงานในทีม (Team Workload Share %), สรุปโปรเจกต์ที่มีความเคลื่อนไหวสูงสุด (Top Active Projects) และรางวัลเกียรติยศสมาชิกประจำช่วงเวลา (Team Period Highlights)
  • ปรับปรุงการตรวจจับ Merge Conflict และ GitLab API: เพิ่ม detailed_merge_status และ with_merge_status_recheck: true ใน GitLab REST API client เพื่อให้ตรวจจับ Merge Conflict และสถานะ Mergeability ได้แม่นยำยิ่งขึ้น
  • เพิ่ม API สำหรับ MR Analytics แบบเจาะลึก: เพิ่ม getGroupMRAnalyticsSince และ getMyMRAnalyticsSince รองรับการดึงข้อมูล MRs ที่ถูกสร้างหรืออัปเดตย้อนหลังเพื่อวิเคราะห์ผลงานทีมและบุคคล
  • ปรับปรุง UI ของ MR Details และ Card: ตกแต่งป้ายสถานะ MR (Merged, Closed, Opened) ด้วยไอคอน Lucide (GitMerge, XCircle, Clock) พร้อมจัดรูปแบบการแสดงผลวันที่และโปรเจกต์ให้อ่านง่ายยิ่งขึ้น
  • ปรับมาตรฐานรูปแบบวันที่ของแอป (DD/MM/YYYY): เพิ่ม dateFormat.ts (formatDate และ formatDateTime) เพื่อปรับรูปแบบการแสดงผลวันที่ให้เป็นมาตรฐานเดียวกันทั้งแอปในฟอร์แมต วัน/เดือน/ปี (เช่น 10/08/2026)
  • ปรับปรุง Window Focus Behavior: ปรับการทำงานของหน้าต่าง Electron ไม่ให้ซ่อนตัวอัตโนมัติเมื่อกดเปิดลิงก์ภายนอกไปยัง IDE หรือเบราว์เซอร์ ช่วยให้ใช้งานร่วมกับเครื่องมืออื่นได้อย่างต่อเนื่อง

การแก้ไขข้อบกพร่อง (Bug Fixes)

  • ป้องกันปัญหาหน้าจอขาว (Blank Screen Crash Prevention): ครอบด้วย React ModalErrorBoundary และเพิ่ม Defensive Null Guarding สำหรับชื่อและรูปโปรไฟล์สมาชิก ป้องกันแอพล่มเมื่อพบข้อมูลผู้ใช้ไม่สมบูรณ์
  • แก้ไข Tooltip และ Native Popup: ปรับปรุง Tooltip กราฟกิจกรรมให้จัดตำแหน่งตามดัชนีวัน (index-aware alignment) ไม่หลุดขอบ พร้อมลบ title attribute ซ้ำซ้อนของเบราว์เซอร์

1.13.0

Choose a tag to compare

@pramchanok pramchanok released this 03 Aug 09:48

การปรับปรุง (Improvements)

  • แสดงผู้รับผิดชอบ Review และผู้ Merge อย่างชัดเจน: หน้า MR แสดง avatar ของผู้ที่ถูก request ให้ review และคงข้อมูลนั้นไว้หลัง MR ถูก merge พร้อมแสดงผู้ที่ merge จริงแยกต่างหาก
  • เพิ่มรายงานประวัติส่วนตัว: ผู้ที่ไม่มีสิทธิ์ดู Team Report สามารถเปิดดูประวัติ contribution ของตนเองได้ โดยไม่เห็นรายชื่อหรือ activity ของสมาชิกคนอื่น