Skip to content

feat: add WordPress schema deploy, bulk meta, schema status, and onboard#195

Merged
arberx merged 3 commits intomainfrom
arberx/bing-webmaster-submit
Mar 30, 2026
Merged

feat: add WordPress schema deploy, bulk meta, schema status, and onboard#195
arberx merged 3 commits intomainfrom
arberx/bing-webmaster-submit

Conversation

@arberx
Copy link
Copy Markdown
Member

@arberx arberx commented Mar 30, 2026

Summary

  • Adds four new WordPress CLI/API commands: schema deploy, schema status, set-meta --from <file> (bulk), and onboard
  • onboard is a compound command that runs connect → audit → bulk meta → schema deploy → Google/Bing URL submission in sequence, reporting per-step results
  • Adds schema-templates.ts to integration-wordpress with JSON-LD schema generation from a YAML profile file
  • Fixes app.inject() URL paths in the onboard handler to include the route prefix, and wraps the handler with withWordpressErrorHandling for consistency; bumps version to 1.29.0

Test plan

  • pnpm run typecheck && pnpm run lint && pnpm run test all pass
  • canonry wordpress schema deploy <project> --profile schema.yaml generates and deploys JSON-LD schema blocks
  • canonry wordpress schema status <project> reports per-page canonry vs third-party schema presence
  • canonry wordpress set-meta <project> --from meta.json bulk-updates SEO meta across pages
  • canonry wordpress onboard <project> --url ... --user ... --app-password ... runs all steps and reports results as JSON with --format json
  • Onboard google-submit and bing-submit steps correctly dispatch to the indexed routes (not 404)

🤖 Generated with Claude Code

arberx and others added 3 commits March 30, 2026 11:12
…ard commands

Adds four new WordPress integration commands (schema deploy, schema status,
bulk set-meta, and onboard) with full API, CLI, and integration-wordpress
support. Fixes app.inject() route prefix so the onboard step correctly
dispatches to Google/Bing indexing endpoints, wraps the onboard handler
with withWordpressErrorHandling for consistency, and bumps version to 1.29.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Populate title/description in onboard set-meta entries from audit page
  titles instead of sending empty patches (was a no-op)
- Use listPages() permalinks for URL submission instead of constructing
  URLs from slug (fixes hierarchical pages like /about/team/)
- Fix schema status third-party under-reporting when canonry and a plugin
  emit the same @type (count-based subtraction instead of includes())
- Add staging/defaultEnv invariant guard to onboard route (matches connect)
- Add tests for all four fixes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
JSON.stringify does not escape </script> sequences, allowing user-supplied
BusinessProfile fields to prematurely close the script block and inject
arbitrary HTML into WordPress pages. Replace </ with <\/ in the serialized
JSON before embedding in the script tag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@arberx arberx merged commit 665ac89 into main Mar 30, 2026
2 checks passed
@arberx arberx deleted the arberx/bing-webmaster-submit branch March 30, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant