Phase 4: builder taxonomy registry, tree profile contract, unified walkers - #69
Open
ifahimreza wants to merge 5 commits into
Open
Phase 4: builder taxonomy registry, tree profile contract, unified walkers#69ifahimreza wants to merge 5 commits into
ifahimreza wants to merge 5 commits into
Conversation
…unified node walkers
- New Saddle_Builders: one table (detection order, per-post signals,
site-wide product signals, owned block namespaces) behind
builder_signature(), the context builder warnings, and the native-tree
namespace guard — three previously drifting lists ("Divi 5" vs "Divi"
vs ['divi']) now share a source of truth. Filter-emitted labels are
byte-identical to before.
- Saddle_Tree is now abstract with an abstract validate(): the validation
profile is an enforced contract (same philosophy as the lint/render
accessor interfaces) instead of a convention. Both existing profiles
already conform — declaration only.
- The flat-node-list shape helpers (children_of, descendants_of,
is_descendant, sections) live once on Saddle_Lint; Saddle_Lint_Rule and
Saddle_Render delegate instead of carrying verbatim copies.
- Version 1.1.0 (new public API: integration engine, accessors resolver,
builders registry).
Phase 4 of the 2026-07 architecture review (#65).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0133CZhoFPY6BBChDDGEa22Q
From the wp.org submission audit (no blockers found): - readme.txt gains the 1.1.0 changelog entry. - languages/saddle.pot regenerated at 1.1.0 (was stale at 1.0.0). - The parked class-saddle-ecosystem.php no longer ships (Gruntfile exclude) — reviewers ask about unreferenced code. - package.json version synced to 1.1.0. - phpcs: Yoda condition in the token user check, engine constructor docblock summary, phpcbf alignment in the admin REST class. Tree is now 0 errors / 1 accepted warning ($include param name). - admin bundle rebuilt from current admin/src. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133CZhoFPY6BBChDDGEa22Q
Ran the official Plugin Check plugin (via wp-cli on divi-dev) against the
1.0.0 tree; three real findings, all fixed:
- readme title drops the word "WordPress" ("Saddle – Control Your Site
with AI (MCP Server)") — the trademark rule forbids it anywhere in a
plugin name.
- The bundled wp-mcp library's translatable strings now use the 'saddle'
text domain (152 i18n calls; identifiers like the mcp-adapter/* ability
ids, the ability category, and the WP-CLI command name untouched) —
clears 147 TextDomainMismatch errors and makes those strings actually
translatable through the plugin's language pack.
- uninstall.php's bare $timestamp global renamed to $saddle_gc_timestamp.
Remaining Plugin Check output is dev-tree-only files the release zip
already excludes (dotfiles, internal .md docs, phpcs/phpunit configs)
plus the cosmetic readme-vs-header name-length mismatch warning.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0133CZhoFPY6BBChDDGEa22Q
…d marker meta Merges fix/wporg-plugin-check into the 1.1.0 stack and adds the two cleanup entries 1.1.0 introduced: the saddle_enforce_tier_domain option and the saddle_issued_credentials user meta. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133CZhoFPY6BBChDDGEa22Q
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.
Closes #65 (free side). Stacked on #68 (Phase 3). Pro counterpart routes the authoring path through its driver.
Saddle_Builders— single taxonomy behindbuilder_signature(), context warnings, and the namespace guard; labels byte-identical.Saddle_Treeabstract + abstractvalidate()— the profile seam is now an enforced contract.Saddle_Lint; rule base + render delegate.Suite green (368 tests); Pro suite green against this branch.
Note: per-post detection memoization was evaluated and deliberately NOT added — WP's meta cache already makes repeat probes O(1), and a static result cache would go stale when abilities/tests flip builder meta mid-request.
🤖 Generated with Claude Code
https://claude.ai/code/session_0133CZhoFPY6BBChDDGEa22Q