git logChangelog
Commit History of Bad DecisionsChangelog
เหตุการณ์จริงจาก repo จริง เล่าด้วยน้ำเสียงที่มันสมควรได้ ส่วนอันไหนเป็นมุกจะมีป้ายบอกเหตุการณ์สำคัญของแต่ละ
Uncommitted changesมุกล้วนๆ ไม่เคยถูก commit จริง เลยไม่มีวันที่
มุก ไม่ใช่เหตุการณ์จริง: feat: สร้างของที่ไม่มีใครขออีกแล้ว
มุก ไม่ใช่เหตุการณ์จริง: fix: แก้บั๊กที่เกิดจากการแก้บั๊กที่เกิดจากการแก้บั๊ก
มุก ไม่ใช่เหตุการณ์จริง: chore: ทบทวนการตัดสินใจในชีวิต
มุก ไม่ใช่เหตุการณ์จริง: perf: ทำให้เร็วจนโทษคอมไม่ได้แล้ว
feat(ohfork): วาง design system ให้พอร์ต ก่อนจะมีพอร์ตให้ใส่
design system ธีม และ content model แบบมี type ลง main คืนเดียวกับที่ตั้งโครงเว็บและทำ brand identity
ohfork.dev: design system ธีม และ content model แบบมี type ลง main คืนเดียวกับที่ตั้งโครงเว็บและทำ brand identity
chore(langswitch): เปิดซอร์สแล้ว พร้อมเครดิตคนเขียนต้นฉบับ คราวนี้ให้แบบถูกต้อง
LangSwitch เปิดเป็น repo สาธารณะบน GitHub (MIT) และ commit ล่าสุดกลับมาให้เครดิต CapsLangSwitcher ของ Gamezxz
LangSwitch: LangSwitch เปิดเป็น repo สาธารณะบน GitHub (MIT) และ commit ล่าสุดกลับมาให้เครดิต CapsLangSwitcher ของ Gamezxz
docs(ohfork): เขียน roadmap ก่อนเขียนเว็บ ตามสูตร
commit แรกของ ohfork.dev: concept, roadmap และคำสั่งสำหรับ coding agent
ohfork.dev: commit แรกของ ohfork.dev: concept, roadmap และคำสั่งสำหรับ coding agent
feat(jit): jit รันบน schway แล้ว agent ซ้อน agent ลงไปเรื่อยๆ
Jit เชื่อมกับ Schway ได้แล้ว โดยล็อกเวอร์ชันไว้กับ release ของเครื่อง host
Jit: Jit เชื่อมกับ Schway ได้แล้ว โดยล็อกเวอร์ชันไว้กับ release ของเครื่อง host
feat(jit): อ่าน Telegram เป็นแล้ว แต่ยังเมินข้อความเราเหมือนเดิม
Jit ผูก
ตัวตน เจ้าของผ่าน Telegram พร้อม inbox แบบ long-poll ที่ข้อความไม่หาย Jit: Jit ผูก
ตัวตน เจ้าของผ่าน Telegram พร้อม inbox แบบ long-poll ที่ข้อความไม่หาย docs(jit): เริ่ม
โปรเจกต์ ด้วยการเขียน spec ก่อน โตขึ้นเยอะ commit แรกของ Jit: เอกสาร discovery กับ spec ของฟีเจอร์ แล้ว backlog ของ MVP ก็ตามมาในคืนเดียวกัน
Jit: commit แรกของ Jit: เอกสาร discovery กับ spec ของฟีเจอร์ แล้ว backlog ของ MVP ก็ตามมาในคืนเดียวกัน
refactor(heelflick): เปลี่ยนชื่อ "Studio" ให้ฟังเหมือนท่าสเกตบอร์ด
สตูดิโอผลิตโฆษณาเปลี่ยนชื่อเป็น Heelflick พร้อมหน้าเว็บใหม่
Heelflick: สตูดิโอผลิตโฆษณาเปลี่ยนชื่อเป็น Heelflick พร้อมหน้าเว็บใหม่
feat(heelflick): สร้างเอเจนซีโฆษณาที่ยังไม่มีลูกค้าสักราย
commit แรกของ Heelflick: workflow สำหรับผลิตวิดีโอโฆษณา
Heelflick: commit แรกของ Heelflick: workflow สำหรับผลิตวิดีโอโฆษณา
release(oliv): 0.2.0 เปิดให้ใช้แล้ว พิมพ์ด้วยเสียงภาษาไทยที่สะกด "PostgreSQL" เป็นภาษาอังกฤษให้
OLIV 0.2.0 ออกเป็น GitHub release บน repo สาธารณะ chayapats/oliv
OLIV: OLIV 0.2.0 ออกเป็น GitHub release บน repo สาธารณะ chayapats/oliv
release(schway): 1.0.0-rc.2 ยังเป็น candidate และยังรันอยู่
Schway 1.0.0-rc.2 ขึ้น npm ภายใต้ dist-tag "next"
Schway: Schway 1.0.0-rc.2 ขึ้น npm ภายใต้ dist-tag "next"
feat(oliv): พอร์ตไป iPhone เพราะพก Mac ใส่กระเป๋ากางเกงมันหนัก
commit แรกของแอป OLIV บน iPhone และได้คีย์บอร์ดไทย/อังกฤษแบบมินิมอลในวันเดียวกัน
OLIV: commit แรกของแอป OLIV บน iPhone และได้คีย์บอร์ดไทย/อังกฤษแบบมินิมอลในวันเดียวกัน
feat(oliv): เซิร์ฟเวอร์เดียว หลาย client แยกคีย์ใครคีย์มัน ดูสิแม่ กลายเป็น platform แล้ว
client บน Linux และ iPhone ย้ายมาใช้ OLIV API สาธารณะ โดยแยก API key ให้แต่ละเครื่อง
OLIV: client บน Linux และ iPhone ย้ายมาใช้ OLIV API สาธารณะ โดยแยก API key ให้แต่ละเครื่อง
release(schway): 1.0.0-rc.1 ปล่อยตอนตีหนึ่งสามสิบหก แบบ
มืออาชีพ Schway 1.0.0-rc.1 ขึ้น npm เป็น dist-tag "latest"
Schway: Schway 1.0.0-rc.1 ขึ้น npm เป็น dist-tag "latest"
release(schway): 0.6.0 ออก minor สามเวอร์ชันในสามวัน
Schway 0.6.0 ขึ้น npm
Schway: Schway 0.6.0 ขึ้น npm
feat(schway): ขึ้น npm แล้ว ไม่มีใครขอ
Schway ขึ้น npm จริงครั้งแรกที่เวอร์ชัน 0.4.0 โดยมี placeholder 0.0.0-stage ออกไปก่อนหน้าสองนาที
Schway: Schway ขึ้น npm จริงครั้งแรกที่เวอร์ชัน 0.4.0 โดยมี placeholder 0.0.0-stage ออกไปก่อนหน้าสองนาที
feat(oliv): พอร์ตไป Linux ให้สาย Hyprland ได้คุยกับ tiling WM ของตัวเอง
เริ่มพอร์ต OLIV ไป Omarchy/Hyprland และ deploy API ถอดเสียงครั้งแรกในวันเดียวกัน
OLIV: เริ่มพอร์ต OLIV ไป Omarchy/Hyprland และ deploy API ถอดเสียงครั้งแรกในวันเดียวกัน
chore(schway): เขียน coding agent ของตัวเอง ก็ใครๆ เขาก็ทำกัน
commit แรกของ Schway ฟีเจอร์แรกคือ stream บทสนทนากับ Anthropic แบบ headless ผ่าน agent loop ของ Schway
Schway: commit แรกของ Schway ฟีเจอร์แรกคือ stream บทสนทนากับ Anthropic แบบ headless ผ่าน agent loop ของ Schway
fix(langswitch): macOS 27 ทำ Caps Lock พัง เลยซ่อม Caps Lock
LangSwitch อ่านตาราง hidutil แบบแยกอุปกรณ์ของ macOS 27 ได้แล้ว Caps Lock เลยกลับมาสลับภาษาได้เหมือนเดิม
LangSwitch: LangSwitch อ่านตาราง hidutil แบบแยกอุปกรณ์ของ macOS 27 ได้แล้ว Caps Lock เลยกลับมาสลับภาษาได้เหมือนเดิม
release(jarn): v1.0.12 คำสั่งเสีย
commit สุดท้ายบน main ของ J.A.R.N. คือการ merge งานเตรียม release v1.0.12 ส่วน v1.0.11 ขึ้น PyPI ไปก่อนแล้วในวันเดียวกัน
jarn: commit สุดท้ายบน main ของ J.A.R.N. คือการ merge งานเตรียม release v1.0.12 ส่วน v1.0.11 ขึ้น PyPI ไปก่อนแล้วในวันเดียวกัน
feat(jarn)!: 1.0.0 GA candidate เครื่องหมาย "!" คือการปูเรื่อง
เตรียม J.A.R.N. 1.0.0 เป็น GA candidate
jarn: เตรียม J.A.R.N. 1.0.0 เป็น GA candidate
release(oliv): 0.1.11 ศัพท์เทคที่พูดเป็นไทย ออกมาเป็นภาษาอังกฤษจริงๆ
OLIV 0.1.11 ออกบน GitHub แปลงศัพท์เทคที่ถอดเสียงออกมาเป็นไทยกลับเป็นคำภาษาอังกฤษได้ดีขึ้น
OLIV: OLIV 0.1.11 ออกบน GitHub แปลงศัพท์เทคที่ถอดเสียงออกมาเป็นไทยกลับเป็นคำภาษาอังกฤษได้ดีขึ้น
release(locked-in): v1.0.0 ของแผนซ้อมที่ตอนนี้ต้องทำตามจริงๆ แล้ว
Locked In ออก production release v1.0.0
Locked-in: Locked In ออก production release v1.0.0
feat(locked-in): ตั้งโครงโค้ชวิ่งตอนตีหนึ่ง แทนที่จะนอน
commit แรกของ Locked In ตอนตีหนึ่งเจ็ดนาที
Locked-in: commit แรกของ Locked In ตอนตีหนึ่งเจ็ดนาที
feat(langswitch): มีคนทำให้ Caps Lock มีประโยชน์ไปแล้ว เราแค่ทำให้มันโชว์ภาษาให้ถูก
commit แรกของเราใน LangSwitch: ตัวบอกภาษาที่ทำเองบน CapsLangSwitcher ของ Gamezxz
LangSwitch: commit แรกของเราใน LangSwitch: ตัวบอกภาษาที่ทำเองบน CapsLangSwitcher ของ Gamezxz
release(oliv): 0.1.0 build สาธารณะแรก เซ็นและ notarize เรียบร้อย
OLIV 0.1.0 ออกบน GitHub ใน repo สำหรับ release ที่ตอนนั้นแยกไว้ต่างหาก
OLIV: OLIV 0.1.0 ออกบน GitHub ใน repo สำหรับ release ที่ตอนนั้นแยกไว้ต่างหาก
refactor(oliv): เปลี่ยนชื่อจาก Whispy เป็น OLIV เพราะชื่อเดิมมีคนใช้แล้ว
เปลี่ยนชื่อจาก Whispy เป็น OLIV เพราะชื่อไปชนกับของคนอื่น
OLIV: เปลี่ยนชื่อจาก Whispy เป็น OLIV เพราะชื่อไปชนกับของคนอื่น
feat(oliv): สอน Mac ให้เข้าใจ dev ไทยที่พูดคำว่า "deploy" เป็นภาษาอังกฤษ
commit แรกของ OLIV ตอนยังชื่อ Whispy: พิมพ์ด้วยเสียงไทยปนอังกฤษแบบกดค้างแล้วพูด ทำงานในเครื่องบน macOS
OLIV: commit แรกของ OLIV ตอนยังชื่อ Whispy: พิมพ์ด้วยเสียงไทยปนอังกฤษแบบกดค้างแล้วพูด ทำงานในเครื่องบน macOS
feat(vera): เริ่มทำแอป native เพราะบนเว็บยังเหงาไม่พอ
เริ่มทำแอปมือถือแบบ native ของ Vera
Vera: เริ่มทำแอปมือถือแบบ native ของ Vera
chore(agents-irl): commit สุดท้าย สัตว์เลี้ยงตั้งโต๊ะหลับไปแล้ว
merge งานพอร์ตไป ESP32-C3 ซึ่งเป็น commit สุดท้ายบน main ของ agents-irl
agents-irl: merge งานพอร์ตไป ESP32-C3 ซึ่งเป็น commit สุดท้ายบน main ของ agents-irl
feat(jarn): v0.1.0 coding agent ตัวแรกของเรา ไม่ใช่ตัวสุดท้าย น่าเสียดาย
commit แรกของ J.A.R.N. (v0.1.0) และขึ้น PyPI ในเย็นวันเดียวกัน
jarn: commit แรกของ J.A.R.N. (v0.1.0) และขึ้น PyPI ในเย็นวันเดียวกัน
feat(agents-irl): ย้ายสัตว์เลี้ยงตั้งโต๊ะไปอยู่บนชิปที่เล็กลง น่ารักขึ้นเยอะ
ย้าย firmware ของ agents-irl จาก NodeMCU (ESP8266) ไปเป็น ESP32-C3 SuperMini
agents-irl: ย้าย firmware ของ agents-irl จาก NodeMCU (ESP8266) ไปเป็น ESP32-C3 SuperMini
feat(agents-irl): สร้างสัตว์เลี้ยงตัวจริงที่ตกใจทุกครั้งที่ Claude กำลังคิด
commit แรกของ agents-irl: สัตว์เลี้ยงตั้งโต๊ะแบบฮาร์ดแวร์ที่ตอบสนองต่อการทำงานของ AI coding agent
agents-irl: commit แรกของ agents-irl: สัตว์เลี้ยงตั้งโต๊ะแบบฮาร์ดแวร์ที่ตอบสนองต่อการทำงานของ AI coding agent
feat(arsom-pos): หน้า live ให้เจ้าของร้านดูร้านได้จากทุกที่
Arsom POS มีหน้า live ให้เจ้าของร้านดูสถานะของร้านตอนนั้นได้
Arsom POS: Arsom POS มีหน้า live ให้เจ้าของร้านดูสถานะของร้านตอนนั้นได้
feat(arsom-pos): ระบบ POS ให้ร้านนวด ความยุติธรรมของคิวตอนนี้มีซอฟต์แวร์คุมให้
commit แรกของ Arsom POS แล้วระบบบันทึกการใช้งานกับการตั้งค่าพนักงานก็ตามมาในเช้าวันถัดไป
Arsom POS: commit แรกของ Arsom POS แล้วระบบบันทึกการใช้งานกับการตั้งค่าพนักงานก็ตามมาในเช้าวันถัดไป
feat(calquest): "Initial commit: production-ready" ผู้บรรยาย: นั่นคือ commit แรก
commit แรกของ CalQuest ข้อความจริงคือ "Initial commit: Calorie Quest production-ready"
CalQuest: commit แรกของ CalQuest ข้อความจริงคือ "Initial commit: Calorie Quest production-ready"
chore(vera): ได้โดเมนจริงแล้ว ปัญหากลัวการผูกมัด: แก้แล้ว
Vera ย้ายมาอยู่ที่โดเมน veradating.app
Vera: Vera ย้ายมาอยู่ที่โดเมน veradating.app
feat(vera): สร้างแอปหาคู่ "Initial commit" ไปสามรอบในเย็นเดียว
หลัง commit แรกของ Vera ยังมี commit ชื่อ "Initial commit" ตามมาอีกสองอันในเย็นนั้น
Vera: หลัง commit แรกของ Vera ยังมี commit ชื่อ "Initial commit" ตามมาอีกสองอันในเย็นนั้น
feat(cleancheck): commit แรกก็ v0.8.0-beta แล้ว อีกสี่ชั่วโมงก็ v1.0.0
commit แรกของ CleanCheck ชื่อ "v0.8.0-beta" แล้วอีกราวสี่ชั่วโมงก็ขยับเป็น v1.0.0
CleanCheck: commit แรกของ CleanCheck ชื่อ "v0.8.0-beta" แล้วอีกราวสี่ชั่วโมงก็ขยับเป็น v1.0.0