chore: sync Development → main (v1.3.5)#106
Conversation
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…pment/actions/checkout-6 Bump actions/checkout from 4 to 6
* chore: add Vitest unit tests for lib/birthdays and lib/occasions 57 tests covering date parsing, next-occurrence rollover, age calculation, money formatting, Easter algorithm, and occasion countdown logic. vitest.config.ts scopes coverage to the two tested files (85/80% thresholds). pr-checks.yml extended with a test+coverage step. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: bump CI Node version to 24 to match local npm 11 lockfile package-lock.json was generated by npm 11 (Node 24 local); npm 10 (Node 20 CI) rejects it with missing esbuild entries. Aligning CI to Node 24 resolves the npm ci lockfile sync error. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Pre-commit hook runs ESLint via lint-staged on staged ts/tsx files. Commit-msg hook validates Conventional Commits format via commitlint. prepare script ensures hooks install automatically after npm install. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Installs @sentry/nextjs and wires up client, server, and edge configs. All three Sentry env vars are optional; init is skipped when SENTRY_DSN is unset so self-hosters who don't want Sentry are unaffected. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Workflow triggers on Dependabot PRs only and calls gh pr merge --auto --squash for patch/minor bumps. Major bumps stay open for manual review. CI must pass before GitHub actions on the auto-merge flag. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Scans the app image after push using aquasecurity/trivy-action. Fails on CRITICAL severity CVEs with available fixes; uploads SARIF results to the GitHub Security tab on every run. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds deploy.resources.limits.memory to all four compose services: db 512m, migrate 256m, app 512m, cron 64m. Prevents OOM killer taking down Postgres on the Pi during memory pressure. Also passes SENTRY_DSN/ORG/PROJECT through to the app container. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GET /api/health returns {status:"ok"} with 200. docker-compose.yml
gains a healthcheck on the app service and upgrades the cron
depends_on condition to service_healthy, replacing the manual
readiness poll loop in the cron entrypoint.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…25-68121) (#91) * fix: bump trivy-action to v0.36.0 — 0.31.0 tag does not exist (#86) * fix: strip esbuild binaries from runner image to resolve CVE-2024-24790 and CVE-2025-68121 (#90)
next 15.2.9 → 15.5.18: fixes high severity SSRF, cache poisoning, HTTP request smuggling, DoS, and content injection CVEs. next-auth beta.25 → beta.31: fixes email misdelivery CVE. drizzle-kit 0.30.x → 0.31.10: reduces esbuild advisory surface. 6 moderate vulns remain in upstream transitive deps (unfixable). Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Cancels stale CI runs when new commits push to the same branch. Critical for docker-publish given the ~10 min multi-arch build time. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: add limit-severities-for-sarif to align Trivy exit code with CRITICAL-only scan * chore: add release helper workflow workflow_dispatch with tag/title/notes inputs that runs gh release create --latest. Keeps releases manual and phase-gated but removes the friction of remembering the exact CLI invocation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- package.json: 1.3.3 → 1.3.4 - CHANGELOG.md: archived 2026-05-06 and earlier entries to CHANGELOG-legacy.md
#102) * fix: upgrade Next.js, next-auth, drizzle-kit to resolve CVEs next 15.2.9 → 15.5.18: fixes high severity SSRF, cache poisoning, HTTP request smuggling, DoS, and content injection CVEs. next-auth beta.25 → beta.31: fixes email misdelivery CVE. drizzle-kit 0.30.x → 0.31.10: reduces esbuild advisory surface. 6 moderate vulns remain in upstream transitive deps (unfixable). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: force postcss >=8.5.10 via npm overrides to resolve Dependabot alert #10 Adds an npm overrides entry so Next.js's nested postcss@8.4.31 is replaced by the patched version. Bumps the direct devDep range to match. Closes #101. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: correct stale vulnerability count in CHANGELOG Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: resolve CHANGELOG merge conflict from rebase Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
….3.5 Also updates CHANGELOG entry to mention the version bump. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: add Release Please, Codecov, and Socket Security automation - Release Please workflow + config watches main branch for conventional commits and auto-opens versioning PRs (CHANGELOG + package.json bump) - Codecov upload step added to pr-checks.yml; lcov reporter added to vitest config so coverage/lcov.info is generated on each run - Socket Security is a GitHub App install (see issue #104 for link) Closes #104 * fix: pin GitHub Actions to full commit SHAs for supply-chain security
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
📝 WalkthroughWalkthroughPR introduces Release Please automation for Node releases, adds Codecov coverage tracking integration, updates package version to 1.3.5, enforces postcss ^8.5.10 via npm overrides to address Next.js nested vulnerability, and clarifies post-merge PR workflow handling for automated bot checks. ChangesRelease Automation Setup
Coverage Reporting Infrastructure
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related issues
Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull Request Overview
While this PR successfully implements security overrides for PostCSS and integrates Codecov, it contains a critical error in package-lock.json that will cause npm ci to fail due to version/integrity mismatches. Additionally, there is a systemic conflict between the new release-please automation and the existing manual workflow instructions.
Note: The PR description references Sentry error tracking, Docker healthchecks, and Vitest unit tests, but these files are missing from the current diff. These must be included or the description corrected before merging.
About this PR
- The PR description mentions including 'Sentry error tracking', 'Docker healthcheck', and 'Vitest unit tests', but the corresponding implementation files (e.g., Sentry config, healthcheck routes, or actual test files) are not present in this diff. Please verify if these were intended for this release.
Test suggestions
- Verify that the npm override forces 'postcss' to version ^8.5.10 globally.
- Ensure Vitest is configured to generate lcov reports for Codecov consumption.
- Validate the Codecov GitHub Action is correctly triggered in the CI check pipeline.
- Confirm Release Please configuration is valid for a Node.js project.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
| }, | ||
| "node_modules/error-ex": { | ||
| "version": "1.3.4", | ||
| "version": "1.3.5", |
There was a problem hiding this comment.
🔴 HIGH RISK
The version for error-ex was accidentally updated to 1.3.5, creating a mismatch with the resolved tarball version (1.3.4). This appears to be an accidental result of a global find-and-replace for the project version (1.3.4 -> 1.3.5). This mismatch will cause npm ci to fail with integrity errors.
| "version": "1.3.5", | |
| "version": "1.3.4", |
| @@ -0,0 +1,16 @@ | |||
| { | |||
There was a problem hiding this comment.
🟡 MEDIUM RISK
Suggestion: Introducing release-please conflicts with the established manual CHANGELOG format and the versioning workflow defined in .claude/memory/feedback_pr_workflow.md. Once active, release-please will attempt to manage these files automatically using its own standard format, which will overwrite your custom 'By/What/Why' metadata entries. You should update the project instructions to reflect the new automated process or remove the action to maintain manual control.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Summary
Syncs Development into main, bringing in all changes since the last Development → main merge.
Why
Routine sync to keep main up to date with infra/CI improvements that have been running on Development. No related feature issue — this is housekeeping.
Changes included in this diff
.github/workflows/release-please.yml,release-please-config.json,release-please-manifest.json)pr-checks.ymlupdated to run Vitest and upload coverage to Codecovvitest.config.tsupdated to emit lcov coverage reportpackage.jsonbumped to v1.3.5 with PostCSS XSS override (postcss@^8.5.10)CHANGELOG.mdupdated.claude/memory/feedback_pr_workflow.mdupdated (docs only)No release needed
Releases v1.3.3 → v1.3.5 have already been cut against the commits included here.
Test plan
npm cisucceeds after merge🤖 Generated with Claude Code