Skip to content

Releases: Mikedev115/Aetox-Harness

v1.10.17

Choose a tag to compare

@Mikedev115 Mikedev115 released this 25 Oct 21:30

🗂️ Aetox v1.10.17

วันที่ 26 ตุลาคม 2026

ไฟล์ที่เปิดอยู่บอกได้ว่าตัวเองอยู่โฟลเดอร์ไหน — กดท่อนโฟลเดอร์กลับไปได้ คัดลอกที่อยู่ได้ — และแผงไฟล์มีชุดปุ่มมุมมองเดียวกันทั้งฝั่งโค้ดและฝั่งผู้ช่วย

ที่อยู่ของไฟล์บนหัวหน้าต่าง

  • เดิม แถบแท็บมีที่ให้ชื่อไฟล์เท่านั้น ชื่อเดียวไม่ได้บอกว่าไฟล์อยู่ที่ไหน และชื่อเดียวกันมีอยู่เป็นสิบโฟลเดอร์
  • รุ่นนี้ แถวที่อยู่ใต้แถบแท็บของทุกแท็บไฟล์ ทั้งใน Workbench และโหมดเขียน แสดงโฟลเดอร์ของไฟล์ที่เปิดอยู่ แบ่งเป็นท่อนตามลำดับ ชื่อไฟล์ยังอยู่บนหัวตัวแก้ไขเหมือนเดิม ที่อยู่เต็มอยู่ใน tooltip จึงไม่มี path สองแถวซ้ำกัน
  • ทุกท่อนกดกลับได้ ไฟล์ที่มีรากของตัวเองไปทาง browseFolderAt ไฟล์ในโปรเจกต์ไปทาง revealTreePath เพราะเอนจินปฏิเสธ browse root ที่สองเมื่อมีโปรเจกต์เปิดอยู่ และแผงไฟล์ถูกชูขึ้นมาพร้อมเลื่อนแถวนั้นให้เห็น ไม่ใช่เปิดโฟลเดอร์ให้แล้วทิ้งคนไว้ที่อื่น
  • ปุ่มคัดลอกที่อยู่ แยกจากท่อนโฟลเดอร์ เพราะแถวที่เป็นทั้งลิงก์และปุ่มคัดลอกทำได้ไม่ดีทั้งสองอย่าง ใช้คลิปบอร์ดของเบราว์เซอร์ก่อน แล้วถ้าไม่ได้จึงใช้ ClipboardSetText ของ runtime พร้อมข้อความยืนยันสั้น ๆ
  • ปุ่มเปิดโฟลเดอร์ในเครื่อง มีเฉพาะไฟล์ใต้โปรเจกต์ เพราะ RevealProjectPath ตอบเฉพาะ path ที่ sandbox ของเอนจินแก้ได้ ไฟล์ที่เปิดจากนอกโปรเจกต์จึงแสดงที่อยู่โดยไม่มีปุ่มที่กดแล้วได้แต่ error
  • แถวนี้วาดที่เดียว ทุกชนิดไฟล์มี pane กับหัวของตัวเอง ถ้าแถวอยู่ข้างในจะต้องวาดสิบหกที่ Workbench จึงวาดในช่องไฟล์ครั้งเดียว และ pane ไม่ต้องรู้ว่ามีแถวนี้
  • การพับ path (เกินสี่ท่อนแล้วเหลือไดรฟ์กับสองท่อนท้าย) ย้ายจาก FileTree ไปอยู่ที่ lib/filePath.ts ที่เดียว breadcrumb ของแผงไฟล์กับแถวเหนือไฟล์จึงพับทางเดียวกัน และไม่มีสำเนากติกาไว้คนละชุด

มุมมองของแผงไฟล์ — ชุดปุ่มเดียวสำหรับสองที่

  • ปุ่มกรองกับเมนูมุมมองย้ายมารวมเป็น ViewActions ตัวเดียว ใช้ทั้ง Explorer ฝั่งโค้ดและแท็บ ไฟล์ ที่เปิดกลางจอ ซึ่งฝั่งผู้ช่วยเดิมไม่มีเมนูมุมมองเลย ห้ามุมมองหนึ่งหายไปจากที่ที่คนมองอยู่
  • มุมมองที่เลือกได้: รายการ · ตาราง · ไอคอน · เนื้อหา โดยเนื้อหาคือแถวละไฟล์พร้อมบรรทัดข้อมูลของตัวเอง (ขนาดและเวลา หรือคำว่าโฟลเดอร์) และรูปย่อถ้ามี — อ่านไล่ลงได้ ไม่ใช่กระเบื้องที่ต้องกวาดตา
  • ไทล์ถูกสร้างแล้วถอดออกในคืนเดียวกันตามที่สั่ง ค่าที่ค้างใน localStorage จากบิลด์ที่รู้จักไทล์จึงถูกอ่านผ่าน fileViewOf() แล้วตกกลับเป็นรายการ แผงไฟล์ไม่ค้างอยู่โดยไม่มีมุมมอง
  • ปุ่มคู่วางข้าง breadcrumb ไม่ใช่ข้างใน เพราะ nav ตัดของที่ล้น (path ยาว) และเมนูที่อยู่ในกล่องที่ถูกตัดคือปุ่มที่ดูเหมือนกดไม่ได้
  • ตารางไอคอนเปลี่ยนจากสามคอลัมน์ตายตัวเป็น auto-fill ที่ 104px แผงแคบได้สามคอลัมน์เหมือนเดิม แต่แท็บกว้างไม่ยืดเป็นสามกล่องยักษ์ และกระเบื้องที่อยู่นอกจอข้ามการวาด (content-visibility) — โฟลเดอร์สี่พันแถวไม่ต้องวาดทั้งหมดก่อนเลื่อน

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • ไฟล์นอกโปรเจกต์ที่เปิดค้างไว้และโปรเจกต์ถูกปิดทีหลัง ท่อนโฟลเดอร์แบบ relative จะถูกวาดเป็นข้อความ ไม่ใช่ปุ่มที่กดแล้วไม่มีอะไรเกิดขึ้น
  • Explorer.svelte สั้นลงเพราะปุ่มคู่กับเมนูย้ายออกไปอยู่ที่ ViewActions แล้ว
  • tests ที่เพิ่มในรุ่นนี้: filePath.test.ts (การพับ path และการแยก absolute กับ relative), filePathLine.test.ts (แถวที่อยู่และเป้าหมายของแต่ละท่อน), explorerContent.test.ts (มุมมองเนื้อหาและค่าที่ค้างจากบิลด์อื่น) และ deskDrop.test.ts ที่ยืนยันว่า pane วาดไฟล์ที่เปิดจริง

v1.10.16

Choose a tag to compare

@Mikedev115 Mikedev115 released this 25 Oct 19:13

🏢 Aetox v1.10.16

วันที่ 26 ตุลาคม 2026

ห้องบริษัทเชื่อสิ่งที่คนสั่งทันที — ปิดทีมแล้วห้องโล่ง เปิดลูกมือแล้วเข้ายืนประจำที่ของตัวเอง และไม่มีใครไปยืนห้องคนอื่น

