|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -All notable changes to Dispatch for Telex will be documented in this file. |
| 3 | +All notable changes to Dispatch for Telex will be documented here. |
4 | 4 |
|
5 | | -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
6 | | -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 5 | +--- |
7 | 6 |
|
8 | 7 | ## [Unreleased] |
9 | 8 |
|
| 9 | +--- |
| 10 | + |
10 | 11 | ## [1.0.1] — 2026-03-07 |
11 | 12 |
|
12 | | -### Changed |
13 | | - |
14 | | -- **UI consistency** — removed all `prefers-color-scheme: dark` overrides. The |
15 | | - plugin now unconditionally uses WP admin's light-mode design tokens so the UI |
16 | | - looks identical regardless of the OS theme setting. |
17 | | -- **Brand color** — primary accent is now wired to `--wp-admin-theme-color` so |
18 | | - buttons, focus rings, and tab underlines automatically match whatever admin |
19 | | - color scheme the user has selected in their profile. |
20 | | -- **"Connected" badge** — moved out of the `<h1>` into a flex row alongside it |
21 | | - so it sits cleanly on the same baseline instead of wrapping to a new line. |
22 | | - Colors updated to deep green on mint (`#166534` / `#dcfce7`, ~7:1 contrast). |
23 | | -- **Removed bulk-selection UI** — checkboxes and the bulk toolbar have been |
24 | | - removed. Projects now activate automatically on install. |
25 | | -- **Card redesign** — type-specific accent stripe on the card top border, |
26 | | - larger avatars, full-width primary action buttons, and a hover-revealed |
27 | | - "Edit in Telex" link. |
28 | | -- **Type badges** — fixed a flex-stretch bug that caused the badge to fill the |
29 | | - full card-header width; badges are now correctly pill-sized. |
| 13 | +A quick but meaningful polish pass. The plugin now looks and feels like it |
| 14 | +belongs in WordPress — clean, consistent, and readable no matter what color |
| 15 | +scheme you have set. |
| 16 | + |
| 17 | +### Cleaner UI |
| 18 | + |
| 19 | +- **Fits right into WP admin** — the plugin no longer tries to maintain its |
| 20 | + own dark mode. It uses WordPress's own design tokens throughout, so it looks |
| 21 | + consistent whether you're on a light scheme, a custom color palette, or |
| 22 | + anything in between. |
| 23 | +- **Your admin colors, everywhere** — buttons, focus rings, and tab underlines |
| 24 | + now automatically pick up whatever admin color scheme you've chosen in your |
| 25 | + profile. If you're a "Midnight" person, Dispatch is a "Midnight" plugin. |
| 26 | +- **Cards got a glow-up** — each project card now has a type-specific accent |
| 27 | + stripe at the top, a bigger avatar, and a full-width action button that's |
| 28 | + impossible to miss. The "Edit in Telex" link appears on hover so it's |
| 29 | + there when you need it without cluttering the default view. |
| 30 | +- **Simpler install flow** — checkboxes and bulk-action toolbars are gone. |
| 31 | + Projects activate automatically on install. One click, done. |
30 | 32 |
|
31 | 33 | ### Fixed |
32 | 34 |
|
33 | | -- Disconnected-badge text contrast raised above WCAG AA (was ~3.5:1, now ~5.8:1). |
| 35 | +- The "Connected" badge now sits inline next to the "Dispatch" heading |
| 36 | + instead of dropping to its own line. Small thing, but it bothered us too. |
| 37 | +- Badge contrast is now well above WCAG AA across all states — no more |
| 38 | + lime-green-on-white squinting. |
| 39 | +- Type badges ("BLOCK", "THEME") were accidentally stretching to fill the |
| 40 | + full card width. They're back to being tidy little pills. |
| 41 | + |
| 42 | +--- |
34 | 43 |
|
35 | 44 | ## [1.0.0] — 2026-03-06 |
36 | 45 |
|
37 | | -### Added |
38 | | - |
39 | | -- **Projects page** — searchable grid of all Telex blocks and themes with |
40 | | - one-click install, update, and remove actions. |
41 | | -- **OAuth 2.0 Device Authorization Grant** (RFC 8628) — connect to Telex |
42 | | - without entering credentials in the browser. The device flow UI is rendered |
43 | | - by a dedicated React component that piggybacks on WP Heartbeat for polling. |
44 | | -- **AES-256-GCM token encryption** — the bearer token is encrypted at rest |
45 | | - using a per-site key derived from `wp_salt('auth')`. |
46 | | -- **Native WordPress Updates integration** — installed Telex projects surface |
47 | | - on the standard Updates screen; plugin row notices appear when a newer build |
48 | | - is available. |
49 | | -- **WP-CLI commands** — `wp telex list|install|update|remove|connect|disconnect|circuit|cache`. |
50 | | -- **Site Health tests** — API reachability and circuit breaker status appear in |
51 | | - the Site Health Info and Status screens. |
52 | | -- **Audit log** — every install, update, remove, connect, and disconnect event |
53 | | - is persisted to a custom `{prefix}telex_audit_log` database table. |
54 | | -- **Audit log admin page** — read-only table view of recent security events, |
55 | | - accessible under the Telex menu. |
56 | | -- **Circuit breaker** — three-state transient-backed circuit breaker (CLOSED / |
57 | | - OPEN / HALF-OPEN) protects the site from cascading failures when the Telex |
58 | | - API is unavailable. |
59 | | -- **Stale-while-revalidate cache** — API responses are cached in WordPress |
60 | | - transients with a 5-minute freshness window and 24-hour stale fallback; |
61 | | - an hourly WP-Cron job warms the cache proactively. |
62 | | -- **SSRF protection** — the internal PSR-18 HTTP client enforces HTTPS-only |
63 | | - targets, maximum 3 redirects, and a 10 MB response cap. |
64 | | -- **Rate limiting** — per-user, per-action rate limits on all REST endpoints |
65 | | - that interact with the Telex API. |
66 | | -- **Multisite support** — menu registration uses `network_admin_menu` on |
67 | | - multisite installs. |
68 | | -- **Internationalization** — all strings are wrapped with `__()` / `_e()` / |
69 | | - `esc_html__()`. A `.pot` file is included; JS translation JSON is compiled |
70 | | - at build time via `wp i18n make-json`. |
71 | | -- **WordPress Playground blueprint** — `blueprint.json` lets anyone run the |
72 | | - plugin in a browser sandbox in seconds. |
73 | | -- **React admin UI** — the projects page and device-flow screens are React |
74 | | - applications built with `@wordpress/scripts` and `@wordpress/components`. |
75 | | -- **Security policy** — `SECURITY.md` documents the responsible disclosure |
76 | | - process and response timeline. |
77 | | - |
78 | | -### Security |
79 | | - |
80 | | -- Token stored as AES-256-GCM ciphertext; plaintext never written to |
81 | | - `wp_options`. |
82 | | -- All REST endpoints require authentication; unauthenticated requests receive |
83 | | - 401, unauthorized requests receive 403. |
84 | | -- `upgrader_source_selection` filter validates every package before it is |
85 | | - moved into the plugins/themes directory (ZipSlip + blocked-extension check). |
86 | | -- SHA-256 checksum verified for every downloaded build file. |
87 | | - |
88 | | -[Unreleased]: https://github.com/regionallyfamous/dispatch/compare/v1.0.0...HEAD |
| 46 | +This is it — Dispatch is here, and we're genuinely excited about it. ✨ |
| 47 | + |
| 48 | +The whole idea is simple: you built something great in Telex. Now get it onto |
| 49 | +your WordPress site without writing a deployment script, asking a developer, |
| 50 | +or ever opening a terminal. Dispatch handles everything. |
| 51 | + |
| 52 | +### What you get |
| 53 | + |
| 54 | +- **A beautiful projects screen** — every Telex block and theme you've built |
| 55 | + lives here, searchable, filterable by type, and ready to install with a |
| 56 | + single click. Updates show up automatically. Removing something is just |
| 57 | + as easy. |
| 58 | + |
| 59 | +- **Passwordless authentication** — connecting to Telex uses the |
| 60 | + [OAuth 2.0 Device Authorization Grant](https://www.rfc-editor.org/rfc/rfc8628) |
| 61 | + — the same flow as the GitHub CLI and AWS CLI. You get a short code, open a |
| 62 | + URL, sign in, and you're done. No API keys. No copy-pasting secrets. No |
| 63 | + passwords at all. |
| 64 | + |
| 65 | +- **Updates where you already look** — installed Telex projects show up on |
| 66 | + WordPress's native Updates screen right next to your plugins and themes. |
| 67 | + Your team doesn't need to learn a new workflow; they'll see the update badge |
| 68 | + in the same place they always have. |
| 69 | + |
| 70 | +- **Rock-solid security** — your access token is encrypted at rest with |
| 71 | + AES-256-GCM using a key derived from your site's own secret salts. |
| 72 | + The plaintext token never touches disk, never appears in logs, and goes |
| 73 | + nowhere except back to Telex over HTTPS. Every download is verified with a |
| 74 | + SHA-256 checksum. ZipSlip attacks and dangerous file extensions are blocked |
| 75 | + before anything reaches the filesystem. |
| 76 | + |
| 77 | +- **A circuit breaker** — if the Telex API goes down, Dispatch backs off |
| 78 | + gracefully instead of hammering it with retries. Your site keeps working. |
| 79 | + |
| 80 | +- **An audit log** — every install, update, remove, connect, and disconnect |
| 81 | + is recorded. You'll always know what changed, when, and who did it. |
| 82 | + |
| 83 | +- **WP-CLI support** — `wp telex list`, `install`, `update`, `remove`, |
| 84 | + `connect`, `disconnect`, and more. Automate whatever you want. |
| 85 | + |
| 86 | +- **Site Health integration** — API connectivity and circuit breaker status |
| 87 | + show up in the WordPress Site Health screen so you can spot problems at a |
| 88 | + glance. |
| 89 | + |
| 90 | +- **Multisite ready** — Dispatch works on WordPress Multisite out of the box. |
| 91 | + |
| 92 | +- **Try it in your browser** — a WordPress Playground blueprint is included |
| 93 | + so anyone can run the plugin in a browser sandbox in seconds, no install |
| 94 | + required. |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +[Unreleased]: https://github.com/regionallyfamous/dispatch/compare/v1.0.1...HEAD |
| 99 | +[1.0.1]: https://github.com/regionallyfamous/dispatch/compare/v1.0.0...v1.0.1 |
89 | 100 | [1.0.0]: https://github.com/regionallyfamous/dispatch/releases/tag/v1.0.0 |
0 commit comments