Skip to content

Commit d1decd4

Browse files
authored
chore: build 1.0.0-rc6 for testing (#118)
Carries the two fixes that rc5 missed. rc5 was built at 14:14 UTC on 2026-08-17 and #112 merged at 18:30 the same day, so the shim that exists specifically so ChatGPT can discover tools is on main but has never been in a zip — verified absent in dist/saddle-1.0.0-rc5.zip. Also fixes the version task itself. It wrote four of the five places the version lives and skipped package-lock.json entirely, so the lockfile sat at the previous version after every bump. Handled structurally rather than by text substitution: every dependency in that file carries a "version" field too, and a global regex for one would rewrite them all. Changelog entries for #112 and #116 written against 1.0.0 — Stable tag does not move for a release candidate.
1 parent 7dda769 commit d1decd4

5 files changed

Lines changed: 29 additions & 5 deletions

File tree

Gruntfile.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,28 @@ module.exports = function ( grunt ) {
262262
JSON.stringify( pkg, null, '\t' ) + '\n'
263263
);
264264

265+
// package-lock.json: BOTH copies. It carries the version at the root
266+
// and again under packages[''], and this task wrote neither — so
267+
// the lockfile silently kept the previous version while the other
268+
// four sites moved, which is exactly the drift the "five places
269+
// must agree" rule exists to prevent.
270+
//
271+
// Addressed structurally, NOT by a text substitution. Every
272+
// dependency in this file has a "version" field too, and a global
273+
// regex for `"version": "<semver>"` rewrites all of them to the
274+
// plugin's version. Only these two keys mean the plugin.
275+
if ( grunt.file.exists( 'package-lock.json' ) ) {
276+
const lock = grunt.file.readJSON( 'package-lock.json' );
277+
lock.version = to;
278+
if ( lock.packages && lock.packages[ '' ] ) {
279+
lock.packages[ '' ].version = to;
280+
}
281+
grunt.file.write(
282+
'package-lock.json',
283+
JSON.stringify( lock, null, '\t' ) + '\n'
284+
);
285+
}
286+
265287
grunt.log.ok( 'Version ' + from + ' → ' + to );
266288
}
267289
);

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "saddle",
3-
"version": "1.0.0-rc5",
3+
"version": "1.0.0-rc6",
44
"description": "Self-hosted MCP server for WordPress — admin UI build.",
55
"author": "PlugPress",
66
"license": "GPL-2.0-or-later",

readme.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ If you happen to have the separate MCP Adapter plugin active, Saddle notices and
143143

144144
= 1.0.0 =
145145
* Initial public release.
146+
* Fixed: on sites that also run the separate MCP Adapter plugin, an app could finish connecting and then report that the site has no actions it can use. The piece that prevents that was missing from the plugin package, so the fix for it had never actually reached anyone. It now ships.
147+
* Connection details and health now reports what it knows on every site, not only on sites running the separate MCP Adapter plugin. It previously opened with "No app has connected yet" no matter what had happened, which made the request recorder underneath it look broken — and that recorder is the thing that shows whether a connected app's requests are arriving and what they got back.
146148
* The guidance an assistant reads when it connects is now one document with one set of headings, however many PlugPress plugins are adding to it. Previously each plugin appended in its own style — one added a heading two levels down, another a bare sentence with no heading at all — and it read like four notes stapled together.
147149
* Removed a second web address the plugin was serving without saying so. Saddle publishes one address for AI apps; a bundled library was quietly adding another with weaker checks around it. Nothing documented ever pointed at it, and your access levels and confirmations applied there too — but it should not have existed, and now it doesn't.
148150
* Permissions now tells you how many tools your connected apps are actually offered at the level you pick, how many are being held back, and that already-connected apps keep the old list until you refresh or reopen them.

saddle.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Plugin Name: Saddle – Control Your Site with AI (MCP Server)
44
* Plugin URI: https://plugpress.co/saddle/
55
* Description: Self-hosted MCP server for WordPress. Tiered, default-safe, approval-gated access to posts, pages, and media for AI agents — with no third-party credential custody.
6-
* Version: 1.0.0-rc5
6+
* Version: 1.0.0-rc6
77
* Requires at least: 6.9
88
* Requires PHP: 7.4
99
* Author: PlugPress
@@ -18,7 +18,7 @@
1818

1919
defined( 'ABSPATH' ) || exit;
2020

21-
define( 'SADDLE_VERSION', '1.0.0-rc5' );
21+
define( 'SADDLE_VERSION', '1.0.0-rc6' );
2222
define( 'SADDLE_FILE', __FILE__ );
2323
define( 'SADDLE_DIR', plugin_dir_path( __FILE__ ) );
2424
define( 'SADDLE_URL', plugin_dir_url( __FILE__ ) );

0 commit comments

Comments
 (0)