สวิตช์ในห้องบริษัท ต้องตรงกับภาพที่เห็น

  • เดิม การปิดทีมทำโดยสร้าง roster ใหม่ทั้งชุดแล้ว build ห้องใหม่ สวิตช์ที่กดระหว่างเปิดห้องจึงขึ้นกับจังหวะ rebuild — กดปิดแล้วทีมยังแสดง กดเปิดแล้วไม่แสดง เพราะห้องใช้ roster เก่าที่อ่านค่า mute ตอนสร้างครั้งเดียว
  • รุ่นนี้ planner ยกคนของทีมที่ปิดออกจากห้องและใส่กลับที่นั่งเดิมเมื่อเปิดคืน ส่วนห้องสร้างใหม่ทันทีที่ mute หรือ standing เปลี่ยน redress() สร้าง roster ใหม่จาก rows ที่อ่านมาแล้ว (lastCards/lastProfiles/lastDepts) ไม่ต้องถามเอนจินซ้ำรอบใหม่
  • ห้องของทีมที่ปิดสนิท เหลือตัวหลักกับลูกมือ ไม่มีสมาชิกและไม่มีหัวหน้า แต่เฟอร์นิเจอร์ โต๊ะรับ และลูกมือยังอยู่ เพราะลูกมือมาจาก fact ของตัวเอง ไม่ใช่ของทีม
  • ลูกมือยืนประจำที่ planner.standHands วางลูกมือที่เปิดไว้ที่หน้าทีมของห้อง (หนึ่งคนหนึ่งรูป) และตอนรับงานจริงจะเอารูปประจำออกก่อน เพื่อไม่ให้ใครถูกวาดซ้ำ
  • ไม่มีทีมก็มีห้องของตัวเอง เอเจนที่ไม่ได้ขึ้นกับทีมไหนได้ห้องเดี่ยว (โต๊ะเดียว สถานีงาน ที่เก็บไฟล์ กล่อง Output) แทนการไปยืมห้องทีมแรกในบริษัท ส่วนซับเอเจนยืนในห้องของคนที่จ้างมัน
  • path ซ้ายบน ไม่ขึ้นชื่อทีมซ้ำสองครั้งอีก เมื่อทีมที่ไม่มีแผนกถูกวาดเป็นปีกชื่อเดียวกับทีม

องค์กรอ่านครั้งเดียว ชิปกับห้องจึงตอบตรงกัน

  • snapshot ขององค์กรย้ายมาอยู่ที่ lib/stores/org.svelte.ts ที่เดียว (แคช 15 วินาที บังคับอ่านใหม่ได้ เขียน reach รายหัวหน้าได้) ชิปผู้ช่วยกับห้องอ่านจากที่นี่ทั้งคู่
  • หน้าตั้งค่าทีมและการบันทึกโปรไฟล์เอเจนเรียก invalidateOrg() ทุกครั้ง และห้องที่เปิดค้างอ่าน org ใหม่เมื่อ revision เปลี่ยน — เพิ่มทีมหรือเอเจนกะทันหันแล้วห้องกับชิปเห็นทันที ไม่ต้องรีเฟรช
  • ระดับที่ประตูทีมยืนอยู่เปลี่ยนจากบริษัทเป็นทีม ห้องจึงเปิดที่ห้องของทีมเป็นค่าเริ่มต้น ค่าที่คนเลือกเองยังไม่ถูกทับ

คลังวัตถุดิบของสตูดิโอ เลือกเพลงได้ด้วยหู

  • เพลงแสดงเป็นตารางพร้อมข้อมูลการใช้งานและรูปคลื่น แถบเล่นรองรับหยุด เล่นซ้ำ และเลื่อนตำแหน่ง โดยเล่นได้ทีละเพลง
  • รูปคลื่นอ่านเบื้องหลังแบบจำกัดงาน ถอดเสียงด้วย ffmpeg ที่ 8 kHz โมโน เก็บเป็นแคชต่อ asset id พร้อมขนาดและ mtime — ไฟล์ที่ถูกแทนที่จึงอ่านใหม่ ไฟล์ที่ย้ายที่ไม่ต้องถอดซ้ำ และถ้าไม่มี ffmpeg หรือไฟล์ไม่มีเสียงจะคืน error ไม่ใช่แท่งศูนย์ที่ดูเหมือนเพลงเงียบ
  • Usage ใน Store นับจำนวนครั้งที่แอสเซ็ตถูกหยิบไปใช้และเวลาล่าสุด ซึ่งการสแกนโฟลเดอร์บอกไม่ได้
  • โฟลเดอร์รับไฟล์: วางไฟล์ที่ดาวน์โหลดมาลงกล่องรับแล้วสื่อเข้าคลังเอง มีปุ่มเปิดโฟลเดอร์นั้นจากการ์ด
  • คำขอวัตถุดิบ: เครื่องมือค้นหาคลังมีแอ็กชัน request ให้เอเจนขอสิ่งที่ยังขาดได้ พร้อมระบุประเภทและที่มา คำขอที่บันทึกซ้ำจะไม่ซ้อน ปิดได้เองหรือเมื่อสแกนพบสื่อประเภทที่ต้องการ

งานที่มอบขึ้นที่ผังในข้อความเดียว

  • ผังใต้ข้อความเป็นที่เดียวที่วาดงานที่มอบออกไป ถาดใต้แชทไม่วาดซ้ำ และแถวอ่านสถานะจาก register ก่อน ลูกมือที่ทำงานต่อหลังเทิร์นจบจึงยังบอกได้ว่ากำลังทำอะไร
  • ที่ยังอยู่ใต้แชทคือของที่ผังแทนไม่ได้: เฟสของ run ที่ประกาศไว้ และคำถามที่แถวของมันถูกพับไว้

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • Roblox Studio มีการ์ดของตัวเองในห้องสมุด: preset ระบุเดสก์ของตัวเองได้แล้ว (เดิมวางเซิร์ฟเวอร์ลงเดสก์ผู้ช่วยเสมอ เครื่องมือจึงไม่เคยถึงเดสก์ที่ทำงานจริง) พร้อม allowlist 12 tools ที่วัดจากเซิร์ฟเวอร์จริง และสกิล aetox-mcp-roblox
  • สกิลงานตัดคลิป พาตั้งแต่ cut_open/assemble ถึงเรนเดอร์ พร้อมเกณฑ์ตรวจซับ เสียง และเฟรม — โต๊ะผู้ช่วยเปิดห้องตัดได้อยู่แล้วแต่ไม่มีความรู้ว่าจะตัดยังไงให้จบ
  • ตั้งค่า Ollama: เซิร์ฟเวอร์ที่ไม่ usable (พอร์ตถูกจับแต่ไม่ตอบ Ollama) ยังเห็นแถว Base URL และแก้ที่อยู่ได้ เดิมแถวหายไปทั้งแถว ซึ่งเป็นกรณีที่ต้องแก้พอดี
  • Usage บอกได้ว่าเอนจินรายงานแคชจริงหรือไม่ได้บอก — CachedInputTokens ที่เป็นศูนย์แยกไม่ออกระหว่างแคชพลาดจริงกับเอนจินที่ไม่รายงาน ฟิลด์ CacheReported จึงพามาด้วย และสถานะนี้ถูกส่งต่อจากเอนจินที่เรียกผ่าน adapter ไปถึงยอด usage ด้วย
  • สกิล Unsplash ระบุเครื่องมือครบทั้ง 8 ตัว ตรงกับ toolCount ที่ประกาศไว้
  • tests ที่เพิ่มในรุ่นนี้: localServerEndpoint.test.ts (แถว Base URL ต้องอยู่เมื่อ ollama ค้าง) เทสต์การปิดทีมแล้วไม่มีแถวหรือการ์ดของทีม เทสต์ session spend ที่เก็บยอดและสถานะแคชจากเอนจิน และเทสต์การยุบแท่งรูปคลื่น

v1.10.15

Choose a tag to compare

@Mikedev115 Mikedev115 released this 24 Oct 13:09

🎬 Aetox v1.10.15

วันที่ 24 ตุลาคม 2026

วิดีโอในเครื่องกลับมาอยู่บนโต๊ะผู้ช่วย — ตัวฟรีที่เรนเดอร์เองอยู่ข้างตัวที่เสียเครดิตอีกครั้ง

