@kurtbruns/kestrel 1.21.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -1
- package/dist/public/dashboard/app.js +252 -252
- package/dist/public/dashboard/app.js.map +3 -3
- package/dist/public/dashboard/index.html +2 -2
- package/dist/public/dashboard/styles.css +64 -22
- package/dist/worker/index.js +117 -25
- package/docs/guides/07-upgrade.md +11 -9
- package/docs/publishing/06-troubleshooting.md +1 -0
- package/package.json +1 -1
- package/packages/kestrel/lib/oauth.mjs +6 -5
- package/template/claude/skills/upgrade/SKILL.md +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,27 @@ To move a running instance from one version to another, follow [Upgrade to a new
|
|
|
10
10
|
|
|
11
11
|
<!-- Add entries under Added / Changed / Fixed / Breaking. One operator-facing line each; see .claude/rules/changelog.md. Upgrade steps (a migration, a new setting) go once, in the Upgrading paragraph, never on an entry. -->
|
|
12
12
|
|
|
13
|
+
## [1.22.0] - 2026-11-06
|
|
14
|
+
|
|
15
|
+
**Upgrading from 1.21.0.** No database migrations, so `npm run sync-migrations` brings in nothing and there's nothing to apply. In your instance's repository, start with nothing uncommitted, as [Upgrade to a new release](https://github.com/kurtbruns/kestrel/blob/v1.21.0/docs/guides/07-upgrade.md) says, and install the release with `npm install @kurtbruns/kestrel@1.22.0`. This release's gate before the first change arrives with that install, so it first applies to your next upgrade. This one starts on the guide and skill you have now. Once installed, the new guide's first section asks for a clean repository, which the install has just changed, so carry on from the step after the install, where the steps are the ones you had. Run `npm run check-context`: this release changes one file of the operator's Claude context, the upgrade skill, whose change bears on safety, since it now has Claude stop until `git status` lists nothing and ask for a go-ahead before any change, and a copy you've edited is merged by hand. Then run `npm run typecheck`, commit the upgrade, note a restore point, and deploy with `npx wrangler deploy --env production`, as the guide lays out.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Each section's title in Settings is now a link to that section's address, so you can copy a link to a section and send it to someone else.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Upgrade to a new release now requires a clean repository before any change, and leaves how to get there to you, since the check used to sit among the install's steps, where Claude could see something uncommitted and install anyway. In the operator's Claude context, a change that bears on safety, the upgrade skill (`template/claude/skills/upgrade/SKILL.md`) has Claude stop until `git status` lists nothing, then name what the upgrade involves and ask whether to go ahead.
|
|
24
|
+
- The Template page's sample email no longer sits on a gray stage with rounded corners and a shadow, which read as though an email arrives as a card. It and Settings' sample now have the real email's margins, and its width toggle reads Desktop | Phone, as Reader pages' does, in place of 640 / 375.
|
|
25
|
+
- Troubleshooting now covers `claude mcp login` failing with `Dynamic Client Registration rejected (HTTP 404)`: nothing on the instance is wrong, and signing in through `/mcp` inside Claude Code connects.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- A reader who opens a public address that doesn't exist now gets a "No page here" page in the publication's own look with a 404, not raw JSON. You can see it under Settings → Reader pages. A public page's address now works with a trailing slash, so a shared `/subscribe/` opens the subscribe page. `/api` paths, and anything that doesn't ask for a page, still answer JSON.
|
|
30
|
+
- The editor on a deployed instance no longer sends a request for a local development token that the instance can't answer, so a load no longer adds that error to its console.
|
|
31
|
+
- A WebP post image now gets its width and height, so its email states a size as a PNG's or JPEG's does; one uploaded earlier has none until it's deleted and uploaded again. A post image whose file says it has no size is refused with a message saying to export it again, where it used to answer a server error or be stored and not load (SPEC §4).
|
|
32
|
+
- The link icon beside a heading in the API reference now shows in dark mode, where it was black on a near-black page.
|
|
33
|
+
|
|
13
34
|
## [1.21.0] - 2026-11-06
|
|
14
35
|
|
|
15
36
|
**Upgrading from 1.20.0.** No database migrations, so `npm run sync-migrations` brings in nothing and there's nothing to apply. In your instance's repository, start with nothing uncommitted, as [Upgrade to a new release](https://github.com/kurtbruns/kestrel/blob/v1.21.0/docs/guides/07-upgrade.md) now says, and install the release with `npm install @kurtbruns/kestrel@1.21.0`. If your `package.json` holds wrangler below 4.156.0, with an exact version or a `~` range, npm refuses that with `ERESOLVE`, so run `npm install @kurtbruns/kestrel@1.21.0 "wrangler@^4.156.0"` instead. Run `npm run check-context`: this release changes two files of the operator's Claude context, `CLAUDE.md` and the upgrade skill, the skill's change bearing on safety, and a copy you've edited is merged by hand. If a script of yours uploads images or a logo, make it send each file's real type and a name that matches it before you deploy (see Breaking). Then run `npm run typecheck`, commit the upgrade, note a restore point, and deploy with `npx wrangler deploy --env production`, as the guide lays out. If you alert on `error` in your logs, alert on `d1.unavailable` repeating as well, since a database outage can now show only as that warning. If you use Claude Code, update it to v2.1.172 or later, or its changes read "via the Kestrel CLI" and the dashboard can stop saying Claude is connected.
|
|
@@ -797,7 +818,8 @@ The first tagged release: a self-contained newsletter app on a Cloudflare Worker
|
|
|
797
818
|
- A build-version stamp: every instance reports its version, commit, and build time, read-only in the editor and at `GET /api/version`.
|
|
798
819
|
- This changelog and a semantic-versioning release process.
|
|
799
820
|
|
|
800
|
-
[Unreleased]: https://github.com/kurtbruns/kestrel/compare/v1.
|
|
821
|
+
[Unreleased]: https://github.com/kurtbruns/kestrel/compare/v1.22.0...HEAD
|
|
822
|
+
[1.22.0]: https://github.com/kurtbruns/kestrel/releases/tag/v1.22.0
|
|
801
823
|
[1.21.0]: https://github.com/kurtbruns/kestrel/releases/tag/v1.21.0
|
|
802
824
|
[1.20.0]: https://github.com/kurtbruns/kestrel/releases/tag/v1.20.0
|
|
803
825
|
[1.19.0]: https://github.com/kurtbruns/kestrel/releases/tag/v1.19.0
|