Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 46c4b3dd8b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ...(input.graph.serverSchedules?.length | ||
| ? { | ||
| schedules: input.graph.serverSchedules.map((task) => ({ ...task })), | ||
| } |
There was a problem hiding this comment.
Mark schedules unsupported for static deployments
When an otherwise static-compatible build contains a schedule, this adds it to output.server.schedules, but analyzeStaticDeploymentCompatibility() still checks only functions, routes, and server-rendered pages. Consequently createStaticDeploymentFiles() reports compatibility.complete: true even though a static host cannot execute the schedule, so deployments can silently omit every trigger. Add schedules to StaticDeploymentUnsupportedCapability and the compatibility check.
Useful? React with 👍 / 👎.
| } { | ||
| const schedules: ServerScheduleNode[] = []; | ||
| const diagnostics: Diagnostic[] = []; | ||
| if (!source.includes("defineSchedule")) return { schedules, diagnostics }; |
There was a problem hiding this comment.
Filter for schedule imports before parsing source files
Because discovery visits every source file, this substring check makes any file that merely mentions defineSchedule a parse target. An unreferenced work-in-progress file such as one containing a // defineSchedule example comment and incomplete syntax now produces a schedule parse diagnostic and fails every build, even though it neither imports the declaration API nor participates in the application graph. Restrict the prefilter to plausible imports from the supported schedule modules before treating parse failures as schedule diagnostics.
Useful? React with 👍 / 👎.
Summary
defineSchedule({ cron, id?, disable? }, handler)for server tasks declared under the fixedsrc/schedules/directory, with free filenames and nested directories and no central registry.ev schedule run <id>; ordinary development does not start periodic jobs.Changes
src/schedules/, enforce server boundaries, and carry task metadata through the core graph and deployment manifest. Declarations outside this directory are not registered; handlers can import ordinary business functions from other directories.runSchedule(taskId)bundle entry; support task-only applications and mixed HTTP/task builds.ev inspect.Validation
npm test -- --concurrency=1: 2,139 tests passed (17 tasks), including 894@evjs/evtests. Package tasks were serialized after a parallel run hit an existing config-helper test's 5-second timeout.npm run check-types, root test type checking,npm run lint, andgit diff --checkpassed.npm --workspace evjs-docs run build: English and Chinese builds passed.Risk / rollout
Reviewer notes