Skip to content

ci: move macOS validation to Xcode 27 - #107

Merged
steipete merged 1 commit into
mainfrom
ci/macos-27-s17
Oct 19, 2026
Merged

steipete merged 1 commit into
mainfrom
ci/macos-27-s17

Conversation

@steipete

Copy link
Copy Markdown
Collaborator

Move normal CI and repo-local release runner inputs from macos-26 to xcode-27. Keep Swift CodeQL on macos-26 with the documented tracing exception. Preserve the macOS 14 deployment target, remove the stale Xcode 26 discovery override, and verify the universal CLI natively and under Rosetta. The shared release workflow remains at @v1 and is maintained centrally.

Also consolidate the verified fix from #106 by @goutamadwant: an out-of-range numeric token such as 4553 can identify its unique reminder ID prefix. In-range indexes still take precedence, and unmatched numeric inputs retain their existing error. Add the regression tests, command documentation and changelog credit.

Validation: the new numeric-prefix test failed on fresh main with invalidIdentifier("4553"); all 12 focused ID resolver tests pass with the fix. Strict Swift format/SwiftLint, shell/workflow lint, all four release-caller tests and the credential-free release harness pass. Independent review found no actionable P0–P2 findings. Full coverage and universal artifact checks run in PR CI; merged-main CI and the release dry run are required before completion. No real Reminders access, versions, tags or releases are involved.

Preserve the macOS 14 deployment target and selected release toolchain, verify Intel execution through Rosetta, and retain the CodeQL Swift exception.

Include the reproduced numeric reminder ID prefix fix while preserving valid index precedence and unmatched numeric errors.

Co-authored-by: goutamadwant <workwithgoutam@gmail.com>
@clawsweeper

clawsweeper Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T11:54:14.095016Z 95d2542 PR opened
ℹ️ 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.

@clawsweeper clawsweeper Bot added clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. labels Oct 19, 2026
@clawsweeper

clawsweeper Bot commented Oct 19, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge.

What this changes

This PR moves macOS validation to Xcode 27 and lets out-of-range numeric reminder identifiers fall back to ID-prefix matching.

Example: The current view has fewer than 4553 reminders and includes ID 45534C82-FE4E-4C30-ABE1-2243ED31ACC8.

  • Before: remindctl info 4553 reports an invalid identifier.
  • After: The command selects that reminder when the prefix is unique; valid numeric indexes retain precedence.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) Useful, focused changes with successful exact-head build validation and no concrete finding; numeric-prefix behavior has limited end-to-end evidence.
Proof confidence 🦐 gold shrimp (3/6) This collaborator-authored PR is outside the ordinary contributor proof gate: exact-head CI verifies the Xcode 27 build and both CLI architecture smoke checks, while numeric-prefix evidence is limited to reported focused tests; artifact-host restrictions prevented reading CI logs.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Maintenance · Worth it: Yes · Fix scope: Complete
User problem: Users cannot target reminders by an all-digit ID prefix outside the numeric view, and local release setup still forces the older toolchain.
Reason: The maintainer-authored direction repairs a concrete shared-resolver defect and aligns repository settings with the centrally maintained release workflow without adding configuration or another owner.

Merge readiness

✅ Ready for maintainer review

Keep open: this maintainer-authored PR contains a useful resolver repair and toolchain alignment absent from main; no actionable introduced defect was found.

Priority: P2
Reviewed head: 95d2542887b089c0caae8763e013cde7ac11a2f3

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: No supplied macOS CLI run exercises numeric-prefix resolution against actual reminders; the PR reports the regression failing on main and passing after the fix.
Agent review details

How this fits together

GitHub workflows build and verify the universal macOS CLI; reminder commands pass user identifiers and accessible EventKit reminders through one shared resolver before displaying or changing targets.

flowchart TD
  A[GitHub workflows] --> B[Universal macOS CLI]
  B --> C[Reminder commands]
  D[Accessible EventKit reminders] --> E[Shared identifier resolver]
  C --> E
  E --> F[Display or reminder operation]
Loading

Technical review

Best possible solution:

Retain the shared resolver repair and local toolchain alignment while leaving signing and independent release verification with the existing shared workflow.

Do we have a high-confidence way to reproduce the issue?

Current-main source deterministically rejects 4553 before prefix matching when the numeric view is smaller than 4553, matching the concrete report; this review ran no target code.

Is this the best way to solve the issue?

The resolver change uses the existing matcher, preserves bounds-before-subtraction safety, valid-index precedence, ambiguity rejection, and deduplication, while the runner changes match the shared release contract.

AGENTS.md: not found in the target repository.

Codex review notes: model internal, reasoning medium; reviewed against e66180d4ba05.

Provenance checked

  • Numeric identifier rejection changes intended behavior with a stated reason (d8f9510: The original resolver interpreted integers as indexes before matching prefixes; this PR explains the reported failure that warrants extending the fallback.)
  • Numeric bounds and unique targets keeps the original intent (fix: validate reminder indexes and honor parsing time zones #87: Bounds validation before subtraction prevents integer overflow; the later deduplication repair in fix: deduplicate reminder targets before delete and complete #98 preserves unique targets and validates every input.)
  • CI toolchain selection changes intended behavior with a stated reason (ci: update Swift builds to Xcode 26.6 #89: The earlier migration selected then-stable Xcode 26.6 while Xcode 27 was preview; this maintainer-authored change explicitly selects Xcode 27 and retains the CodeQL exception.)
  • Release build adapter and verification ownership changes intended behavior with a stated reason (ci: adopt shared Swift CLI release workflow #103: The adapter supplied a universal binary to the shared workflow while forcing Xcode 26 discovery; removing that override lets the selected runner toolchain operate while preserving shared signing and verification ownership.)

Testing

Proof path: shipped entry point.

Security

None.

Evidence

What I checked:

Likely related people:

  • Sebastien Tardif: Raw commit dc9fbe4 adds Sources/RemindCore/IDResolver.swift:16 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: dc9fbe4751aa; files: Sources/RemindCore/IDResolver.swift)

Root-cause cluster

Relationship: fixed_by_candidate
Canonical: #105
Summary: The numeric-prefix portion implements the canonical report and consolidates the existing contributor PR; the toolchain migration is separate work.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Labels

Label changes:

  • add P2: Numeric reminder prefixes fail for a limited input class, with longer identifiers available as a workaround; the accompanying toolchain migration is routine maintenance.
  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P2: Numeric reminder prefixes fail for a limited input class, with longer identifiers available as a workaround; the accompanying toolchain migration is routine maintenance.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Record a macOS CLI run resolving a numeric prefix to the intended reminder through info and complete --dry-run, with valid-index precedence retained.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed October 19, 2026, 8:05 AM ET / 12:05 UTC.

@steipete
steipete merged commit f4ef24b into main Oct 19, 2026
14 checks passed
@steipete
steipete deleted the ci/macos-27-s17 branch October 19, 2026 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant