발행 오류가 이제 무슨 일인지 쉬운 말로 알려 줍니다
Mythex에서 발행이 실패하면, 대화상자가 이제 무슨 일이 있었는지 한 문장으로 알려 줍니다. 빌드가 실패했는지, 앱이 시작한 뒤 멈췄는지, 앱이 아예 시작하지 못했는지, 파일이 너무 큰지, 또는 우리 쪽에 문제가 생겼는지 말해 줍니다. 그리고 Fix with AI와 Try again을 제안합니다. 빌드와 앱이 내놓은 원시 출력은 여전히 에이전트에게 전달되므로 Fix with AI가 읽고 프로젝트를 고칠 수 있습니다. 다만 그 출력을 직접 읽을 필요는 이제 없습니다.
무엇이 바뀌었나
행동할 수 있는 한 문장
실패한 발행에는 이제 유형이 있습니다. 실패하는 순간, 텍스트 오류를 나중에 읽어서 정하는 대신, 그 자리에서 가진 사실로 정합니다. 어느 단계가 실패했는지, 앱의 머신이 충돌을 보고했는지, 연결을 받기 시작했는지 같은 것입니다. 각 유형마다 고유한 메시지가 있습니다.
| 보이는 것 | 의미 |
|---|---|
| "빌드에 실패했습니다." | 프로젝트의 빌드 명령이나 Dockerfile이 빌드되지 않았습니다. |
| "앱이 시작하자마자 멈췄습니다." | 발행은 되었지만, 그 후 종료되었거나 계속 재시작되고 있습니다. |
| "앱이 발행 후 시작되지 않았습니다." | 발행은 되었지만 연결을 받기 시작하지 않았습니다. |
| "파일이 너무 큽니다" / 파일이 너무 많습니다 | 정적 사이트가 파일당 크기 또는 파일 수 제한을 넘었습니다. 메시지에 파일을 나열합니다. |
| "이 링크 이름은 발행에 사용할 수 없습니다." | 링크 이름을 바꾸고 다시 발행하세요. 코드는 문제가 없습니다. |
| "발행이 잠시 혼잡합니다" | 앱에는 문제가 없습니다. 몇 분 뒤 다시 발행하세요. |
| "…우리 쪽 문제이며 앱의 문제가 아닙니다." | 우리가 고칠 일입니다. 몇 분 뒤 다시 발행하세요. |
모든 실패에 Fix with AI
모든 실패에 Fix with AI와 Try again이 나옵니다. Fix with AI를 쓰면 에이전트는 실패 유형과 빌드 또는 앱의 전체 출력을 자신의 컨텍스트 안에서 비공개로 받습니다. 앱에 잘못된 것이 있으면 고칩니다. 아무 문제가 없다면, 예를 들어 잠시 혼잡하거나 우리 쪽 문제라면, 그냥 다시 발행할 수 있습니다. 어떤 종류의 실패인지 직접 알아낼 필요가 없습니다.
라이브 후의 문제
발행은 성공해도 몇 분 뒤에 앱이 실패할 수 있습니다. Mythex는 발행된 앱을 주기적으로 점검합니다. 라이브 앱이 계속 충돌하거나, 실행은 되지만 연결을 받지 않으면, 발행은 실패로 표시되고 이메일이 발송되며, 프로젝트에 메시지와 Fix with AI가 나타납니다. 앱이 출력한 내용은 에이전트가 읽도록 저장됩니다.
업로드 전 크기 제한 확인
정적 사이트의 경우, 업로드 전에 모든 파일의 크기와 총 파일 수를 확인합니다. 제한을 넘는 것이 있으면, 중간에 실패하는 대신 크기 제한을 넘는 모든 파일을 나열한 메시지 하나를 받습니다.
왜 만들었나
발행이 실패하면 예전에는 발행 도구가 출력한 내용을 그대로 보여 주었습니다. 9월 말 한 주 동안, 대부분의 실패는 빌더에게 보이는 텍스트였고, 그것은 우리가 처리해야 할 내용이었지 그들의 것이 아니었습니다. 청구 연락처, 내부 버전 번호, 레지스트리 경로, 스토리지 오류 같은 것입니다. Fix with AI는 그 텍스트를 그대로 채팅에 붙여 넣었습니다. 사람들은 우리의 인프라를 디버그하라는 요청을 받고 있었습니다.
일부는 단순히 틀린 내용이었습니다. 포트에서 연결을 받은 적이 없는 앱이 "우리 쪽 문제"로 보고되었지만, 실제 해결책은 앱 안에 있었습니다. 크기 제한을 넘은 정적 파일도 같은 식으로 보고되었습니다. 다시 발행해도 결코 통과할 수 없었는데도요.
그리고 실패에 반응하는 Mythex의 모든 부분, 즉 대화상자, 알림, Fix with AI, 우리 자체 알림은 오류 텍스트의 단어를 맞춰 보며 무슨 일이 있었는지 알아냈습니다. 문구가 바뀌면 그 방식은 깨졌습니다. 이제 실패가 일어나는 곳에서 유형이 기록되고, 그 밖의 모든 것은 그 유형을 읽습니다.
같은 규칙을 그 김에 다른 오류에도 적용했습니다.
- 채팅. 답변이 스트리밍되는 도중 연결이 끊기면, 브라우저의 "Load failed"나 "Failed to fetch" 대신 우리 문장이 보입니다.
- 커스텀 도메인. 도메인을 사거나 연결하는 것에 관한 메시지는 응답의 상태와 코드에서 고르며, 도메인 제공자의 문장을 그대로 전달하지 않습니다.
- 이미지 생성. 카드에는 우리 메시지가 나타나고, 에이전트는 서비스의 상세 내용을 받습니다.
사용 방법
- 평소처럼 Publish 버튼으로 발행합니다.
- 실패하면 대화상자의 한 줄 메시지를 읽습니다.
- Fix with AI를 누릅니다. 에이전트가 빌드 출력이나 앱 로그를 읽고, 잘못된 것을 고치고, 앱에 고칠 것이 없다면 다시 발행합니다.
- 또는 Try again을 눌러 같은 버전을 다시 발행합니다. "잠시 혼잡합니다"와 "우리 쪽 문제"에는 이 방법이 맞습니다.
- 메시지가 링크 이름에 관한 것이라면, 다시 발행하기 전에 링크 이름을 바꾸세요. 그 밖의 오류라면 같은 이름을 유지하세요.
한계
- 일부 실패는 다른 버튼을 보여 줍니다. 이미 사용 중인 링크 이름이면 다른 이름을 제안하고, 크레딧이 부족하면 크레딧을 추가하는 방법을 제시합니다.
- 정적 사이트의 파일당 제한은 사이트 종류에 따라 약 25~30MB이며, 최대 20,000개 파일입니다. 큰 파일은 스토리지에 두고 링크하는 편이 낫습니다.
- 이번 변경 이전의 실패한 발행에는 유형이 없으므로, 구체적인 이유 대신 중립적인 한 줄이 보입니다.
- "우리 쪽 문제"가 계속 발생하면, 프로젝트 ID와 링크 이름을 함께 지원팀에 문의하세요.
모든 메시지와 각각에 대한 대처법은 발행 문제 해결에 있습니다. 실패한 앱을 직접 고치는 중이라면, AI로 만든 앱을 디버그하는 방법 가이드가 과정을 안내합니다. 재발행하는 동안 라이브 사이트에 무슨 일이 일어나는지는 발행된 앱이 이제 재발행하는 동안에도 계속 떠 있습니다를 보세요.