| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6c1615de2390282582b75f59b84c9166a124df69","after":"277e16585374bda952ebbc5f98f28b24e856ad76","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/6c1615de2390282582b75f59b84c9166a124df69...277e16585374bda952ebbc5f98f28b24e856ad76","commits":[{"id":"277e16585374bda952ebbc5f98f28b24e856ad76","message":"docs(governance): record web Playwright e2e suite\n\nLog the scope, test discipline, verification runs (fresh self-managed\nstacks in dev and production-build mode, rebased onto main) and the\nremaining gaps of the new apps/web Playwright suite. Heavy-gate rows stay\n⚠️ 待复验 as already marked on main; no readiness claim is added.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/277e16585374bda952ebbc5f98f28b24e856ad76","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T08:35:25-07:00","added":["docs/governance/log/2026-09-08-web-playwright-e2e.md"],"removed":[],"modified":[]},{"id":"8d79cf1b5abccfc018e1e02f409f4a2ed5a10f97","message":"test(web): add Playwright end-to-end suite\n\n86 browser and HTTP tests for the workbench, split into onboarding (tenant\nbootstrap), desktop, mobile and api projects. The suite drives the real\nWeb BFF, NestJS API, PostgreSQL, Redis and creative worker; the model sidecar\npoints at an unreachable port so tests assert honest BLOCKED/FAILED states\ninstead of fabricated success. Each test also fails on uncaught page errors\nand unexpected console errors.\n\nThe config manages an isolated stack by default (build API, migrate, start\nAPI + creative worker, start Next in dev or production mode) or reuses a\nrunning stack via E2E_BASE_URL / E2E_API_URL / E2E_TENANT_ID.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8d79cf1b5abccfc018e1e02f409f4a2ed5a10f97","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T08:24:18-07:00","added":["apps/web/e2e/README.md","apps/web/e2e/global-setup.ts","apps/web/e2e/onboarding.setup.ts","apps/web/e2e/specs/admin.spec.ts","apps/web/e2e/specs/bff-security.api.spec.ts","apps/web/e2e/specs/brand.spec.ts","apps/web/e2e/specs/content-studio.spec.ts","apps/web/e2e/specs/create-studio.spec.ts","apps/web/e2e/specs/creative-project.spec.ts","apps/web/e2e/specs/edit-studio.spec.ts","apps/web/e2e/specs/landing.spec.ts","apps/web/e2e/specs/navigation.spec.ts","apps/web/e2e/specs/production.spec.ts","apps/web/e2e/specs/script-storyboard.spec.ts","apps/web/e2e/specs/templates.spec.ts","apps/web/e2e/specs/workspace.mobile.spec.ts","apps/web/e2e/stack/api.mjs","apps/web/e2e/stack/shared.mjs","apps/web/e2e/stack/web.mjs","apps/web/e2e/support/api.ts","apps/web/e2e/support/env.ts","apps/web/e2e/support/fixtures.ts","apps/web/e2e/support/workspace.ts","apps/web/playwright.config.ts"],"removed":[],"modified":[]},{"id":"60648fbe143ff1dbc2b0d145ae1a8c87774ca625","message":"chore(web): add @playwright/test and e2e scripts\n\nAdd @playwright/test@1.62.1 as a web devDependency (matching the local runner\nfallback version), register `e2e` scripts at the root and in apps/web, include\ne2e/** and playwright.config.ts in the web typecheck, give the stack launcher\nscripts Node globals in ESLint, and ignore Playwright output directories.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/60648fbe143ff1dbc2b0d145ae1a8c87774ca625","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T08:24:17-07:00","added":[],"removed":[],"modified":["apps/web/.gitignore","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/tsconfig.json","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"277e16585374bda952ebbc5f98f28b24e856ad76","message":"docs(governance): record web Playwright e2e suite\n\nLog the scope, test discipline, verification runs (fresh self-managed\nstacks in dev and production-build mode, rebased onto main) and the\nremaining gaps of the new apps/web Playwright suite. Heavy-gate rows stay\n⚠️ 待复验 as already marked on main; no readiness claim is added.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/277e16585374bda952ebbc5f98f28b24e856ad76","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T08:35:25-07:00","added":["docs/governance/log/2026-09-08-web-playwright-e2e.md"],"removed":[],"modified":[]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":637278,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-08T23:36:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":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,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}... |