ci: publish PR web previews - #135
Conversation
| jobs: | ||
| deploy-preview: | ||
| name: Deploy web preview | ||
| if: github.event.pull_request.head.repo.full_name == github.repository |
There was a problem hiding this comment.
[P1] Do not unconditionally skip fork PRs if previews are meant for contributor PRs. This condition evaluates false for this PR (gac0812/Tfgxs), so the preview job is skipped entirely and no URL/QR comment is published. A fork-safe design needs to build without write credentials and perform the Pages update in a trusted follow-up job, or the preview contract should explicitly document that fork PRs are unsupported.
| status: Extract<ScheduleStatus, 'scheduled' | 'done'>, | ||
| ): Promise<ScheduleStatusUpdateResponse> { | ||
| const command: ScheduleStatusUpdateCommand = { | ||
| type: 'schedule.status.command', |
There was a problem hiding this comment.
[P1] This remote mutation is not handled by the current backend. main.py registers schedule.upsert.command, schedule.list.query, and schedule.deleted, but there is no schedule.status.command route/handler. Consequently, toggleDone sends this request through the real WebSocket and waits until the client timeout instead of changing the schedule; the fake server masks the mismatch in tests. Add the backend handler or use a protocol message that the backend actually supports.
Summary
Why
Reviewers need a directly accessible interface preview without installing the mobile toolchain. The preview is a static GitHub Pages deployment and uses the development in-process transport because Pages cannot host the persistent WebSocket backend.
Dependency