GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix(coderd/schedule/cron): share schedule vectors, compare zone names without case by ThomasK33 · Pull Request #32087 · coder/coder

Conversation

@ThomasK33

@ThomasK33 ThomasK33 commented Nov 12, 2026

Copy link
Copy Markdown
Member

Why

The review of #32063 asked how the browser preview of an automation's next runs stays in agreement with the server (review, reply). The reviewer found that cron-parser accepts specs that Standard rejects, such as 0 9 * * 7, and resolves clock-change days in its own way. This adds the shared test vectors promised in that reply, plus two small fixes that the review of #32063 left open.

Part of CODAGT-1135.

What changed

  • testdata/standard_vectors.json lists specs that Standard accepts and rejects (each rejection has a short reason) and the runs that Next gives around clock changes in America/New_York, Europe/Berlin, Australia/Lord_Howe and Pacific/Chatham. Times are RFC 3339 with an offset. TestStandard_Vectors checks every entry against the code. A test of the preview can read the same file, so a difference between the two fails CI on one side. The file holds the reviewer's cases: 0 9 * * 7, 0 9 L * *, 0 9 * * 1#2 and 0 0 9 * * * are rejected, 30 2 * * * on 2026-03-08 runs at 03:00 EDT, and */15 * * * * on 2026-11-01 runs at 01:45 EDT and then 02:00 EST. The run entries replace the table of TestStandard_Next_DST (same values, now read from the file).
  • Standard compares the zone name rules posix, right, Local, localtime, posixrules and Factory without letter case. A host with a case-insensitive file system could load factory as the file Factory. New table cases cover factory, LOCAL, LOCALTIME, POSIX/UTC and Right/UTC.
  • A test comment said that six zones changed at 15:33:32 like Juneau. They changed at other times with seconds. The comment now says so.

Scope

Next and MinInterval do not change, and neither does the syntax that Standard accepts: widening it (for example 7 for Sunday) is a product decision for the RFC. No new API and no frontend.

Tradeoffs

  • The file ties the preview to every entry in it. That is its purpose.
  • reason is for a person. The test checks that a rejected spec has one, not its text, so rewording a Go error does not change the contract.
  • The file has no comment because JSON has none. The test's doc comment says what the file is for.

Live check

None: a library change with no caller yet.


Generated with xum • Model: anthropic:claude-sonnet-5-5 • Thinking: xhigh

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
ThomasK33 added 4 commits November 12, 2026 14:01
@ThomasK33
fix(coderd/schedule/cron): compare zone rule names without letter case
5552a26
A host with a case-insensitive file system loads "factory" as the file
"Factory", so the exact-case checks in Standard let it through. Compare
posix, right, Local, localtime, posixrules and Factory with
strings.EqualFold, and add table cases for factory, LOCAL, LOCALTIME,
POSIX/UTC and Right/UTC.

Part of CODAGT-1135.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-sonnet-5-5` • Thinking: `xhigh`_
@ThomasK33
test(coderd/schedule/cron): add shared schedule vectors for Standard
adf067c
testdata/standard_vectors.json lists specs that Standard accepts and
rejects, and the runs that Next gives around daylight saving changes.
It is the contract for a browser preview of a schedule: a test of the
preview can read the same file, so a difference from the server fails
CI on one side.

The runs replace the rows of TestStandard_Next_DST, which proved the
same thing in Go, and add the review's America/New_York `*/15 * * * *`
case on 2026-11-01.

Part of CODAGT-1135.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-sonnet-5-5` • Thinking: `xhigh`_
@ThomasK33
test(coderd/schedule/cron): correct a comment on clock change times
bcfd9c3
The comment said that Adak, Anchorage, Atka, Metlakatla, Nome and
Yakutat changed at 15:33:32 like Juneau. They changed at other times
with seconds, and Next walks 1,441 readings in each of them.

Part of CODAGT-1135.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-sonnet-5-5` • Thinking: `xhigh`_
@ThomasK33
fix(coderd/schedule/cron): state the case rule without an unproven re…
1b8677d
…ason

Only the names in the posix, right and file lists need a case-insensitive
file system to be a risk. Local is not a file, so the Standard doc no
longer gives one reason for all six names. The reason moves to
containsFold.

Part of CODAGT-1135.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-sonnet-5-5` • Thinking: `xhigh`_
@ThomasK33

ThomasK33 commented Nov 12, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@linear-code

linear-code Bot commented Nov 12, 2026

Copy link
Copy Markdown

CODAGT-1135

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
ThomasK33 temporarily deployed to main November 12, 2026 14:19 — with GitHub Actions Inactive
@ThomasK33
ThomasK33 temporarily deployed to main November 12, 2026 14:19 — with GitHub Actions Inactive
@ThomasK33

ThomasK33 commented Nov 12, 2026

Copy link
Copy Markdown
Member Author

@codex security review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot assigned ThomasK33 Nov 12, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-12T14:22:13.930405Z 1b8677d Manual request
🔒 Security Review ✅ Completed 2026-11-12T14:22:05.197791Z 1b8677d Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 12, 2026

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: 1b8677de15

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 12, 2026

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 1b8677de15

ℹ️ 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".

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This branch was previously deployed

1 inactive deployment
main — 1b8677de Deployed Nov 12, 2026 by ThomasK33 via cla #254958
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@ThomasK33 ThomasK33

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@ThomasK33
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.