สั่งทำคลิปในแชทผู้ช่วย แล้วไม่มีเครื่องมือให้ใช้

  • เดิม การทำวิดีโอเคยแยกเป็นสองทาง: video เขียนฉากเป็น HTML แล้วเรนเดอร์เองในเครื่อง ฟรี และ video_make ให้ผู้ให้บริการวิดีโอสร้างคลิปที่ดูเหมือนถ่ายจริง เสียเครดิต แต่ tool ฟรีตัวนั้นอยู่กับเอเจนวิดีโอและผู้กำกับเท่านั้น เพราะมันอยู่ในหมวด "ส่งงานเป็นไฟล์" ซึ่งไม่มีโต๊ะไหนประกาศหมวดนี้ โต๊ะผู้ช่วยจึงได้มาเฉพาะ video_make ที่เขียนชื่อไว้ตรง ๆ
  • ผลคือพอสั่งทำคลิปในแชทผู้ช่วย โมเดลไม่มีเครื่องมือที่ทำได้ จึงออกไปหา Hyperframes ตามดิสก์เองหรือตอบว่าทำไม่ได้ ทั้งที่ตัวเรนเดอร์ติดตั้งอยู่ในเครื่องแล้ว และการสลับเส้นทางวิดีโอเป็น API หรือ MCP ก็ไม่ได้ทำให้ตัวฟรีกลับมา (มันกรองแค่ action ของ video_make)
  • รุ่นนี้ โต๊ะผู้ช่วยถือ video อยู่ข้าง video_make แล้ว สั่งทำคลิปกราฟิกในแชทผู้ช่วยจึงหยิบฉากจากคลังหรือ blank มาเรนเดอร์ในเครื่องได้เลย ไม่ต้องผ่านเอเจนวิดีโอ และไม่ต้องเสียเครดิต
  • video_make ยังเป็นทางของฟุตเทจที่ต้องถ่ายจริงตามเดิม — คำอธิบายของทั้งสอง tool บอกเส้นแบ่งไว้เองว่าเมื่อไรควรใช้ตัวไหน

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • คอมเมนต์ใน internal/engine/app.go ที่เขียนว่า "ไม่มีโต๊ะไหนถือ tool นี้" แก้ให้ตรงกับความจริง เพราะตอนนี้โต๊ะผู้ช่วยเขียนชื่อมันไว้แล้ว
  • tests ที่เพิ่มในรุ่นนี้: TestDesksCarryWhatTheyClaim มีเคสปักว่าโต๊ะผู้ช่วยต้องถือทั้ง video และ video_make (เคสเดียวกับที่เคยพลาดเรื่อง image_make เมื่อ 13 ก.ย.)

v1.10.14

Choose a tag to compare

@Mikedev115 Mikedev115 released this 24 Oct 12:11

🧩 Aetox v1.10.14

วันที่ 24 ตุลาคม 2026

บริษัทของคุณมีชีพจรในหน้าจอ โฟลเดอร์ที่เดินอ่านเป็น Explorer จริง และวาดภาพในเครื่องได้เองด้วย ComfyUI หรือ Forge

บริษัทของฉันมีชีพจร และห้องบริษัทกลับมาเป็นแท็บในหน้าต่าง

  • เดิม เวลามอบหมายงานให้เอเจน หน้า "บริษัทของฉัน" ไม่ขยับเลย การ์ดบริษัทบอกจำนวนแผนก/ทีม/เอเจนครั้งเดียวตอนเปิด งานที่กำลังทำไม่ขึ้นที่ไหน และห้องบริษัทอยู่บนพอร์ตอย่างเดียว เปิดดูหลังงานจบจึงเจอเวทีว่าง เพราะ fact ทุกตัวถูกส่งแล้วหายไป ไม่มีที่เก็บ
  • รุ่นนี้ การ์ดบริษัทมีสามตัวเลขที่ขยับตามงานจริง: กำลังทำงาน · รอคำตอบ · วันนี้เสร็จ ส่วน "กำลังทำงานตอนนี้" เป็นแถวละงานจากทุกแชท (ใคร งานอะไร แชทไหน เวลา) กดแล้วเปิดแชทนั้นได้เลย ถามทุก 3 วินาที หยุดเมื่อแท็บถูกซ่อน สองคำขอต่อรอบ ไม่มีคำขอต่อแถว และยังโชว์กระดานเดิมเมื่อเอนจินรีสตาร์ท ไม่ล้างจอ
  • ห้องบริษัทเปิดเป็นการ์ดในแผงขวาของหน้าต่างได้ ไม่ต้องเปิดเบราว์เซอร์หรือพอร์ต และโหลดโมดูลห้องแบบ lazy (three.js ไม่เข้า startup chunk) ปิดแท็บแล้วคืนหน่วยความจำตามเดิม ส่วนหน้าเว็บบนพอร์ตยังใช้ได้สำหรับจอที่สอง และรับความจำชุดเดียวกับในแอป
  • เอนจินจำงานได้แล้ว: fact ทุกตัวที่ห้องพูดถูกเก็บใน office_facts (ตาราง migration 72) และงานที่จบ — ทั้งเทิร์นของเอเจนและงานที่มอบหมาย — ถูกเก็บใน office_work เปิดห้องจึงเห็นสภาพจริง ไม่ใช่การเล่นซ้ำสถานะเก่า ข้อมูลตัดที่ 7 วัน เพดานสองหมื่นแถว และการเขียนเป็นแบบ best effort ไม่เปิดสโตร์เอง
  • วันแรกที่ยังไม่มีความจำ "วันนี้เสร็จ" นับจากบันทึกงานเดิม (jobs) แทนที่จะขึ้น 0 ทั้งที่ทำงานมาทั้งวัน และไม่บวกซ้ำเมื่อความจำมีเลขของตัวเองแล้ว

ไฟล์ที่เดินอ่าน: สามมุมมอง กรอง ปักหมุด และรูปย่อในแถว

  • เดิม แถบไฟล์ด้านข้างมีอย่างเดียวคือต้นไม้รายการ ไม่มีขนาด ไม่มีวันที่ ไม่มีรูปย่อ และหาของในโฟลเดอร์ใหญ่ ๆ ต้องไล่ตาดู
  • รุ่นนี้ ตอนเดินอ่านโฟลเดอร์ สลับ รายการ / รายละเอียด / ไอคอน ได้ มุมมองรายละเอียดมีขนาดและวันที่แก้ไขล่าสุด ซึ่งอ่านจาก directory entry ที่โหลดมาแล้ว ไม่มีการ stat เพิ่มทีละแถว
  • Ctrl+F เปิดช่องกรองชื่อ และแถวที่เป็นไฟล์ภาพมีรูปย่อจริง ด้านยาวไม่เกิน 320px หมุนภาพตาม EXIF ให้ถูก ฟอร์แมตที่รองรับ: png jpg gif webp bmp (svg ส่งไฟล์เดิมเพราะเวกเตอร์ไม่มีอะไรให้ย่อ) แก้ไฟล์ภาพแล้วเห็นภาพใหม่ทันที และไฟล์ที่วาดไม่ได้กลับไปใช้ไอคอน ไม่ใช่ภาพพัง
  • ปักหมุดโฟลเดอร์ได้ ขึ้นบนสุดของ "ที่ใช้บ่อย"

ไม่ได้ทำ: ต้นไม้ของโปรเจกต์ยังเป็นรายการเดียว เพราะคอลัมน์ขนาด/วันที่ที่นั่นคือการ stat ต่อแถวของ 150,000 แถวที่ไม่มีใครได้ใช้

