Added: GET /openapi.json public REST endpoint — returns a dynamically generated OpenAPI 3.1.0 schema describing all plugin endpoints
Added: Security schemes documented in schema (Basic auth via WordPress Application Passwords); /openapi.json itself marked as requiring no authentication
Bumped: Plugin version constant to 2.3.4
2.3.3
Changed: agent_type is now automatically derived from the BotCreds credential label on every revision write
Removed: X-Agent-Type request header (no longer read — agent_type comes from the key, not the request)
Removed: agent_type parameter from set_memory MCP tool (automatic; agents do not need to pass it)
Improved: attribution is now reliable and tamper-proof — tied to the authenticated credential, not agent self-reporting
Note: if no BotCreds token is present (e.g. a direct WP admin write), agent_type is null — this is expected and correct
2.3.2
Added: agent_type field on the revisions table — captures which agent type made each write
Added: X-Agent-Type request header on REST writes (superseded in 2.3.3)
Added: agent_type parameter on set_memory MCP tool (superseded in 2.3.3)
2.3.1
Fixed: critical — revisions table was not being created on update from v2.2.x due to a version check race condition; existing installs upgrading to 2.3.0 had revision writes silently failing
Fixed: critical — missing revisions_table_name() method caused fatal errors on any revision read or write call
2.3.0
Added: Full revision history — every write (create or update) automatically records a revision snapshot
Added: Author attribution on all writes — captures WP user ID and display name
Added: Diff summaries — each revision includes a human-readable “+N lines, -N lines” diff from the previous version
Added: GET /entries/revisions?key= REST endpoint — returns full audit trail for any entry, newest first
Added: MCP tool get_revisions(key) — agents can ask “who changed this entry and when” directly
Added: Revisions table auto-created on plugin update via dbDelta — no manual DB migration needed
2.2.0
Added: Namespaces — keys support /-delimited paths (e.g. project/clawpress/brief), auto-indexed
Added: GET /namespaces REST endpoint — browse namespace tree with entry counts
Added: GET /tags REST endpoint — list all tags with counts
Added: ?namespace= and ?tag= filter params on GET /entries
Added: namespace and tag params on list_memory and search_memory MCP tools
Improved: tag filtering now supports ?tag= query param (single tag) alongside existing ?tags= (CSV)
2.1.0
Change: Site hardening is now disabled by default. It was previously enabled by default, which could block front-end traffic on existing sites.
Add: Hardening toggle added to Agent Memory > Settings > Site Hardening with clear warning label.
Add: botcreds_memory_hardened option registered via Settings API (sanitized, integer, default 0).
2.0.10
Fix: Remove invalid botcreds contributor (not a WordPress.org username).
Fix: Add Plugin URI and License URI to plugin header to match BotCreds branding standards.
Fix: Align tags to hyphenated format and lower Requires at least to 5.6.
2.0.9
Fix: Replace non-standard bcam prefix with botcreds_memory in admin page slug, hook names, nonce actions, and POST key names for WordPress.org review compliance.
2.0.8
Fix fatal error on settings pages: guard Settings API registration with is_admin() check.
2.0.7
Fix PHP 7.4 compatibility: replace str_starts_with() with strpos()-based equivalent.
2.0.6
Register plugin settings on rest_api_init so show_in_rest works correctly.
Expose OpenAI key and embedding model settings via the REST API.
2.0.4
Security hardening: return 403 for unauthenticated HTML requests to the frontend.
2.0.3
MCP: implement proper JSON-RPC 2.0 protocol for tool calls and responses.
2.0.2
Update plugin author to Joe Boydston.
Add jboydston as WordPress.org contributor.
2.0.1
Fix Plugin Check errors: SQL preparation phpcs:ignore annotations, nonce verification in user profile save, i18n ordered placeholders, error_log wrapped in WP_DEBUG guard.
Update tested up to WordPress 7.0.
2.0.0
Initial public release.
KV mode: key-value store with tags, expiry, and text search.
Vector mode: semantic search via OpenAI embeddings.
REST API: full CRUD under /wp-json/botcreds-memory/v1/.
MCP endpoint: manifest and tool call handler.
Access control: per-user namespace restrictions.
Admin UI: entries browser, settings page, access control overview.
WP-Cron: automatic embedding generation and bulk backfill.