- อัปเดต Apple Support app v5.13 ที่ Apple ปล่อยวันนี้ ถูกแจกจ่ายออกไปพร้อมกับไฟล์ Claude.md
- คาดว่าไฟล์ดังกล่าวไม่ใช่สิ่งที่ Apple ตั้งใจเปิดเผย แต่ถูกทิ้งไว้โดย ความผิดพลาด
- ต่อมาในอัปเดต 5.13.1 ที่ออกมาอย่างเร่งด่วน ไฟล์ดังกล่าวก็ถูกลบออก
# Chat - Conversational Support (Juno AI + Live Agents)
- Uses **AsyncStream** for real-time updates, NOT Combine (unlike rest of app).
Streams are recreated on each access; old ones are finished.
- Service providers are **actors** (not `@MainActor` classes) for thread-safe
concurrent message handling.
- **Multi-backend via protocol:** `ChatViewModelServiceProvider` abstracts
Juno AI (`SupportAssistantAPIProvider`), live agents (`ChatKitChatServiceProvider`),
and dev mocks. View model doesn't know which backend is active.
- **Conditional compilation is heavy:** `#if JUNO_ENABLED`,
`#if canImport(CCChatKit)`, `#if DEV_BUILD`. Some files nest these.
Check xcconfig for enabled flags.
- **Three participant roles:** `.client` (user), `.agent` (live Apple Support),
`.assistant` (AI). Route message handling per role.
- Messages are wrapped in `MessageGroup` (UUID container) to avoid SwiftUI ID
collisions (rdar://164022273). Don't flatten.
- CCChatkit is callback-based; bridged to async/await via `Task` wrappers in
`ChatFacadeServiceProvider`
- Session persistence: Keychain for `ChatInfo` (reconnection), file cache in
`CachesDirectory/TemporaryChatTranscripts/` for transcripts.
# SAComponents - Shared UI Component Library
- Components are purely UI - no business logic, no service dependencies.
- UIKit components use `UIContentConfiguration` protocol with preset
factory methods (e.g., `.cel1()` `.callToActionProminent()`).
- SwiftUI components provide convenience modifiers on `View`
(e.g., `platterBackground()`, `frame (square:)`).
- Presets live in `Presets/` as static factory methods on enums.
- Platform variants use `#if os(visionS)` guards.
iOs version conditionals use `#available`.
- DocC catalog in 'SAComponents.docc/ with contributor guide.
Update docs when adding components.
- Always include `#Preview {}` showing multiple states for new components.
2 ความคิดเห็น
ทวีตที่เกี่ยวกับเรื่องนี้ด้านล่างน่าสนใจกว่าอีกครับ
https://x.com/tbpn/status/2016911797656367199
Mark Gurman แห่ง Bloomberg (@markgurman) บอกว่า Apple จับมือเป็นพาร์ตเนอร์กับ Google Gemini สำหรับ Siri แต่ในความเป็นจริงกำลังดำเนินงานโดยมี Anthropic เป็นฐาน
ความคิดเห็นจาก Hacker News
มีคำพูดของ Mark Gurman ว่า ณ จุดนี้ Apple อยู่ในระดับที่รันอยู่บน Anthropic
ว่ากันว่า Anthropic เป็นแรงหนุนเบื้องหลังการพัฒนาผลิตภัณฑ์ภายในและเครื่องมือภายในของ Apple จำนวนมาก และยังมี Claude เวอร์ชันปรับแต่งที่รันอยู่บนเซิร์ฟเวอร์ภายในของ Apple ด้วย — Mark Gurman แห่ง Bloomberg https://x.com/tbpn/status/2016911797656367199
ถ้าวางแผนจะซื้อในช่วงขาลงของวัฏจักรเศรษฐกิจ ตอนนี้การเช่าใช้อาจฉลาดกว่าการซื้อ
Anthropic จะรับประกัน uptime ได้เท่า Google จริงหรือ?
การส่งโค้ดภายใน เอกสาร และโทเคนลับต่าง ๆ ไปให้ Anthropic คงเป็นเรื่องไร้ความรับผิดชอบสุด ๆ แต่ถ้ารันโมเดลบนเซิร์ฟเวอร์ของตัวเองก็ไม่มีเหตุผลว่าทำไมจะทำไม่ได้
แยกจากเนื้อหาหลักแล้ว ในหลาย ๆ คอมเมนต์ตอบกลับพวกนั้นมีกลิ่น LLM ชัดมาก
ผู้คนชอบเป็นหุ่นเชิดกลวง ๆ ที่ให้ LLM เติมคำให้จริงหรือ? พวกเขาสูญเสียตัวตนกันไปแล้วหรือ?
โซเชียลมีเดียสาธารณะโดยรวมกลายเป็นขยะและไม่คุ้มจะเสียเวลา HN ยังพอแวะได้อยู่ แต่โพสต์และคอมเมนต์คุณภาพต่ำจาก LLM มีมากขึ้นเรื่อย ๆ จนอธิบายได้ยากขึ้นทุกทีว่าทำไมถึงยังควรใช้เวลาอยู่ที่นั่น
มันไม่เหมือนกับการโปรยคอนเทนต์ลงโซเชียลมีเดียเพื่อเรียกความสนใจ ที่นี่คือฟอรัมที่สร้างมาเพื่อการสนทนา
ไม่เคยคิดว่า CLAUDE.md จะถูกใส่ไว้ใน source control และยิ่งไม่คิดว่าจะถูกรวมไปกับตัวผลิตภัณฑ์
ผมไม่ได้หาเลี้ยงชีพด้วยการเขียนโค้ดด้วย AI เลยไม่รู้ best practice แต่ผมคิดว่า ไฟล์สั่งงาน AI อย่าง CLAUDE.md, AGENTS.md, REQUIREMETNS.md, MY_PLAN.md ไม่ควรถูกใส่ใน source control ควรมีแค่โค้ดจริงที่ถูกคอมไพล์เท่านั้น
ผมมองว่าไฟล์พวกนี้เป็นเหมือนเศษการตั้งค่า IDE หรือการตั้งค่าเฉพาะเวิร์กสเตชัน และคงจะใส่ทั้งหมดไว้ใน .gitignore วงการนี้เขาไม่ได้ทำกันแบบนั้นหรือ?
หลังจากอ่านคอมเมนต์ตอบกลับแล้วก็ได้เรียนรู้เยอะ เดิมทีผมสมมติว่าจากสมาชิกทีม 20 คน จะมีแค่ 1-2 คนที่ใช้ CLAUDE.md แต่ถ้าทั้ง 20 คนใช้ ข้อดีของการใส่ไว้ใน source control ก็เข้าใจได้
เพราะงั้นการดูแลมันเป็นส่วนหนึ่งของ ซอร์สโค้ด จึงสำคัญ
ปกติจะอธิบายสถาปัตยกรรมโดยรวม โครงสร้างรีโพ ขั้นตอนที่ต้องใช้ และสิ่งที่ไม่ควรทำ เช่นสไตล์โค้ดที่ควรหลีกเลี่ยงหรือไลบรารีที่ไม่ควรใช้ เป้าหมายหลักคือเอเจนต์ แต่ข้อมูลเดียวกันนี้ก็มีประโยชน์กับคนด้วย
ย้อนกลับไปสถานะก่อนหน้าได้ AI รู้บริบทปัจจุบัน และเมื่อโคลนรีโพใหม่ AI ก็เข้าใจโปรเจกต์ได้ทันที ซึ่งช่วยได้มาก
เช่น รีโพนี้จริง ๆ คืออะไร แต่ละส่วนมีโครงสร้างอย่างไร มาตรฐานโค้ดและการรีวิว รวมถึงกฎอย่าง “อย่ารัน formatter/linter อัตโนมัติ” หรือ “อย่าแตะ dependency”
หลังยุค AI คนขี้เกียจเกินไปแล้ว แทบไม่แม้แต่จะตรวจสิ่งที่ตัวเอง commit
จะใช้เครื่องมือหรือ LLM มาช่วยก็ได้ แต่คนสร้างการเปลี่ยนแปลงกับคนตรวจสอบ อย่างน้อยต้องมีมนุษย์สองคนเกี่ยวข้องเสมอ พอเกิดเรื่องแบบนี้ ทั้งคู่ก็มีความรับผิดชอบ ไม่ได้หมายความว่าจะต้องไปโทษเป็นรายบุคคล แต่กระบวนการและวิธีทำงานควรถูกทบทวน
คนไร้เดียงสากำลังถูกจับไปวางในตำแหน่งที่พวกเขาไม่เข้าใจเลย
พูดตามตรง ผมเดาว่าโดยสัญชาตญาณแล้ว Apple ส่วนใหญ่น่าจะหลีกเลี่ยง Claude หรือ AI coding
ไม่รู้เหมือนกันว่าทำไม แต่รู้สึกว่ามันไม่ค่อยเป็น Apple เท่าไร
มันเข้าไปอยู่ในเกณฑ์ประเมินผลงานแล้ว งบโทเคนสำหรับการทดลองก็เปิดกว้าง และทุกแนวปฏิบัติกับทุกกระบวนการกำลังถูกนำมาทบทวน ทุกที่กำลังเร่งเต็มสปีด แต่บทสนทนาบนอินเทอร์เน็ตกลับเหมือนไม่รู้เรื่องนี้หรือไม่ก็ปฏิเสธมัน
เช่น การระบุคน สถานที่ และสัตว์เลี้ยง การสร้างสไลด์โชว์ และการปรับภาพที่ถ่ายบนอุปกรณ์ให้ดีขึ้นแบบละเอียด
ผมสงสัยว่าบั๊ก acoustic echo cancellation (AEC) ที่เพิ่งเข้า FaceTime ไม่นานนี้เกิดจาก vibe coding หรือเปล่า
ดูเหมือนว่าถ้าปิดไมค์แล้วเปิดใหม่ มันจะหายชั่วคราว Apple เคยทำ AEC ได้ยอดเยี่ยมเสมอ เลยน่าเสียดายที่ฟังก์ชันโทรศัพท์พื้นฐานกลับพัง
คล้ายกับการไม่เชื่อเครื่องคิดเลขแล้วไปหารยาวด้วยมือ
มีใครมีสำเนาไฟล์ไหม? น่าจะน่าสนใจถ้าได้เห็น
มีคอมเมนต์เป็นสิบ ๆ อัน แต่ไม่มีอันไหนถามเลยว่า “มีอะไรอยู่ใน Claude.md”
เขาบอกว่าเกิดอะไรขึ้น แต่ไม่ได้บอกว่ามันส่งผลอะไรกับคนซื่อ ๆ แบบพวกเรา
มันก็ดูไม่เหมือนข้อมูลอ่อนไหวหรือทรัพย์สินทางปัญญาอะไรนี่ แล้วมันเป็นเรื่องใหญ่ตรงไหน?
พอคิดว่า XCode รองรับการใช้ Claude โดยตรงอยู่แล้ว ก็เลยไม่ถึงกับน่าแปลกใจมาก
กลับกัน สิ่งที่น่าแปลกใจกว่าคือมันไม่ถูกกรองออกโดย เครื่องมือ build ที่พวกเขาใช้