สร้างภาพในเครื่อง: ComfyUI เป็นตัวหลัก พร้อม Forge / A1111

  • เดิม ภาพทุกภาพต้องออกจากเครื่อง ผ่านเจ้าวาดบนคลาวด์แบบที่ตั้งค่าไว้ จะวาดเองในเครื่องก็ต้องสลับไปใช้เว็บของ Forge หรือ ComfyUI เอง แล้วลากไฟล์กลับเข้ามา
  • รุ่นนี้ หน้าผู้ให้บริการ › สร้างภาพ มีสองแถวในเครื่อง ComfyUI (ค่าเริ่มต้น http://127.0.0.1:8188) และ Stable Diffusion WebUI สำหรับ Forge / Forge Neo / A1111 (http://127.0.0.1:7860) ทั้งคู่จัดอยู่เหนือเจ้าบนคลาวด์
  • ComfyUI ส่ง workflow แบบ API ไปที่ /prompt ถาม /history จนเสร็จ แล้วโหลดรูปจาก /view ใช้ workflow "FLUX.2 Klein 4B Distilled" ที่ติดมากับแอป หรือเลือกไฟล์ workflow ของตัวเอง (Export (API)) ได้ — prompt ลง node ที่ต่อเข้า positive ขนาดลง node ที่มี width+height seed ลง seed, โมเดลที่เลือกลง loader ไฟล์ที่ไม่มีที่ใส่ prompt ถูกปฏิเสธตอนเลือกพร้อมเหตุผลภาษาไทย รายชื่อโมเดลถามจาก /object_info ของ loader ใน workflow
  • Forge / A1111 ใช้ /sdapi/v1 ซึ่งมีเหมือนกันเมื่อเปิดด้วย --api โมเดลที่ pin ส่งเป็น override_settings ของคำขอนั้นแล้วคืนค่าเดิม ถ้า server ปิดอยู่ บอกให้เปิดด้วย --api และตัวสำรองวาดแทนได้
  • 400 จาก /prompt บอก node ที่ผิด run ที่ล้มบอก exception และกดหยุดแล้วถอนงานออกจากคิวหรือ interrupt ให้
  • วัดบน RTX 5050 8 GB กับ FLUX.2 klein 4B fp8: ครั้งแรก 69 วินาที (รวมโหลดโมเดล) ครั้งต่อไป 1.9 วินาที
  • คู่มือติดตั้งทั้ง ComfyUI และ Forge Neo อยู่ในซอร์สที่ docs/LOCAL-IMAGES.md (ไทย + อังกฤษ)

ยังไม่ได้ทดสอบกับ ComfyUI ตัวจริงบนเครื่องนี้ ส่วนเทสต์ของทั้งสองเจ้ารันกับ server จำลอง

สร้างภาพ: Pollinations ฟรีเข้าคิวทีละภาพ และการ์ดภาพไม่โกหก

  • Pollinations แบบไม่มีคีย์วาดได้ 1 ภาพต่อ 45 วินาที รุ่นนี้ทุกการเรียกเข้าคิวเดียวกัน เจอ 402/429 ที่บอก Retry after จะรอแล้วลองใหม่หนึ่งครั้ง ถ้ายังไม่ผ่านบอกเป็นประโยคไทย ไม่ใช่รหัส
  • image_make ที่ได้ for เป็นคำบรรยาย ไม่มีนามสกุลไฟล์ ไม่ถูกตีความเป็นชื่อไฟล์อีก ภาพลงที่ path ที่ขอ และภาพที่ลงใน imgs/ ของโปรเจกต์เก่าแสดงในแชทได้แล้ว
  • การ์ดภาพที่ถูกลบไปแล้วไม่ขึ้นว่ายังอยู่ และเลือกเจ้าวาดกับตัวสำรองได้ระหว่างที่แชทกำลังทำงาน (เดิม dropdown ดีดกลับไปค่าเก่า)

ลิงก์ในแผน รายงาน และคู่มือ ไม่พาทั้งหน้าต่างไป 404

  • เดิม มีแต่แชทกับหน้าจอไฟล์ที่ดักลิงก์ Markdown หน้าอื่น (แผน รายงาน artifacts คู่มือ หน้าบริษัท) ปล่อยให้ webview เปิดเอง ซึ่งแก้ path สัมพัทธ์กับ wails.localhost ลิงก์อย่าง dist/....zip จึงกลายเป็นหน้า 404 ทับทั้งหน้าต่าง
  • รุ่นนี้ ตัวดักลิงก์ทำงานครั้งเดียวทั้งเอกสาร และดักเฉพาะลิงก์ในเนื้อหา Markdown คลิกกลางใช้ทางเดียวกัน ไม่เปิดหน้าต่างใหม่ของ WebView2 คลิกขวาไม่ถูกแตะ
  • ไฟล์ที่เอเจนสร้างด้วยคำสั่ง shell ไม่มีใบเสร็จการเขียนไฟล์ แชทจึงลิงก์ให้ไม่ได้ การ์ดไฟล์นั้น คัดลอก ไฟล์ลง Downloads ของเครื่องนี้ (ไม่ย้าย) แล้วให้เปิด / เปิดโฟลเดอร์ / เซฟซ้ำ ถ้าเอนจินอยู่บนเครื่องอื่น การ์ดนี้ไม่ขึ้น เพราะไฟล์ไม่ได้อยู่บนดิสก์นี้

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • รูปที่เปิดบนโต๊ะลากไม่ได้แล้ว เดิมลากแล้วแอปไม่ตอบเมาส์เลย เพราะ Chromium ทำให้ <img> เป็นต้นทางลากเองและไม่วาด pointer ระหว่างลาก
  • ย่อบริบทและไดอารี่ไม่ล้มทั้งวันอีก ตั้งแต่ 9router เปลี่ยนรูปคำตอบเมื่อ 22 ต.ค. การเรียกแบบไม่สตรีมได้เนื้อหาเป็นสตรีมกลับมา Aetox อ่านไม่ออกและรายงานว่า parse ล้ม รุ่นนี้อ่านเฟรมเหล่านั้นแล้วประกอบเป็นคำตอบเดียว ถ้าเนื้อหาอ่านไม่ได้จริง ๆ ข้อผิดพลาดบอกหัวข้อความที่ได้รับมาด้วย
  • tests ที่เพิ่มในรุ่นนี้: TestCompleteReadsAnAnswerThatArrivedAsFrames, TestCompleteNamesTheHeadOfAnAnswerItCannotRead, TestOfficeMemoryKeepsTheLastWordAndTodaysWork, TestOfficeMemoryCountsTheDayFromTheJobLogUntilItHasItsOwn, TestOfficeMemoryWritesNothingWithoutAnOpenStore, TestThumbnailShrinksALargePicture, TestThumbnailKeepsASmallPictureSmall, TestThumbnailDrawsBMPAndWebPGraphics, TestThumbnailServesSVGUnchanged, TestThumbnailRefusesWhatItCannotDraw, TestThumbnailRefusesAHugeSVG, TestJPEGOrientationParser, TestOrientImageTurnsThePicture, TestBrowsingTreeCarriesSizeAndModified, TestProjectTreeDoesNotPayForBrowsingColumns, TestProjectFileFactsReadsSizeAndTime, TestComfyUI* (10), TestSDWebUI* (6), TestSave* (4), TestFreeLimit* (2), TestFileHostFindsAPictureImageMakePutInImgs, TestImageMakeTreatsACaptionInForAsNoFile, TestImagePicksShowWhileTheTurnRuns และชุด vitest ของห้องบริษัท มุมมอง Explorer ลิงก์ Markdown และไฟล์ที่เซฟออก Downloads

v1.10.13

Choose a tag to compare

@Mikedev115 Mikedev115 released this 21 Oct 18:29

🧩 Aetox v1.10.13

วันที่ 22 ตุลาคม 2026

ผู้ช่วยทำคลิปวิดีโอได้เองในแชท ภาพมีเจ้าสำรอง และงานที่รอบนโต๊ะทำงานกดทำได้จากแถวนั้นเลย

ผู้ช่วยสร้างวิดีโอเองได้ และเห็นคลิปที่กำลังทำในแชท

  • เดิม video_make อยู่แค่กับลูกมือสายวิดีโอ พอขอคลิปจากผู้ช่วยตัวหลัก ผู้ช่วยตอบว่า "ไม่มีเครื่องมือ" แล้วทำการ์ดข้อความมาให้แทนคลิป ถ้ายังไม่ได้ใส่คีย์ของเจ้าวิดีโอ จะเห็นแค่ 401 ซึ่งอ่านแล้วเหมือนคีย์เสีย
  • รุ่นนี้ โต๊ะผู้ช่วยถือ video_make เอง ถ้าคีย์ยังไม่ได้ใส่ งานจะหยุดก่อนส่งออก แล้วบอกชื่อเจ้า คีย์ที่ขาด หน้าที่ต้องไปใส่ และบอกว่ายังไม่เสียเงิน ผู้ช่วยถูกห้ามเอาสไลด์มาส่งแทนคลิป
  • ระหว่างทำคลิป แชทมีแถวเล็กสูงราว 70px มีภาพย่อ นาฬิกา แถบความคืบหน้า และปุ่ม ยกเลิก พอเสร็จแถวกลายเป็นภาพแรกของคลิป กดแล้วเล่นในแชท และไม่ถูกพับหายตอนผู้ช่วยตอบจบ
  • ยกเลิกได้แม้งานถูกพักไว้หลัง "ยังทำอยู่" (STILL RUNNING) และหลังกดหยุด การเข้าไปดูงานด้วยค่าเดิมจะตอบว่า "หยุดแล้ว" ไม่เริ่มคลิปที่เสียเงินขึ้นมาใหม่
  • กรอบภาพของ image_make ที่ทำไม่สำเร็จ เลิกค้างที่ "กำลังวาด" แล้วบอกเหตุผลจากเครื่องมือ

สร้างภาพ: ตั้งเจ้าสำรองได้หนึ่งเจ้า

  • เดิม ถ้าเจ้าสร้างภาพหลักเครดิตหมด คีย์หาย หรือล่ม ภาพนั้นก็ไม่ได้
  • รุ่นนี้ ตั้งค่า › สร้างภาพ มีแถว "ตัวสำรอง" image_make ลองตัวสำรองหนึ่งครั้ง เมื่อเจ้าหลักยังไม่พร้อม หรือตอบ 401/402/403/404/429/5xx หรือต่อเน็ตไม่ได้ และบอกในผลว่าภาพนี้ตัวสำรองทำ เพราะอะไร

ไม่ได้ทำ: ไม่สลับไปตัวสำรองเมื่อเจ้าหลักตอบ 400 หรือปฏิเสธเพราะนโยบายเนื้อหา เพราะเป็นปัญหาของคำขอ ไม่ใช่ของเจ้า

ประชุมที่ยังไม่แปลงเสียง: ติ๊กแล้วกดปุ่มเดียว

  • เดิม โต๊ะผู้ช่วยกับบอร์ดจัดการงานโชว์ประชุมอันแรกอันเดียว กับคำว่า "อีก N อัน" ส่วนหน้าประชุมมีการ์ดขั้นตอนสองใบพร้อมตัวเลือกสี่ช่อง ผู้ใช้บอกว่าดูยาก และทางกลับด้านบน (trail) เป็นแค่ข้อความ กดกลับไม่ได้
  • รุ่นนี้ ประชุมที่รอเป็นแถวที่ติ๊กได้ กดปุ่มเดียวแปลงเสียงทุกอันที่ติ๊กไว้ ลูกศรท้ายแถวเปิดประชุมนั้น แปลงทีละอัน ไม่ให้ whisper หลายตัวรันพร้อมกันจนเครื่องช้า ถ้าอันไหนล้ม คิวที่เหลือจะหยุด เพราะสาเหตุเดียวกันจะทำให้อันอื่นล้มด้วย
  • หน้าประชุมเหลือแถบเดียวที่บอกขั้นต่อไปพร้อมปุ่ม (แปลงเสียง แล้วค่อยสรุป) ตัวเลือกตัวถอดเสียงพับอยู่ใต้ "เปลี่ยน" และ trail กดกลับไปบอร์ดจัดการงาน หรือหน้าโปรเจกต์ได้

ไม่ได้ทำ: ไม่กดขั้นต่อไปให้เอง ทุกขั้นที่อาจเสียเงินยังรอคุณกด

โต๊ะทำงาน: แถวที่รอมีปุ่มทำเลย

  • เดิม แถวที่รอบอกสถานะเป็นคำ ต้องกดเข้าไปอีกชั้นถึงจะทำได้ ห้องต่าง ๆ แบ่งเป็นสองกอง (ทำงาน / เปิดดู + ทีม)
  • รุ่นนี้ แต่ละแถวที่รอมีปุ่มที่ทำงานนั้นเลย ประชุมเป็นแถวติ๊กแบบเดียวกับข้างบน ปฏิทินที่ยังไม่เชื่อมมีปุ่ม "เชื่อมปฏิทิน" ห้องรวมเป็นตารางเดียว เป็นช่องสูงสีละห้อง จัดไม่ให้แถวสุดท้ายเหลือช่องว่าง โหมดโค้ดก็ใช้ช่องแบบเดียวกัน

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • "เลขา" ที่ยังโผล่หลังรวมกับผู้ช่วยแล้ว หายจากแผนที่สมอง ผังองค์กร ออฟฟิศ และคำในหน้า งานเบื้องหลังและงานตั้งเวลาลงบันทึกเป็นของผู้ช่วย บันทึกเก่าที่ขึ้นหัว Secretary อ่านกลับเป็นของผู้ช่วย
  • หน้าความสามารถ: ปุ่มกรองชุดคำสั่งเคยขึ้นคำว่า "ผู้ช่วย" ซ้ำสองปุ่ม ปุ่มที่สองเป็น "ผู้ช่วยเบื้องหลัง" แล้ว
  • ถอดหน้าประตูทีมกับเลขาที่ไม่มีหน้าจอไหนเข้าถึงแล้วออก
  • tests ที่เพิ่มในรุ่นนี้: TestVideoCallWithoutKeyNamesTheMissingKey, TestStopReachesAParkedCallAndDoesNotStartItAgain, TestImageMakeFallsBackWhenTheMainVendorIsOutOfCredit, TestImageMakeFallsBackWhenTheMainVendorHasNoKey, TestImageMakeKeepsARefusalOnTheMainVendor, TestImageMakeWithoutBackupReturnsTheMainError, TestOldSecretaryHeadingIsTheAssistants และ tests ของแถวคลิปในแชท แถวประชุมที่ติ๊กได้ และโต๊ะทำงาน

v1.10.12

Choose a tag to compare

@Mikedev115 Mikedev115 released this 21 Oct 13:40

🧩 Aetox v1.10.12

วันที่ 21 ตุลาคม 2026

Aetox จำเรื่องของคุณเป็นสายรายเรื่อง และเรียนโฟลเดอร์ความรู้ที่เชื่อมไว้ครั้งเดียว ไม่ต้องค้นทุกแชท

เรื่องของคุณแตกเป็นสาย โหลดเฉพาะเรื่องที่คุยอยู่

  • เดิม ทุกอย่างที่ Aetox รู้เกี่ยวกับคุณอยู่ใน USER.md ไฟล์เดียวขนาด 4 KB ซึ่งส่งไปกับทุกคำขอ บนเครื่องที่ใช้งานมานาน ไฟล์นี้เต็ม (3,700 bytes) จนบันทึกประจำวันเริ่มทิ้งเรื่องใหม่ และเรื่องที่ต้องการมากกว่าหนึ่งประโยค เช่น เพลงที่ฟัง หรือร้านที่ทำ ก็ไม่มีที่ลง พอคุณบอกว่า "เปิดเพลง" ผู้ช่วยเลยต้องค้นแชทเก่าหา playlist เดิมซ้ำ
  • รุ่นนี้ เรื่องที่ยาวแยกเป็นสายของตัวเอง ไฟล์ละเรื่องในโฟลเดอร์ memory/you/ ส่วน USER.md เหลือเฉพาะแกน สายจะถูกแนบไปกับข้อความเมื่อข้อความนั้นมีคำที่ตรงกับสาย ไม่เปลืองการเรียกเครื่องมือ และไม่ทำให้ cache ของ prompt เปลี่ยน ผู้ช่วยเปิดดูและแก้สายเองได้ (คำที่ใช้โหลดสาย ย้ายบรรทัด) ทุกการแก้มีปุ่มย้อนกลับ บันทึกประจำวันแตกสายให้เองเมื่อ USER.md ใกล้เต็ม และไม่ทิ้งเรื่องใหม่แบบเงียบ ๆ อีก แผนที่ความจำมีจุดของแต่ละสายห้อยอยู่ใต้ "คุณ"
  • ค้นแชทเก่า ไม่ดึงข้อความของแชทที่กำลังค้นอยู่กลับมาเอง (เดิม 220 จาก 1,185 บรรทัดเป็นของแชทตัวเอง) คำค้นหลายคำต้องเจอครบทุกคำก่อน ถ้าไม่เจอถึงค่อยหาทีละคำ (ทดสอบกับคำค้นจริง 201 คำ: ค้นแล้วไม่เจอเลยลดจาก 35 เหลือ 11) ผลจัดกลุ่มตามแชท และพอเจอเรื่องของคุณที่ไม่เปลี่ยน ผู้ช่วยจะถูกเตือนให้จดไว้

ไม่ได้ทำ: ลูกมือไม่ได้อ่านสาย และสายไหนจะโหลดตัดสินจากคำที่ตรงกัน ไม่ได้ใช้ model ตัดสิน ถ้าคำตรงผิดหรือขาด ผู้ช่วยแก้คำของสายเองได้

โฟลเดอร์ความรู้ที่เชื่อมไว้: เรียนครั้งเดียว ไม่ต้องค้นทุกแชท

  • เดิม ผู้ช่วยถูกสั่งให้ "ค้นโฟลเดอร์ก่อนถาม" ทุกครั้งที่งานเกี่ยวกับคุณ บนเครื่องที่เชื่อมโฟลเดอร์ไว้ เครื่องมือถูกเรียกบนโฟลเดอร์นั้น 80 ครั้งใน 22 แชท และการค้นข้อความ 9 ใน 27 ครั้งไม่เจออะไรเลย ทั้งที่ไฟล์ไม่ได้เปลี่ยนมาสองเดือน ส่วนหน้า "คลัง" ต้องเลือกไฟล์ให้เรียนเองทุกครั้ง และสรุปของไฟล์ภาษาไทยบางไฟล์ออกมาเป็นภาษาจีนหรือเกาหลี
  • รุ่นนี้ หน้าต่าง "ให้ Aetox เรียนรู้" มีช่อง "เรียนไฟล์ใหม่และไฟล์ที่แก้ในโฟลเดอร์เดียวกันให้เองต่อไป" ผูกกับ model ที่แสดงอยู่ ตอนที่คุณไม่ได้ใช้งาน Aetox จะเรียนไฟล์ที่เพิ่มหรือแก้ เฉพาะในโฟลเดอร์ของไฟล์ที่เลือก ไม่ลงไปในโฟลเดอร์ย่อย ส่วนที่เหลือผู้ช่วยค้นเองเมื่องานต้องใช้ แล้วจดสิ่งที่เจอไว้ เพิ่มโฟลเดอร์ใหม่แล้วหน้าต่างนี้เปิดขึ้นเอง ข้อความบอกตรง ๆ ว่าไฟล์ไหนจะถูกส่งไปให้ผู้ให้บริการ
  • การเรียนหนึ่งครั้งได้สองอย่าง คือสรุปของไฟล์ (เหมือนเดิม) และ เรื่องของคุณที่ไฟล์บอก ซึ่งลงสายเป็นบรรทัดที่ลงท้ายด้วย ← ไฟล์ต้นทาง ผู้ช่วยเปิดไฟล์อ่านละเอียดได้เมื่อบรรทัดเดียวไม่พอ ถ้าไฟล์ถูกแก้แล้วเรียนใหม่ จะเปลี่ยนเฉพาะบรรทัดที่มาจากไฟล์นั้น บรรทัดที่คุณหรือผู้ช่วยแก้ไปแล้วจะไม่ถูกทับ
  • ระบบกันไม่ให้ขยะเข้าความจำเอง ไม่ฝากไว้กับ model: ทุกบรรทัดต้องเป็นเรื่องของคุณ (ขึ้นต้นด้วย "ผู้ใช้") และเขียนเป็นภาษาเดียวกับความจำที่มีอยู่ ตอนทดสอบกับไฟล์จริง model ตัวเล็กเคยเอาสารบัญที่จดเรื่องเครื่องมือ กับคำแนะนำในบันทึก มาจดเป็น "เรื่องของคุณ" ระบบนี้ตัดพวกนั้นทิ้ง สรุปของไฟล์ภาษาไทยเป็นภาษาไทยแล้ว
  • หน้า "คลัง": โฟลเดอร์ที่เรียนเองอยู่มีป้าย "เรียนเองต่อเนื่อง · model" และปุ่ม หยุดเรียนเอง หยุดแล้วสิ่งที่เรียนไปยังอยู่

ไม่ได้ทำ: ยังไม่ได้วัดว่าการค้นโฟลเดอร์ลดลงจริงเท่าไร ไฟล์ที่ถูกลบไปแล้วยังเหลือบรรทัดของมันในสาย (ผู้ช่วยเห็นว่าไฟล์ไม่มีแล้วก็แก้ได้) และส่วนที่ติ๊กไว้นับเป็น "เรียนแล้ว" ตั้งแต่ตอนติ๊ก ไม่ได้รอให้เรียนรอบแรกเสร็จก่อน

ดูได้ว่าใครใช้ token ไปเท่าไหร่

  • เดิม หน้าต่างคอนเท็กซ์แสดงได้แค่ของตัวหลัก ไม่รู้ว่าหัวหน้าทีม เอเจน หรือลูกมือที่ถูกจ้างใช้ไปคนละเท่าไหร่
  • รุ่นนี้ แผงขวามีแท็บ "การใช้" แสดงยอดรวม สัดส่วน cache hit/miss และตารางเรียงตามสายจ้างงาน (ใครจ้างใคร) แต่ละแถวมี model, token, cache และค่าใช้จ่าย คนที่ถูกจ้างหลายครั้งกางดูงานย่อยได้ ถ้าใช้แพ็กเกจที่ไม่มีบิล จะแสดง ≈ $ คิดจากราคา API ของผู้ขาย และไม่นำไปรวมกับยอดเงินจริง popover ของคอนเท็กซ์มีปุ่ม "ดูตามคนด้านข้าง" ข้อมูลทั้งหมดมีอยู่แล้วในฐานข้อมูล ไม่ได้เก็บอะไรเพิ่ม

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • เอเจนเปิดเว็บหรือสลับแท็บเว็บ และห้องตัดต่อส่งออกคลิปเสร็จ แผงขวาจะเปิดขึ้นมาให้เอง แม้คุณปิดไว้ (หน้าเว็บอาจต้องให้คุณล็อกอินหรือกดอะไร) ส่วนการถ่ายรูปหน้าเว็บ และงานเรนเดอร์ที่หยุดหรือพัง ยังเงียบเหมือนเดิม
  • tests ที่เพิ่มในรุ่นนี้: TestABranchRidesTheMessageThatCallsForIt, TestTheModelCanOpenAndRepairABranch, TestTheDailyPassMovesASubjectIntoABranch, TestSessionSearchWordsIdsAndDays, TestLearningAFileWritesItsFactsIntoTheBranchesWithTheSource, TestTheIdlePassLearnsOnlyWhatChangedInAFolderKeptLearned, TestKeepLearningReadsOnlyTheLevelOfThePickedFiles, TestAFolderInsideALearnedOneIsNamedOnce, TestSessionSpendByNamesEachWorkerAndItsHirer, TestSelectingAPageBringsThePanelBack และ tests ของหน้า "คลัง" และแท็บ "การใช้"

v1.10.11

Choose a tag to compare

@Mikedev115 Mikedev115 released this 21 Oct 08:55

🧩 Aetox v1.10.11

วันที่ 21 ตุลาคม 2026

แชทผ่าน OpenRouter กลับมาใช้ cache ได้ และรูปที่แนบมา model ดูเองได้เลย ไม่ไปเปิดเครื่องมืออ่านรูปซ้ำ

แชทผ่าน OpenRouter ไม่ใช้ cache เลย

  • เดิม แชท glm-5.3-flash ผ่าน OpenRouter ได้ Cache hit 0% ห้ารอบติดกัน แต่ละรอบรอ 13–20 วินาทีกว่าคำตอบจะเริ่มขึ้น OpenRouter มีผู้ให้บริการที่รัน model ตัวนี้ราว 35 เจ้า บางเจ้าไม่ได้ใช้ cache เลย และแชทเดียวกันก็ถูกย้ายไปมาระหว่างเจ้าได้
  • รุ่นนี้ Aetox ขอให้ OpenRouter ใช้บริษัทเจ้าของ model ก่อน เช่น z-ai/... ไป Z.AI ถ้าเจ้านั้นไม่ว่าง OpenRouter จะใช้เจ้าอื่นแทนแบบเดิม ผลทดสอบจริง: แชทที่ประวัติยาวขึ้นทุกรอบ ใช้ cache ได้ครบทุกส่วนที่ส่งไปแล้วในรอบก่อน ทั้งตอนกลาง turn และตอนข้าม turn

ไม่ได้ทำ: Gemini ยังทำงานแบบเดิม เพราะขอ Google ก่อนแล้ว cache ไม่ได้ดีขึ้น ส่วน model ที่ไม่มีเจ้าของรันเอง (เช่น Llama) ก็ยังได้เหมือนเดิม

แนบรูปแล้ว model ไปเรียกเครื่องมืออ่านรูปอีกรอบ

  • เดิม แนบภาพหน้าจอแล้ว model ไม่ตอบจากภาพทันที แต่ไปเรียก "อ่านรูป" ซึ่งเป็น OCR ที่อ่านภาษาไทยเพี้ยนบ่อย ทั้งที่ภาพถูกส่งไปพร้อมข้อความแล้ว ทดสอบด้วยภาพหน้าจอจริงรอบละ 12 ครั้ง: Claude Haiku 5.5 เรียกเครื่องมือ 12 ใน 12 ครั้ง, GLM 5.3 Flash 7 ใน 12 ครั้ง
  • รุ่นนี้ สำหรับ model ที่รู้แน่ว่ามองเห็นรูป ข้อความจะบอกตรง ๆ ว่ารูปอยู่ในข้อความนี้ ดูได้เลย ผลทดสอบชุดเดิม: ทั้งสองตัวเหลือ 0 ใน 12 ส่วน Kimi K3 กับ Gemini 3 Flash ที่ดูเองอยู่แล้วก็ยังดูเองเหมือนเดิม
  • เปิดแชทเก่ากลับมา รูปจะไม่ได้ส่งไปกับประวัติอีก ข้อความเลยเปลี่ยนเป็นบอก model ว่ารูปไม่อยู่แล้ว ถ้าจะดูใหม่ให้เปิดไฟล์ตาม path แทน

ไม่ได้ทำ: model ที่ยังไม่รู้ว่ามองเห็นรูปหรือเปล่า ยังได้ข้อความแบบเดิม ที่บอกให้แจ้งผู้ใช้ตรง ๆ ถ้ามองไม่เห็นรูป

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • tests ที่เพิ่มในรุ่นนี้: TestOpenRouterUpstreamIsTheMaker, TestLiveOpenRouterHistoryCache (ทดสอบกับ OpenRouter จริง รันเฉพาะเมื่อสั่ง), TestAConfirmedPictureIsNamedAsSeen, TestAReopenedChatDoesNotClaimAPictureItLeftBehind

v1.10.10

Choose a tag to compare

@Mikedev115 Mikedev115 released this 21 Oct 07:29

🧩 Aetox v1.10.10

วันที่ 21 ตุลาคม 2026

ไม่ได้ตอบคำถามของผู้ช่วย ไม่ถูกนับเป็นเครื่องมือพังอีก

คำถามที่ไม่มีคนตอบ ไม่ใช่ปัญหาที่ต้องส่งนักพัฒนา

  • เดิม ผู้ช่วยถามแล้วไม่มีใครตอบภายใน 30 นาที ผู้ช่วยปิดงานเองตามที่ควร แต่ถ้าเกิดแบบนี้ครบ 3 ครั้ง หน้าปัญหาจะขึ้นการ์ด "เครื่องมือ ask_user ล้มซ้ำด้วยเหตุเดียวกัน" แล้วชวนให้ส่งรายงานหานักพัฒนา ทั้งที่เครื่องมือไม่ได้พัง แค่ไม่มีคนอยู่หน้าจอ
  • รุ่นนี้ กรณีไม่มีคำตอบ และกรณีไม่มีใครเลือกตัวเลือก นับเป็นสภาพของเครื่อง แบบเดียวกับการกด Stop เลยไม่ขึ้นการ์ดปัญหาแล้ว แถวในแชทยังเป็นสีแดงเหมือนเดิม เพราะคำถามนั้นยังไม่ได้รับคำตอบจริง ๆ

ไม่ได้ทำ: ไม่ได้ให้หน้าปัญหาข้าม ask_user ทั้งตัว ถ้าผู้ช่วยส่งคำถามมาผิดรูปซ้ำ ๆ ก็ยังนับเป็นปัญหาเหมือนเดิม

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • tests ที่เพิ่มในรุ่นนี้: TestAskUserUnansweredAsksTheModelToClose ตรวจว่าคำถามที่หมดเวลามี mark นี้

v1.10.9

Choose a tag to compare

@Mikedev115 Mikedev115 released this 21 Oct 07:14

🧩 Aetox v1.10.9

วันที่ 21 ตุลาคม 2026

คำตอบยาวไม่ถูกพับหายเข้าขั้นตอนอีก · ส่งข้อความตอนเปิดแชทใหม่ไม่ค้าง · Claude ผ่าน 9Router ใช้ token ลดเกือบครึ่ง

คำตอบอยู่บนจอเต็ม ไม่ถูกพับเข้าขั้นตอน

  • เดิม (v1.10.8) คำตอบที่มาเป็นสองก้อนติดกัน เช่นสรุปยาว 2,597 ตัวอักษรตามด้วยย่อหน้าปิดท้าย สรุปทั้งก้อนกลายเป็นบรรทัดหนึ่งใต้หัว "ทำงานไป N ขั้น" แล้วพับหายตอนจบ บนจอเหลือแค่ย่อหน้าสุดท้าย
  • รุ่นนี้ ทุกอย่างหลังเครื่องมือหรืองานมอบหมายชิ้นสุดท้ายนับเป็นคำตอบ อยู่เต็มบนจอเสมอ ระหว่าง live ก็ถามแบบเดียวกัน
  • เดิม ระหว่าง live เครื่องมือของรอบไปเกาะประโยคก่อนหน้า บรรทัดขั้นบอกเวลากับจำนวนเครื่องมือเพี้ยนไปหนึ่งขั้น (เปิด session ใหม่แล้วถูก)
  • รุ่นนี้ ประโยคและความคิดของรอบถูกวางหน้าแถวเครื่องมือของรอบนั้นตั้งแต่ตอน live

ส่งข้อความตอนแชทใหม่ยังเปิดไม่เสร็จ

  • เดิม กดแชทใหม่แล้วพิมพ์ส่งทันที ข้อความไปตกในแชทเก่า งานยังวิ่งครบแต่จอว่างค้างหน้าแรกจนต้องกด Stop
  • รุ่นนี้ bubble ขึ้นทันทีตอนกดส่ง ติดไปที่แชทใหม่ และส่งออกทันทีที่แชทใหม่มาถึง ไม่รออ่านข้อมูลโมเดล

Claude ผ่าน 9Router: cache กลับมา token ลดเกือบครึ่ง

  • เดิม โมเดล cc/ วิ่งทาง chat/completions ซึ่ง 9Router ส่ง system prompt ซ้ำและไม่ส่งตัวเลข cache กลับมา
  • รุ่นนี้ วิ่งทาง Anthropic Messages วัดจริง 8 รอบ 527K → 293K token, cache 33% → 57–74% ตัวเลขในหน้าสถิติตรงกับ log ของ 9Router
  • การ์ด cache คิด hit rate เฉพาะ call ที่รายงาน cache มา ส่วนที่ไม่มีตัวเลขแสดงเป็น "ไม่ทราบ" ไม่นับเป็น miss

หน้าสถิติบอกว่าโมเดลมาจากไหน

ทุกชื่อโมเดลมีโลโก้ผู้ให้บริการ สีกราฟเป็นสีเดียวกับโลโก้ และกดชื่อใน legend เพื่อดูเฉพาะรุ่นนั้นได้

โต๊ะโค้ด

  • map ของโปรเจคอ่านไฟล์ที่ clean จาก git ทีเดียว ไม่ถูกตัดกลางทาง (terraform 1,628 ไฟล์ cold 9–15 วินาที → 0.9 วินาที) และ map เป็นของใช้เมื่ออยากรู้โครงสร้าง ไม่ใช่ขั้นแรกบังคับ
  • reproduce bug ด้วยเคสในรายงานเอง ไม่ใช่เคสที่ agent คิดขึ้น และการปิด check ทั้งกลุ่มไม่นับว่าแก้แบบ minimal
  • Claude Code เริ่มที่โหมด Auto ในแชตที่ยังไม่เคยเลือกโหมด แชตที่เลือก Default เองยังเป็น Default

ไม่ได้ทำ: เอาประโยค "ตรวจ diff ก่อนบอกว่าเสร็จ" ของ v1.10.8 ออกไปแล้ว เพราะไฟล์ขยะที่เป็นเหตุผลของมันมากับ image ทดสอบ ไม่ใช่ฝีมือ agent

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • web ที่ออก network ไม่ได้สองครั้งติด ครั้งถัดไปไม่รัน และบอกโมเดลว่าเครื่องนี้ไม่มี network
  • tests ที่เพิ่มในรุ่นนี้: Chat.tools.test.ts (ลำดับของ turn คำตอบสองก้อนตามที่เก็บใน aetox.db และกรณี live)

v1.10.8

Choose a tag to compare

@Mikedev115 Mikedev115 released this 20 Oct 18:35

🧩 Aetox v1.10.8

วันที่ 21 ตุลาคม 2026

ขั้นตอนการทำงานในแชทพับเก็บได้ คำตอบไม่จมใต้บันไดอีก · โต๊ะโค้ด reproduce bug ก่อนแก้ อ่าน test เดิม และตรวจ diff ของตัวเองก่อนบอกว่าเสร็จ

ขั้นที่จบแล้วเป็นบรรทัดเดียว แล้วพับเก็บตอนตอบเสร็จ

เจ้าของ 20 ต.ค. ชี้ภาพหน้าจอ: "ทำให้มันพับได้ได้ไหม" แล้วเลือกจาก lab ห้าแบบว่า "อยากได้แบบ C แล้วพับเก็บ"

  • เดิม ทุกช่วงงานใน turn วาดสามบรรทัด: คิดเป็นเวลา N วินาที, ประโยคของโมเดล, ใช้ N เครื่องมือ
    งานที่ทำหกขั้นจึงมีสิบแปดบรรทัดคั่นระหว่างคำถามกับคำตอบ
  • รุ่นนี้
    • ระหว่างทำ ขั้นที่จบแล้วค่อย ๆ หดเหลือบรรทัดเดียว (ประโยคแรก เวลา จำนวนเครื่องมือ) ใต้หัว "ทำไปแล้ว N ขั้น"
      ขั้นที่กำลังทำยังเต็มอยู่ด้านล่าง
    • ขั้นจะกลายเป็นบรรทัดเมื่อจบจริง คือโมเดลพูดประโยคถัดไป ผู้ใช้พิมพ์แทรก หรือ turn จบ ไม่ใช่ตอนเงียบระหว่างรอบเครื่องมือ
    • ตอบเสร็จแล้ว บรรทัดทั้งหมดพับเข้าหัว "ทำงานไป N ขั้น · ใช้ N เครื่องมือ · N วินาที" บนจอเหลือหัวกับคำตอบ
    • กดหัวเพื่อดูทุกขั้น กดบรรทัดไหนก็เห็นประโยคเต็มกับแถวเครื่องมือของขั้นนั้น ปุ่มดูความคิดอยู่ในพับเดียวกัน
    • สิ่งที่ไม่ถูกย่อเป็นบรรทัด: ขั้นที่ยังมีงานรัน งานที่มอบให้เอเจนหรือผู้ช่วย การ์ด server รูปที่วาด
      ข้อความที่ผู้ใช้พิมพ์แทรก และขั้นสุดท้าย
    • ทุกการขยับเป็นความสูงของบล็อกเดียว ใช้ท่าพับเดิมของแอป วัดจากหน้าแชทตัวจริงในเบราว์เซอร์ headless เทียบกับรุ่นก่อน
      สามรอบ: เฟรมช้าสุด 28 ms ไม่มีเฟรมยาว รุ่นก่อนช้าสุด 33–67 ms งาน 30 ขั้นได้ผลเท่ากัน

ไม่ได้ทำ: จำกัดจำนวนบรรทัดระหว่างทำไว้แค่ไม่กี่บรรทัดล่าสุด ตอนนี้แสดงทุกบรรทัด

โต๊ะโค้ดแก้ bug แบบที่ทีมอันดับต้นทำ

  • เดิม ใน SWE-bench-Live lite รอบที่ 3 งาน pdm-3237 ถูกแก้ผิดไฟล์เพราะไม่เคยรันคำสั่งที่พัง
    บางข้อ test ใหม่ผ่านแต่ test เดิมพัง เพราะไม่ได้รัน test ที่ครอบโค้ดที่แก้ และคำว่า "ตามสัดส่วน" ทำให้โมเดลข้ามขั้นพวกนี้
  • รุ่นนี้ คำสั่งของโต๊ะโค้ดบอกชัด:
    • งานแก้ bug ต้อง reproduce ก่อนแก้ แล้วแสดงว่าการ reproduce เดิมผ่านหลังแก้
    • รัน test เดิมที่ครอบโค้ดที่แก้
    • ก่อนบอกว่าเสร็จ ตรวจ diff ของตัวเองว่ามีแต่สิ่งที่ตั้งใจ ไม่มี debug output ไฟล์ชั่วคราว หรือบรรทัดที่ไม่เกี่ยว

เปลี่ยนอื่น ๆ ในรุ่นนี้

  • คำว่า edits ในประโยคตรวจ diff ชนกับชื่อเครื่องมือ เปลี่ยนเป็น unrelated lines
  • tests ที่เพิ่มหรือแก้ในรุ่นนี้: Chat.tools.test.ts (turns finished stretches into lines and folds them away once the turn is over,
    keeps a stretch that handed work out whole, และเจ็ดเทสต์เดิมของการพับ) turnPhases.test.ts (stepSegs, phaseLineText)