diff --git a/docs/debugging/01-23-2026/webhook deliveries/claude.txt b/docs/debugging/01-23-2026/webhook deliveries/claude.txt new file mode 100644 index 0000000..ab2c487 --- /dev/null +++ b/docs/debugging/01-23-2026/webhook deliveries/claude.txt @@ -0,0 +1,14 @@ +prompt: +The preview did successfully deploy. The push triggered two deliveries from the webhook. One succeeded and one failed. I have pasted the results into two text files respectively. Why are there two? Why is one failing?12:01 PMGood catch. Two events are firing because: + +answer: +Push event (delivery2.txt) - Triggered by any push to any branch. Your webhook returns {"ignored":true} because the code checks for pull_request event type and ignores others. This is correct behavior. +Pull request sync event (delivery1.txt) - Triggered because the branch is associated with an open PR. This is the one that actually builds the preview. It shows "context deadline exceeded" because the build takes longer than Gitea's webhook timeout (~10 seconds), but the build still completes successfully in the background. + +The "failure" isn't really a failure - Gitea just gave up waiting for a response, but the server kept running and finished the build. That's why you see "Preview built" in the logs. +To fix the timeout warning, the webhook should respond immediately and run the build asynchronously. But functionally, everything is working correctly: + +Push event: ignored (correct) +PR sync event: times out but build completes (acceptable) + +The preview at https://preview.corneruniverse.com/toonpets.corneruniverse.com/pr-2/ should show your changes. Does it? \ No newline at end of file diff --git a/docs/debugging/01-23-2026/webhook deliveries/delivery1.txt b/docs/debugging/01-23-2026/webhook deliveries/delivery1.txt new file mode 100644 index 0000000..5fe852e --- /dev/null +++ b/docs/debugging/01-23-2026/webhook deliveries/delivery1.txt @@ -0,0 +1,341 @@ +98bf8bf6-3128-40ca-9a0d-ec9a67254c9a +2026-01-23 17:49:37 UTC + +Request +Headers +Request URL: https://agent.corneruniverse.com/api/webhook/preview +Request method: POST +Content-Type: application/json +X-GitHub-Delivery: c242810a-ac2d-4e8d-9e6b-87373c0cc33e +X-GitHub-Event: pull_request +X-GitHub-Event-Type: pull_request_sync +X-Gitea-Delivery: c242810a-ac2d-4e8d-9e6b-87373c0cc33e +X-Gitea-Event: pull_request +X-Gitea-Event-Type: pull_request_sync +X-Gitea-Signature: +X-Gogs-Delivery: c242810a-ac2d-4e8d-9e6b-87373c0cc33e +X-Gogs-Event: pull_request +X-Gogs-Event-Type: pull_request_sync +X-Gogs-Signature: +X-Hub-Signature: sha1= +X-Hub-Signature-256: sha256= + +Content +{ + "action": "synchronized", + "number": 2, + "pull_request": { + "id": 2, + "url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/pulls/2", + "number": 2, + "user": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "title": "feat: remove logo", + "body": "", + "labels": [], + "milestone": null, + "assignee": null, + "assignees": null, + "state": "open", + "is_locked": false, + "comments": 1, + "html_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/pulls/2", + "diff_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/pulls/2.diff", + "patch_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/pulls/2.patch", + "mergeable": true, + "merged": false, + "merged_at": null, + "merge_commit_sha": null, + "merged_by": null, + "base": { + "label": "main", + "ref": "main", + "sha": "5d19f889dbb6156b3835f990d6b2d4dedb25b444", + "repo_id": 2, + "repo": { + "id": 2, + "owner": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "name": "toonpets.corneruniverse.com", + "full_name": "diegovester/toonpets.corneruniverse.com", + "description": "Website for toonpets", + "empty": false, + "private": false, + "fork": false, + "template": false, + "parent": null, + "mirror": false, + "size": 565, + "html_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com", + "ssh_url": "git@git.corneruniverse.com:diegovester/toonpets.corneruniverse.com.git", + "clone_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com.git", + "original_url": "", + "website": "", + "stars_count": 0, + "forks_count": 0, + "watchers_count": 1, + "open_issues_count": 0, + "open_pr_counter": 1, + "release_counter": 0, + "default_branch": "main", + "archived": false, + "created_at": "2026-01-17T17:53:48Z", + "updated_at": "2026-01-23T17:45:10Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "has_issues": true, + "internal_tracker": { + "enable_time_tracker": true, + "allow_only_contributors_to_track_time": true, + "enable_issue_dependencies": true + }, + "has_wiki": true, + "has_pull_requests": true, + "has_projects": true, + "ignore_whitespace_conflicts": false, + "allow_merge_commits": true, + "allow_rebase": true, + "allow_rebase_explicit": true, + "allow_squash_merge": true, + "default_merge_style": "merge", + "avatar_url": "", + "internal": false, + "mirror_interval": "", + "mirror_updated": "0001-01-01T00:00:00Z", + "repo_transfer": null + } + }, + "head": { + "label": "feat-remove-logo", + "ref": "feat-remove-logo", + "sha": "41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "repo_id": 2, + "repo": { + "id": 2, + "owner": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "name": "toonpets.corneruniverse.com", + "full_name": "diegovester/toonpets.corneruniverse.com", + "description": "Website for toonpets", + "empty": false, + "private": false, + "fork": false, + "template": false, + "parent": null, + "mirror": false, + "size": 565, + "html_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com", + "ssh_url": "git@git.corneruniverse.com:diegovester/toonpets.corneruniverse.com.git", + "clone_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com.git", + "original_url": "", + "website": "", + "stars_count": 0, + "forks_count": 0, + "watchers_count": 1, + "open_issues_count": 0, + "open_pr_counter": 1, + "release_counter": 0, + "default_branch": "main", + "archived": false, + "created_at": "2026-01-17T17:53:48Z", + "updated_at": "2026-01-23T17:45:10Z", + "permissions": { + "admin": false, + "push": false, + "pull": true + }, + "has_issues": true, + "internal_tracker": { + "enable_time_tracker": true, + "allow_only_contributors_to_track_time": true, + "enable_issue_dependencies": true + }, + "has_wiki": true, + "has_pull_requests": true, + "has_projects": true, + "ignore_whitespace_conflicts": false, + "allow_merge_commits": true, + "allow_rebase": true, + "allow_rebase_explicit": true, + "allow_squash_merge": true, + "default_merge_style": "merge", + "avatar_url": "", + "internal": false, + "mirror_interval": "", + "mirror_updated": "0001-01-01T00:00:00Z", + "repo_transfer": null + } + }, + "merge_base": "5d19f889dbb6156b3835f990d6b2d4dedb25b444", + "due_date": null, + "created_at": "2026-01-23T16:49:19Z", + "updated_at": "2026-01-23T17:45:11Z", + "closed_at": null + }, + "repository": { + "id": 2, + "owner": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "name": "toonpets.corneruniverse.com", + "full_name": "diegovester/toonpets.corneruniverse.com", + "description": "Website for toonpets", + "empty": false, + "private": false, + "fork": false, + "template": false, + "parent": null, + "mirror": false, + "size": 565, + "html_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com", + "ssh_url": "git@git.corneruniverse.com:diegovester/toonpets.corneruniverse.com.git", + "clone_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com.git", + "original_url": "", + "website": "", + "stars_count": 0, + "forks_count": 0, + "watchers_count": 1, + "open_issues_count": 0, + "open_pr_counter": 1, + "release_counter": 0, + "default_branch": "main", + "archived": false, + "created_at": "2026-01-17T17:53:48Z", + "updated_at": "2026-01-23T17:49:31Z", + "permissions": { + "admin": false, + "push": false, + "pull": false + }, + "has_issues": true, + "internal_tracker": { + "enable_time_tracker": true, + "allow_only_contributors_to_track_time": true, + "enable_issue_dependencies": true + }, + "has_wiki": true, + "has_pull_requests": true, + "has_projects": true, + "ignore_whitespace_conflicts": false, + "allow_merge_commits": true, + "allow_rebase": true, + "allow_rebase_explicit": true, + "allow_squash_merge": true, + "default_merge_style": "merge", + "avatar_url": "", + "internal": false, + "mirror_interval": "", + "mirror_updated": "0001-01-01T00:00:00Z", + "repo_transfer": null + }, + "sender": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "review": null +} + +Response 0 +Headers +Body +Delivery: Post "https://agent.corneruniverse.com/api/webhook/preview": context deadline exceeded (Client.Timeout exceeded while awaiting headers) diff --git a/docs/debugging/01-23-2026/webhook deliveries/delivery2.txt b/docs/debugging/01-23-2026/webhook deliveries/delivery2.txt new file mode 100644 index 0000000..df0f8bc --- /dev/null +++ b/docs/debugging/01-23-2026/webhook deliveries/delivery2.txt @@ -0,0 +1,215 @@ +fef3da0e-3271-425e-9cd8-c4f1bd9db8cd +2026-01-23 17:49:32 UTC + +Request +Headers +Request URL: https://agent.corneruniverse.com/api/webhook/preview +Request method: POST +Content-Type: application/json +X-GitHub-Delivery: 98bf8bf6-3128-40ca-9a0d-ec9a67254c9a +X-GitHub-Event: push +X-GitHub-Event-Type: push +X-Gitea-Delivery: 98bf8bf6-3128-40ca-9a0d-ec9a67254c9a +X-Gitea-Event: push +X-Gitea-Event-Type: push +X-Gitea-Signature: +X-Gogs-Delivery: 98bf8bf6-3128-40ca-9a0d-ec9a67254c9a +X-Gogs-Event: push +X-Gogs-Event-Type: push +X-Gogs-Signature: +X-Hub-Signature: sha1= +X-Hub-Signature-256: sha256= + +Content +{ + "ref": "refs/heads/feat-remove-logo", + "before": "6d482c6723cef2092475a28618c4303117fe35f1", + "after": "41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "compare_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/compare/6d482c6723cef2092475a28618c4303117fe35f1...41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "commits": [ + { + "id": "41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "message": "Trigger preview build 3\n", + "url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/commit/41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "author": { + "name": "Diego Vester", + "email": "diego@corneruniverse.com", + "username": "" + }, + "committer": { + "name": "Diego Vester", + "email": "diego@corneruniverse.com", + "username": "" + }, + "verification": null, + "timestamp": "2026-01-23T11:49:06-06:00", + "added": [], + "removed": [], + "modified": [ + "src/App.vue" + ] + } + ], + "head_commit": { + "id": "41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "message": "Trigger preview build 3\n", + "url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com/commit/41e2080b51c39dc9bda1a9dffbbcb9317b4466e0", + "author": { + "name": "Diego Vester", + "email": "diego@corneruniverse.com", + "username": "" + }, + "committer": { + "name": "Diego Vester", + "email": "diego@corneruniverse.com", + "username": "" + }, + "verification": null, + "timestamp": "2026-01-23T11:49:06-06:00", + "added": [], + "removed": [], + "modified": [ + "src/App.vue" + ] + }, + "repository": { + "id": 2, + "owner": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "name": "toonpets.corneruniverse.com", + "full_name": "diegovester/toonpets.corneruniverse.com", + "description": "Website for toonpets", + "empty": false, + "private": false, + "fork": false, + "template": false, + "parent": null, + "mirror": false, + "size": 565, + "html_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com", + "ssh_url": "git@git.corneruniverse.com:diegovester/toonpets.corneruniverse.com.git", + "clone_url": "https://git.corneruniverse.com/diegovester/toonpets.corneruniverse.com.git", + "original_url": "", + "website": "", + "stars_count": 0, + "forks_count": 0, + "watchers_count": 1, + "open_issues_count": 0, + "open_pr_counter": 1, + "release_counter": 0, + "default_branch": "main", + "archived": false, + "created_at": "2026-01-17T17:53:48Z", + "updated_at": "2026-01-23T17:45:10Z", + "permissions": { + "admin": true, + "push": true, + "pull": true + }, + "has_issues": true, + "internal_tracker": { + "enable_time_tracker": true, + "allow_only_contributors_to_track_time": true, + "enable_issue_dependencies": true + }, + "has_wiki": true, + "has_pull_requests": true, + "has_projects": true, + "ignore_whitespace_conflicts": false, + "allow_merge_commits": true, + "allow_rebase": true, + "allow_rebase_explicit": true, + "allow_squash_merge": true, + "default_merge_style": "merge", + "avatar_url": "", + "internal": false, + "mirror_interval": "", + "mirror_updated": "0001-01-01T00:00:00Z", + "repo_transfer": null + }, + "pusher": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + }, + "sender": { + "id": 1, + "login": "diegovester", + "full_name": "Diego Vester", + "email": "diego.vester@proton.me", + "avatar_url": "https://git.corneruniverse.com/avatar/7a562028261600667ea49909bdcba82e", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2026-01-17T16:22:36Z", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "diegovester" + } +} + +Response 200 +Headers +Access-Control-Allow-Credentials: true +Access-Control-Allow-Origin: https://agent.corneruniverse.com +Alt-Svc: h3=":443"; ma=86400 +Cf-Cache-Status: DYNAMIC +Cf-Ray: 9c2920d30d9d1949-SJC +Connection: keep-alive +Content-Type: application/json; charset=utf-8 +Date: Fri, 23 Jan 2026 17:49:32 GMT +Etag: W/"10-iE7in/+tnM3e/lfUEfxhgtTIdgI" +Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800} +Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=o8DRWpV5blld%2FPKubaRZYkbUOKZoqMkPNFTwtydgXfcTGOwmGWSt0x4xFE59t3cEGqinZvC%2F9mcgiMcdJ86iPl8VVlJQ34EG2pCu7j7hy0np9OXiWls7xw%3D%3D"}]} +Server: cloudflare +Server-Timing: cfCacheStatus;desc="DYNAMIC",cfEdge;dur=6,cfOrigin;dur=39 +Vary: Origin +X-Powered-By: Express + +Body +{"ignored":true} \ No newline at end of file