From 52d45ac00b04fd829b9b4a856c67546ce3ad6a33 Mon Sep 17 00:00:00 2001 From: Diego Vester Date: Fri, 23 Jan 2026 12:08:38 -0600 Subject: [PATCH] docs: add debugging notes for agent webhook --- .../01-23-2026/webhook deliveries/claude.txt | 14 + .../webhook deliveries/delivery1.txt | 341 ++++++++++++++++++ .../webhook deliveries/delivery2.txt | 215 +++++++++++ 3 files changed, 570 insertions(+) create mode 100644 docs/debugging/01-23-2026/webhook deliveries/claude.txt create mode 100644 docs/debugging/01-23-2026/webhook deliveries/delivery1.txt create mode 100644 docs/debugging/01-23-2026/webhook deliveries/delivery2.txt 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