Releases: RegionallyFamous/pressocampus
Release list
Pressocampus 1.3.0
Highlights
- KeyStore — RSA and Defuse keys from wp-config, key files, or
wp-content/pressocampus-keys/, with options as fallback. - REST hardening — MCP POST requires authenticated user; OAuth uses explicit public callback.
- Search & uninstall — FULLTEXT-first memory search with token recall; batched uninstall deletes.
- Rate limits — file-based counters when no object cache.
- Smaller initialize — long operator text at
pressocampus://session-instructions. - PHP 8.1 minimum; CI runs PHP 8.1 against latest WP.
See CHANGELOG.md for full notes.
v1.2.0 — Soul identity reframe, admin Soul tab, and bug fixes
What's new
Admin Soul tab
The Settings page now has a dedicated Soul tab. You can see the full soul your AI has written, a live character count bar (green → yellow → red as it approaches the 6 KB snapshot limit), word count, revision count, when it was last updated, and how many memories you have. A Reset Soul button lets you wipe the slate clean so your AI will reintroduce itself on the next session.
Soul as portable AI identity
The Soul is now explicitly framed as the AI's portable identity document — not a user preferences file. The template leads with ## Who I Am, ## My Character, ## My Voice, and ## My Values. The AI writes it in its own voice. When you switch AI services, the new model reads the same soul and becomes the same AI — same name, same character, same way of working with you.
First-connect sequence
When the soul is empty, the AI now: (1) introduces itself, (2) asks what name you'd like to call it, (3) writes its identity sections from self-knowledge, (4) asks two questions to learn about you, then (5) calls `update_soul`. No more blank slate sessions.
Bug fixes
- `update_soul_section` formatting bug — adjacent sections were silently collapsing because the trailing blank line was consumed but not restored on replace.
- Stale ETag after soul reset — the admin reset previously left the resource index with the old hash. The AI's first `update_soul` after a reset would fail with a spurious conflict error. Fixed via a new `Soul::reset()` method that updates the index immediately.
Performance
- `list_memories` N+1 query eliminated — term names now fetched in a single SQL JOIN; postmeta batch-primed before the loop.
- Resource index excerpt depth increased from 200 to 500 characters, with leading Markdown headings stripped.
Documentation
- Factual errors corrected: the `/wp-json/pressocampus/v1/mcp` URL returns 404 by design and is no longer described as a fallback; `expires_at` is documented as supported in the `remember` tool; `possible_related` corrected from `possible_duplicate`; tool count corrected to 8.
- `docs/the-soul.md`, `README.md`, `readme.txt`, `docs/connecting-your-ai.md`, `docs/admin-guide.md`, and others updated for the identity-first soul framing.
Removed
- Deprecated `pressocampus_service` system user and `pressocampus_agent` role are no longer created on activation and no longer cleaned up on uninstall.
Full details in CHANGELOG.md.
v1.1.3 — Documentation and UI aligned with new Soul concept
Documentation and settings UI catch-up release for the Soul redesign introduced in v1.1.2.
What changed
Every user-facing and developer-facing reference to the old Soul framing has been updated:
| File | What changed |
|---|---|
docs/admin-guide.md |
Soul status indicator and admin notice descriptions |
docs/connecting-your-ai.md |
"First conversation" step; multi-client description |
docs/mcp-tools-reference.md |
update_soul and update_soul_section descriptions, parameters, and example |
docs/memories.md |
Intro and "what not to remember" distinction |
includes/class-settings.php |
Soul section heading, description, empty-state text |
The key change throughout: the Soul is the AI's document, written in the AI's voice, not a user preference file. Examples and descriptions now reflect this — update_soul_section example shows "How We Work Together" with AI-perspective prose ("I've learned they can't stand bullet points"), not a list of instructions the user has issued.
v1.1.2 — The Soul, redesigned
What changed
The Soul concept has been fundamentally redesigned.
Before: The Soul was a user preference document — a settings file you filled out describing yourself. "I am a product designer. I prefer directness."
Now: The Soul is a document the AI writes about itself and your relationship, in its own voice, for future instances of itself. "My human is a product designer who thinks in systems. I've learned they prefer directness over diplomacy."
This matters because:
- An AI reading its own notes about a person it knows brings something different to the work than one following a list of commands
- The new framing honestly acknowledges session discontinuity — "Each session I start fresh and read this file. If you're reading this in a future session: hello."
- Preferences are things the AI has learned, not instructions it was given
- The last section ("To Future Instances of Myself") is a genuine note from one instance to the next
Files changed
includes/class-soul.php— new template with AI-perspective sections: Who I Am, My Values, This Person, How We Work Together, What I Know, To Future Instances of Myselfincludes/class-mcp-endpoint.php— initialize instructions reframed; soul described as identity file, not behavioral contractdocs/the-soul.md— fully rewrittenREADME.md,readme.txt— updated descriptions
v1.1.1 — Self-healing /brain rewrite
Fixed
- Self-healing
/brainrewrite — the plugin now checks the compiled rewrite table on every request and auto-flushes if the/brainrule is missing. No more manual Permalinks save after updates or cache clears. - Block direct
/wp-json/access — the MCP endpoint now returns 404 for requests not coming through/brain. The REST route is internal only; there is no public fallback path.
v1.1.0 — Fix soul tools missing from Claude.ai
Fixed
update_soulandupdate_soul_sectionmissing from Claude.ai tool list — rewrote tool descriptions to avoid Anthropic's client-side safety filter. Phrases like "override AI defaults" were causing both tools to be silently dropped. Descriptions now frame the soul as user profile/preference storage. Functionality is unchanged.- Plugin description — updated to plain-language copy: "Give your AI a permanent memory — stored on your WordPress site, not locked inside any app."
After installing: disconnect and reconnect Pressocampus in Claude.ai Settings → Integrations. All 8 tools should now appear.
v1.0.26 — Fix soul tools missing from Claude.ai
Fixed
update_soulandupdate_soul_sectionmissing from Claude.ai tool list — rewrote tool descriptions to avoid Anthropic's client-side safety filter. Phrases like "override AI defaults" were causing the tools to be silently dropped. Descriptions now frame the soul as user profile/preference storage.- Plugin description — updated to plain-language copy.
After installing this update: disconnect and reconnect the Pressocampus integration in Claude.ai Settings → Integrations to force a fresh tools/list fetch. All 8 tools should now appear.
v1.0.25 — Security hardening & performance
What's in this release
A pure hardening/performance/reliability pass — no new features, no API changes, no database migrations. Update and go.
Security
- CSPRNG client IDs — OAuth client IDs now use
bin2hex(random_bytes(16))instead ofuniqid(). - Bcrypt client secrets — newly registered clients have secrets hashed with
PASSWORD_BCRYPT; existing clients with plaintext secrets continue to work. - Rate limit on
initialize— theinitializehandshake now counts against the read rate limit, closing a loophole where rapid reconnections could trigger soul-creation DB work unthrottled. - Rate limit bypass closed — authenticated sessions without a
token_idare now denied rather than silently allowed through all throttling.
Fixed
tool_forgetindex desync —wp_delete_post()return is checked before touching back-references or the index row; back-reference rewrite moved after confirmed deletion.- Soul tool 500s —
tool_update_soul/tool_update_soul_sectionnow catchRuntimeExceptionfrom soul-lock races and return a cleansoul_lockedtool error.
Performance
rebuild_index—WP_Query(posts_per_page=-1)replaced with a batched 200-row direct SQL JOIN; only needed columns fetched.get_user_groups— single JOIN query replaces two-step approach that could produce a 1 000-itemINclause; unusedget_user_post_ids()removed.rewrite_related_uri— early-return when no back-references exist;update_postmeta_cache()primes cache before the update loop.
Reliability
- Atomic soul creation lock —
Soul::create()usesSELECT GET_LOCK()instead of aget_transient/set_transientrace window. - Atomic rebuild lock —
ResourceIndex::rebuild_if_dirty()uses the sameGET_LOCKpattern.
Code quality
- Rate-limit error messages centralised in
write_rate_limit_error()/read_rate_limit_error()helpers; fixes hardcoded60/minmessage intool_search_memory.
Full changelog: https://github.com/RegionallyFamous/pressocampus/blob/main/CHANGELOG.md
v1.0.24 — MCP 2025-11-25
What's new
MCP spec 2025-11-25 compliance
Pressocampus now implements the latest MCP protocol revision:
- Version negotiation — the server echoes the client's requested
protocolVersionback duringinitializeif it is supported (2025-03-26or2025-11-25). Older clients are fully backward-compatible. MCP-Protocol-Versionheader validation — unsupported values on POST requests return400 Bad Requestwith the accepted version list.- Origin → 403 enforcement — when a browser
Originheader is present but not in the CORS allowlist, all handlers return403 Forbiddenas required for DNS-rebinding protection. GET /brain→ 405 — signals MCP clients that SSE is not supported and they should use plain JSON responses.MCP-Protocol-VersionandMCP-Session-Idadded toAccess-Control-Allow-Headers.isError: falseis now explicit in all successful tool results.serverInfo.titleadded alongsideserverInfo.name.
Admin UI
- Brain icon — custom SVG brain icon in the WordPress admin menu replaces the generic info-circle.
- Menu position — the Pressocampus menu item now appears at the bottom of the sidebar (position 100), below the Settings group.
Docs
- MCP version updated to
2025-11-25inREADME.md,docs/installation.md,docs/connecting-your-ai.md,docs/troubleshooting.md, anddocs/development.md. readme.txtchangelog and Upgrade Notice updated.
The release ZIP is attached below — upload it via Plugins → Add New → Upload Plugin or drop it into wp-content/plugins/.
v1.0.23 — Menu at bottom
[1.0.23] — 2026-03-21
Changed
- Admin menu item moved to the bottom of the sidebar. Menu position changed from
30(mid-sidebar, between Pages and Comments) to100(below the bottom separator, after Settings).