ci: pin tooling and streamline verified builds - #86
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 13, 2026, 2:55 AM ET / 06:55 UTC. ClawSweeper reviewWhat this changesPins build tooling and GitHub Actions, removes duplicate Swift test execution, adds coverage-calculation tests, and checks the universal CLI alongside explicit CodeQL scans. Merge readiness✅ Ready for maintainer review The PR remains useful: current main still runs duplicate developer test passes and lacks the proposed tooling pins and explicit CodeQL workflow. No blocking patch defect was found. The collaborator-authored PR is also exempt from automatic closure. Priority: P3 Review scores
Verification
How this fits togetherremindctl’s developer and CI workflows turn Swift source into a macOS command-line app and build its documentation. Coverage checks, artifact checks, and security scans validate those outputs before release. flowchart TD
A[Source changes] --> B[Pinned build tooling]
B --> C[Swift tests and coverage gate]
B --> D[Universal macOS build]
D --> E[Native CLI smoke checks]
A --> F[CodeQL language scans]
B --> G[Documentation site]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep one coverage-enabled developer test pass, preserve both release architectures, and use the versioned three-language CodeQL workflow with successful checks as the landing gate. Do we have a high-confidence way to reproduce the issue? Not applicable as a product bug reproduction; current-main source directly establishes the duplicate test invocations, and no introduced failure was identified. Is this the best way to solve the issue? Yes. Reusing the existing coverage gate and universal packaging path is a focused approach, and the extracted calculator preserves the previous behavior. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 3734cbe9d09b. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
Developer checks built and ran the Swift suite twice, and CI inherited the runner's old default Xcode. Pin Xcode 26.0.1 (Swift 6.2, the documented source floor), Node 26.8.2 and pnpm 12.4.1, pin Actions to verified release commits, and run the existing coverage suite once. The universal build still compiles arm64 and x86_64; a native CLI smoke test replaces the redundant extra release build.
Extract the existing weighted coverage calculation into a Python script, retain its 90% threshold and include/exclude overrides, and test threshold, weighting and empty-scope failures. SwiftPM supplies the exact report path instead of a filesystem search. The docs Pages workflow tracks the Node pin.
Replace automatic CodeQL build discovery with an explicit Swift build after dependency resolution, using the same default queries and all existing language scans (Swift, JavaScript/TypeScript, Actions). The baseline automatic scan spent almost eight minutes before fetching dependencies and about fifteen minutes overall. The repository's default-setup setting will be replaced by this versioned workflow; no security language or query suite is removed.
Dependency audit: Commander 0.2.4 is already latest (July 15). Node 26.8.2 (September 9), pnpm 12.4.1 (September 10, 17:06 UTC), checkout 7.0.1, setup-node 7.0.0, configure-pages 6.0.0, upload-pages-artifact 5.0.0, deploy-pages 5.0.1 and CodeQL Action 4.38.0 all predate the 48-hour cutoff. The existing app-token 3.2.0 SHA is current. No product version or platform floor changes.
Local validation:
make checkpasses strict Swift/shell/workflow lint, all 92 Swift tests and three independent coverage-gate tests; RemindCore coverage is 94.0% (958/1019).make build,make docs-site,make release-harness, andpnpm install --lockfile-onlypass. The pinned package manager reports 12.4.1. Local builds used the available Swift 6.4 compiler in Swift 6 language mode; CI explicitly exercises the documented Swift 6.2 toolchain.Live proof: the rebuilt CLI passed synthetic EventKit create/read/edit/all output modes/complete/delete checks, including read/write snapshot equality and alarm preservation. The disposable list was deleted.
Isolated Codex autoreview is scoped-clean through P2. Default CodeQL setup is switched off in favor of the reviewed advanced workflow in this PR; merging requires successful exact-head scans for all three languages.
The pinned pnpm CLI rejects the legacy global
-salias. Internal script calls now use its supportedpnpm run --reporter=silentsyntax; frozen installation and the realpnpm checkpath pass, including all tests and the unchanged 94.0% coverage result. This compatibility follow-up also passed isolated P2 autoreview.