Repository navigation
Releases: plugpressco/saddle
Releases · plugpressco/saddle
Release list
v1.5.2
What's Changed
- fix: ask before confirming, even in apps that cut the guide (#333) by @ifahimreza in #334
- docs(clients): real-app results, 2026-10-05 (#223) by @ifahimreza in #336
- docs(clients): Codex results and Cursor connect (#223) by @ifahimreza in #337
- feat(integrations): bridle and bridle kb are plugpress plugins (#338) by @ifahimreza in #339
- fix(mcp): run beside the mcp adapter 0.7.0 instead of fatalling (#340) by @ifahimreza in #342
- feat(admin): the brand is Saddle magenta (#345) by @ifahimreza in #346
- docs: installs from WordPress.org, core and translation updates (#347) by @ifahimreza in #353
- feat: search-plugins finds a plugin on WordPress.org (#348) by @ifahimreza in #354
- feat: install-plugin installs from WordPress.org, inactive (#349) by @ifahimreza in #355
- feat: install-theme installs from WordPress.org, not activated (#350) by @ifahimreza in #356
- feat: update-core applies the release WordPress offers (#351) by @ifahimreza in #357
- feat: update-translations applies the language packs offered (#352) by @ifahimreza in #358
- fix(updates): major WordPress releases need Saddle's own setting (#359) by @ifahimreza in #360
- chore(release): 1.5.2 by @ifahimreza in #361
Full Changelog: v1.5.1...v1.5.2
v1.5.1
What's Changed
- docs: 1.5.0 is the build live on WordPress.org by @ifahimreza in #327
- Module sidebar: a white panel beside left-aligned content by @ifahimreza in #329
- A module can be one page, with no sidebar (#330) by @ifahimreza in #331
- chore(release): 1.5.1 by @ifahimreza in #332
Full Changelog: v1.5.0...v1.5.1
v1.5.0
What's Changed
- docs(roadmap): Phase 1 calls — bulk post operations move to Pro (#224) by @ifahimreza in #226
- fix: Divi context bundle carries the site's global fonts (#214) by @ifahimreza in #227
- test: pin that pause keeps the whole tool list on both transports (#217) by @ifahimreza in #228
- feat: list summaries carry slug; pages carry parent and menu order (#215) by @ifahimreza in #229
- fix(oauth): accept any port on loopback redirect URIs (RFC 8252 §7.3) (#216) by @ifahimreza in #230
- feat: saddle/self-check — an agent diagnoses its own connection (#222) by @ifahimreza in #232
- feat: upload-media accepts the file inline as base64 (#220) by @ifahimreza in #233
- feat: verify-page can confirm the public page serves the saved content (#221) by @ifahimreza in #234
- chore(release): 1.4.0 — version bump, self-hosted zip, not released (#235) by @ifahimreza in #236
- fix: Connection check read "unknown" on real sites — split the nonce probe (#237) by @ifahimreza in #239
- fix: verify-page public check kept the page as one passage (#238) by @ifahimreza in #240
- feat(integrations): treat Saddle Analytics as first-party (#211) by @ifahimreza in #212
- docs(roadmap): 2026-09-27 evening decisions and reopened picks by @ifahimreza in #246
- feat(connect): lead with one address; keys become the fallback (#243) by @ifahimreza in #245
- feat(integrations): Saddle Rank is first-party, and rank- never claims rank-math- (#241) by @ifahimreza in #242
- feat(site): apply offered plugin and theme updates through core's updater, gated; site health by @ifahimreza in #247
- docs: family orientation block, Author URI saddle.to, three stale guide facts by @ifahimreza in #249
- release: 1.5.0, all free roadmap work combined and tested by @ifahimreza in #264
- chore: re-vendor MCP Adapter 0.6.1 (#218) by @ifahimreza in #231
- feat(site-editor): template, part and pattern writes, DB-only (#172) by @ifahimreza in #259
- feat(mcp): Skills as MCP prompts (#178) by @ifahimreza in #261
- fix(mcp): keep the adapter's shared server when another plugin uses it (#219) by @ifahimreza in #262
- fix(copy): the tab is Apps, not Connections, in five strings by @ifahimreza in #248
- feat(authoring): dynamic blocks take children, so agents can build with a plugin's section blocks (#251) by @ifahimreza in #252
- fix(blocks): list content replaces its items; verify flags unwrapped children (#250) by @ifahimreza in #253
- feat(connect): one-click Add to Cursor and Add to VS Code (#179) by @ifahimreza in #254
- feat(undo): saddle/undo-changes, gated reversal of any logged change (#181) by @ifahimreza in #255
- feat(rehearsal): write tools answer with what they would do, save nothing (#180) by @ifahimreza in #256
- feat(content): custom post types through the post tools (#137) by @ifahimreza in #257
- feat(menus): menu tools for classic themes (#244) by @ifahimreza in #258
- feat(lint): link and button names, vague link text, title length, excerpt (#183) by @ifahimreza in #260
- feat(admin): olive brand colour, matching saddle.to (#198) by @ifahimreza in #263
- feat(tools): send openWorldHint on every tool (#267) by @ifahimreza in #268
- feat(connect): Add to Claude, OpenClaw and Grok (#265) by @ifahimreza in #266
- feat: first run reads the site, then connects (#269) by @ifahimreza in #270
- feat: connection registry, which app is connected and its first tool call (#272) by @ifahimreza in #273
- feat(admin): Saddle submenu pages, a Context page, and Connections > Apps (#274) by @ifahimreza in #275
- feat(admin): settings schema, module tools and notices (#276) by @ifahimreza in #278
- feat(admin): first run proves the connection, then asks (#277) by @ifahimreza in #279
- feat(admin): header band, Petrol brand, WordPress-native look (#280) by @ifahimreza in #283
- feat(admin): minimal Home, Settings, Connections, Context and Activity (#281, #282) by @ifahimreza in #284
- feat(admin): four pages, per-app access and Needs your OK (#285, #286, #287) by @ifahimreza in #290
- fix: messages no longer name the removed Permissions screen (#296) by @ifahimreza in #297
- feat(admin): a Services page, one services registry, Unsplash in WordPress Connectors (#291) by @ifahimreza in #298
- fix(services): short meta line for long add-on descriptions (#299) by @ifahimreza in #300
- fix(admin): Jetpack AI's look: surfaces, one type scale, one grey, quiet tabs (#307) by @ifahimreza in #308
- fix: an MCP Adapter older than 0.5.0 no longer fatals every REST request (#301) by @ifahimreza in #303
- fix: customer-path polish — first run, activity names the app, agent context (#302) by @ifahimreza in #304
- feat(admin): chat-style welcome, AI switch in the header, Home (#309) by @ifahimreza in #310
- fix(admin): the Connect drawer is a short recipe (#311) by @ifahimreza in #312
- Family look: ui contract, views, palette, chart tokens, setup tasks (K2-K5, K8) by @ifahimreza in #313
- Iconoir icons on the Saddle menu and tabs, and a drill-in header by @ifahimreza in #314
- Plain admin copy: no em-dashes, filler or dash placeholders by @ifahimreza in #315
- Module layout: breadcrumb header, module sidebar, icon page tabs by @ifahimreza in #316
- chore: 1.5.0 release prep (stale bundle, one changelog) by @ifahimreza in #317
- 1.5.0 release prep: QA fixes, .htaccess wording (#271), no-arg fatal (#306) by @ifahimreza in #318
- fix: an argument to a no-argument tool is no longer a fatal (#305) by @ifahimreza in #306
- 1.5.0: everything else (gate, D3, owner Undo, key drawer, polish) by @ifahimreza in #324
- 1.5.0: palette v3, wp-admin's own greys by @ifahimreza in #325
- fix(access): keys from before the update keep what they could do by @ifahimreza in #326
Full Changelog: v1.3.0...v1.5.0
v1.3.0
What's Changed
- feat: owner-approved third-party integrations (#204) by @ifahimreza in #206
- docs: build a Saddle integration guide (#205) by @ifahimreza in #208
- docs: record Phase 0 decisions — Cloud opt-in, updates, defaults (#209) by @ifahimreza in #210
- chore(release): 1.3.0 — third-party integrations (#213) by @ifahimreza in #225
Full Changelog: v1.2.2...v1.3.0
v1.2.2
What's Changed
- fix: MCP endpoint 404 with Gravity Forms 3.1, release 1.2.2 by @ifahimreza in #203
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
- chore(release): 1.2.1 — Live Preview and a rewritten readme by @ifahimreza in #202
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
- docs: rewrite readme.txt and add readme writing guide by @ifahimreza in #196
- docs: README rewrite, new plugin title, saddle.to links by @ifahimreza in #197
- feat: free edits — Divi 5 page editing, SEO and WooCommerce reads move into free by @ifahimreza in #199
- chore(release): 1.2.0 by @ifahimreza in #201
Full Changelog: v1.0.1...v1.2.0
v1.0.1
What's Changed
- docs(roadmap): consolidation exception and 2026-09-07 brainstorm backlog by @ifahimreza in #185
- feat: drafts-only write policy (#168) by @ifahimreza in #186
- fix(readme): state the outbound-request position precisely by @ifahimreza in #187
- docs(roadmap): adopt the product plan into the repo by @ifahimreza in #188
- docs(roadmap): record the 2026-09-23 Saddle Pro price list by @ifahimreza in #189
- chore: move internal records to the private saddle-planning repo by @ifahimreza in #194
- chore(release): 1.0.1 by @ifahimreza in #195
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's Changed
- ci: provision WP core + SQLite so PHPUnit runs for real (#42) by @ifahimreza in #49
- Untangle main: legible 401s (#36), MCP inputSchema normalization, admin dedupe + Guidance polish by @ifahimreza in #47
- Security: SSRF fail-closed (#38) + pin the execute() permission contract (#39) by @ifahimreza in #48
- docs: stop hard-coding the ability count (#41) by @ifahimreza in #50
- ui: group Permissions tools by category + filter box (#43) by @ifahimreza in #51
- ui: connect-wizard presets for Gemini CLI, VS Code, Windsurf (#46) by @ifahimreza in #52
- ui: connection-health tile on Home (#45) by @ifahimreza in #53
- ui: promote Memory to its own top-level tab (#44) by @ifahimreza in #54
- feat: unified get-design-system + shared design-numbers guidance (#5) by @ifahimreza in #55
- feat: bootstrap-design-system — gated starter system (#5) by @ifahimreza in #56
- feat: section recipes (list/get-section-recipe) (#6) by @ifahimreza in #57
- chore: release 1.0.0 — production-ready by @ifahimreza in #58
- Agent-guidance fixes: skill bodies uncorrupted, verify honesty, composition rule, native builders by @ifahimreza in #76
- chore: adopt github workflow agent rules (#78) by @ifahimreza in #79
- fix: serve stateless MCP clients so ChatGPT can discover tools (#80) by @ifahimreza in #81
- fix: clear the WordPress.org rejection (#82) by @ifahimreza in #87
- chore: merge site-editor branch and cut 1.0.0-rc3 by @ifahimreza in #88
- fix(guardrails): hold a wrapped destructive confirm to the args it previewed (#89) by @ifahimreza in #90
- feat(tools): offer only the tools this credential can actually call (#91) by @ifahimreza in #92
- fix(context): point at the tool that replaced five, and stop stuttering (#93) by @ifahimreza in #94
- feat(playbook): ship the playbooks on every site that can use them (#95) by @ifahimreza in #96
- fix(mcp): answer the handshake the way strict clients require (#97) by @ifahimreza in #98
- Phase 1: correctness — log failed confirmed-destructive calls, warn on wrapper collisions by @ifahimreza in #66
- Phase 2: security hardening — token user-binding, credential marker, log caps, domain enforcement (supersedes #67) by @ifahimreza in #99
- Phase 3: DRY — shared integration engine, accessor resolver, gate registry by @ifahimreza in #68
- Phase 4: builder taxonomy registry, tree profile contract, unified walkers by @ifahimreza in #69
- fix: stop serving an MCP endpoint we never declared, and say what is offered (#86) by @ifahimreza in #100
- chore: record the vendored adapter's one deviation as a script by @ifahimreza in #101
- feat(context): one document, one heading level, whoever is contributing by @ifahimreza in #102
- docs: STATUS — the four pillars, Mark's handshake bug, and the PR backlog cleared by @ifahimreza in #103
- fix: group a self-enrolled integration's tools under Integrations, not Other (#59) by @ifahimreza in #104
- chore(ui): install @plugpress/ui from npm instead of a GitHub tag by @ifahimreza in #105
- chore: build 1.0.0-rc4 for testing by @ifahimreza in #106
- fix: an OAuth connection can no longer be pinned to read forever (#107) by @ifahimreza in #108
- chore: build 1.0.0-rc5 for testing by @ifahimreza in #109
- fix: ship the ChatGPT tool-discovery shim in every build (#111) by @ifahimreza in #112
- fix: record MCP health on the transport every zip actually ships (#115) by @ifahimreza in #116
- fix: keep the vendored adapter out of the self-hosted channel (#113) by @ifahimreza in #117
- chore: build 1.0.0-rc6 for testing by @ifahimreza in #118
- docs(status): rc6, and the two defects in the diagnostic we were about to use by @ifahimreza in #119
- fix: make the client-traffic trace answer the question it exists for (#120) by @ifahimreza in #122
- fix: probe Bearer too, so a half-stripped host stops reading healthy (#121) by @ifahimreza in #123
- chore: build 1.0.0-rc7 for testing by @ifahimreza in #124
- docs(status): rc7 live, and the diagnosis I had to retract by @ifahimreza in #125
- fix: OAuth bearer resolver fatal before init (#127) by @ifahimreza in #128
- chore: build 1.0.0-rc8 for testing by @ifahimreza in #129
- chore(oauth): annotate core rest_url filter for Plugin Check by @ifahimreza in #130
- docs(status): rc8 built on Mark's correct diagnosis of the pre-init fatal by @ifahimreza in #131
- fix: get-instructions description matches its tier-gated payload (#132) by @ifahimreza in #133
- chore: tested up to 7.1 by @ifahimreza in #134
- chore: drop the application-passwords readme tag by @ifahimreza in #135
- chore: add chatgpt readme tag by @ifahimreza in #136
- fix: display the native Pro SEO integrations on the Integrations screen (#143) by @ifahimreza in #144
- fix: name the WooCommerce integration row (#146) by @ifahimreza in #147
- fix: authorize every read against its target object (#148) by @ifahimreza in #149
- chore: drop the unreachable duplicates in denial_reason() (#151) by @ifahimreza in #152
- feat(admin): Saddle Violet, a flat rail, and a Dashboard that leads with a sentence (#153) by @ifahimreza in #154
- fix(mcp): answer a notification 202 on whichever transport served it (#155) by @ifahimreza in #156
- feat(admin): move the brand accent to #DA5CC7 (#157) by @ifahimreza in #158
- fix(log): authorize the change history against its objects (#150) by @ifahimreza in #160
- docs(wporg): answer round 2 where a re-scan reads it (#161) by @ifahimreza in #162
- docs: session log for the wp.org round-2 close-out by @ifahimreza in #163
- test: switch to a classic fixture theme instead of assuming one (#145) by @ifahimreza in #164
- fix(oauth): advertise offline_access without letting it touch the tier clamp (#159) by @ifahimreza in #165
- docs: roadmap reset and a current ChatGPT section (#166) by @ifahimreza in #167
- ci(release): one tag deploys the .org build to WordPress.org SVN (#176) by @ifahimreza in #177
Full Changelog: v0.10.0...v1.0.0