Repository navigation
Release v2.5.0 - #285
Merged
Merged
Release v2.5.0#285
Conversation
- pnpm 12 with no overrides; Vite 8 removes esbuild and the placeholder build-script setting, and the source-map-js advisory is fixed in the lockfile - current Biome, Vitest, Rolldown, Knip, Playwright and @types/node; exact pins - load .env with process.loadEnvFile instead of dotenv - type-check library sources without ambient Node.js types - GitHub Actions checkout/setup-node v7 and pnpm/action-setup v6, Node.js 26 in CI, Node 18/20 runtime checks without pnpm, and no unused npm token in the trusted-publishing release job
createCalendarObject and createVCard resolved `filename` as a relative URL, so `urn:uuid:1.ics` became its own URL scheme, `#` and `?` truncated the name, and `/x.ics` or `../x.ics` wrote outside the collection. Treat the filename as one path segment: percent-encode characters with URL meaning while keeping existing escapes, and reject names that are not a segment.
A server that no longer accepts a sync token fails the DAV:valid-sync-token precondition (RFC 6578 §3.2), which made smartCollectionSync and syncCalendars throw. Retry once from an empty token, and diff an initial sync as a full listing so local objects it omits are reported as deleted.
Servers may answer `a@b.ics` with `a%40b.ics`, which made object fetches fail as incomplete and principal URLs with email addresses stop matching. Normalize path-segment encoding in comparison keys and urlMatches only; request URLs are unchanged.
Refresh access tokens a minute early so they cannot expire mid-request, and accept `expires_in` as a numeric string, which previously left no expiration and refreshed on every request. Also covers fetching objects whose hrefs differ only in percent-encoding.
- Astro 7, Starlight 0.42, @astrojs/react 7, TypeScript 7; @astrojs/mdx now comes with Starlight - move `social` to the array form and wrap the autogenerated sidebar group - recreate the calendar icon patch against Starlight's compiled icons - Starlight now styles in cascade layers, so drop custom card-grid and card declarations that never applied before, and keep the previous tab metrics, leaving every compared page visually unchanged
natelindev
had a problem deploying
to
Production
October 15, 2026 12:29 — with
GitHub Actions
Failure
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Vite 8 resolves the nearest tsconfig per file, so importing docs helpers in tests loaded docs/tsconfig.json, which extends the Astro preset that only the separate docs install provides. CI's library job failed on it; pin the root tsconfig as the esbuild tsconfigRaw setting did before.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Bug fixes
createCalendarObjectandcreateVCardnow keepfilenameinside the collection. Names such asurn:uuid:1.icsno longer parse as URL schemes,?/#no longer truncate the name, and existing percent-escapes are kept. Names containing/, or equal to.or.., now throw instead of writing outside the collection.DAV:valid-sync-token), the WebDAV sync restarts once from an empty token instead of failing. Local objects missing from an initial sync are now reported as deleted.a@b.icsvsa%40b.ics) now match. Previously, object fetches failed as "incomplete response" and principal URLs containing email addresses could fail to match.expires_insent as a numeric string is accepted. Before, those tokens were refreshed on every request.Tooling
dotenvreplaced byprocess.loadEnvFile, and a cleanpnpm audit.actions/checkoutandsetup-nodev7,pnpm/action-setupv6, and a Node.js 26 test job. The Node 18/20 runtime checks now run without pnpm, which needs Node 22+. The unusedNPM_TOKENreference is removed from the release job, which already publishes through trusted publishing.Test plan
lint,typecheck, unit tests (469), coverage thresholds, consumer types, docs examples, Knip🤖 Generated with Claude Code