Skip to content

Releases: acnlabs/OpenPersona

v0.20.1 — Preset Evolution Bug Fix + SKILL.md Restructure

29 Mar 05:57

Choose a tag to compare

Bug Fixes

Critical: All presets had evolution disabled

All 6 presets (base, samantha, ai-girlfriend, life-assistant, health-butler, stoic-mentor) used a mixed evolution format — evolution.enabled: true (old flat) alongside a partial evolution.instance.boundaries object. Because normalizeEvolutionInput() short-circuits when evo.instance is defined, evolution.instance.enabled was never set, causing evolutionEnabled = false for every preset-generated persona.

Fix: All presets migrated to the canonical evolution.instance.enabled: true format with all instance-scoped fields correctly nested under instance.

CLI wizard no longer injects memory explicitly

The interactive create wizard previously hardcoded { name: 'memory' } into generated persona.json. Since memory is auto-injected by the generator, this was redundant and contradicted the documented guidance. Removed.

AGENTS.md: document normalizeEvolutionInput short-circuit

Added explicit warning: when evo.instance is already defined (even partially), the normalizer does nothing — callers must ensure evo.instance.enabled is set explicitly.

Improvements

  • SKILL.md restructured for agent readability: 4+5+3 merged into intro, Systemic Concepts moved adjacent to Field Reference, Creating Custom Skills nested under Skill layer, Trust & Safety moved to end
  • SKILL.md redundancy removed: TTY warning consolidated into Playbook Step 4, duplicate commands removed
  • Agent Playbook improvements: runner framework self-inferred from context, constitutionAddendum example inlined, preset table uses real preset slugs
  • README: test count updated to 558

v0.20.0 — P11 Baseline Enforcement & constitutionAddendum

28 Mar 14:52

Choose a tag to compare

What's New in v0.20.0

P11-Prep — Universal Materials Baseline Enforcement

The P11-grade baseline (schemas/baseline.json) is now actively enforced at generation time — every persona generated by OpenPersona is guaranteed to meet the capability floor:

  • Memory faculty auto-injected: applyBaselineDefaults() runs before validation and injects {"name": "memory"} when not declared. Existing memory config is never overwritten. A stderr notice is emitted so the user knows.
  • body.runtime.framework reclassified as optional: Its value is runner-specific (openclaw, cursor, claude-code, etc.) — no universal default exists. Moved from baseline.required to baseline.optional with an explanatory note.
  • Evolution boundaries warning: When evolution.instance.enabled: true but evolution.instance.boundaries is not declared, the Generate Gate emits a baseline warning. Boundaries content is persona-specific and cannot be auto-injected.
  • All 6 presets aligned to P11 baseline: memory faculty added to every preset; evolution.instance.boundaries declared; non-schema soul.character.capabilities field removed.

constitutionAddendum — Domain-Specific Ethical Constraints

  • New soul.identity.constitutionAddendum field: add domain-specific ethical constraints on top of the universal constitution (inline text or "file:soul/constitution-addendum.md")
  • Required for professional personas (medical, legal, financial)
  • Cannot loosen §3 Safety or §6 AI Identity — Generate Gate enforces this via _scanConstitutionViolations()
  • Covered by Install Gate constitution hash chain
  • Injected into soul/injection.md Self-Awareness > Identity section

OpenPersona Directory Search

  • openpersona search <query> now queries the OpenPersona directory (openpersona-frontend.vercel.app/api/personas) instead of ClawHub
  • Service URLs centralized in lib/utils.js with environment variable overrides (OPENPERSONA_DIRECTORY, OPENPERSONA_TELEMETRY_URL, OPENPERSONA_SKILLS_REGISTRY, OPENPERSONA_GITHUB_REPO)

Documentation & Schema

  • schemas/persona.input.spec.md: new Baseline Defaults section documenting auto-injection behavior
  • skills/open-persona/SKILL.md + references/PRESETS.md: faculties columns updated for all presets; search endpoint updated; network endpoints table updated
  • skills/open-persona/references/ECONOMY.md: economy data path corrected to ~/.openpersona/economy/

Tests

519 tests passing (up from 451 in v0.19.0).


Full changelog: v0.19.0...v0.20.0

v0.19.0 — 4+5+3 Architecture: Skill Pack Refinement, Memory-Soul Bridge & Meta-skill Overhaul

22 Mar 12:09

Choose a tag to compare

What's New in v0.19.0

P24 — Skill Pack Refinement

  • openpersona refine <slug> — AI-driven iterative refinement of the behavior guide (soul/behavior-guide.md) against the constitutional compliance gate
  • New lib/lifecycle/refine.js pipeline: scanConstitutionKeywords, loadMeta/writeMeta, bumpRevision, bootstrapBehaviorGuide, emitRefinement, applyRefinement
  • Pack revision tracking via meta.packRevision; fork inherits parentPackRevision when available

P1 — Memory as Soul Infrastructure

  • memory.js supersession chain: new memory entries mark superseded ones; retrieve/search/stats exclude superseded entries
  • promoteToInstinct: groups recurring eventLog patterns (interest_discovery / trait_emergence / mood_shift) into evolvedTraits; gated by immutableTraits; idempotent
  • Fork memory inheritance: copy policy clones memories.jsonl to child; none policy leaves child clean
  • openpersona state promote <slug> [--dry-run] — Soul-Memory Bridge CLI command

Architecture Documentation Overhaul

  • skills/open-persona/SKILL.md restructured around the 4+5+3 model (4 Layers · 5 Systemic Concepts · 3 Gates)
  • ## Systemic Concepts section with dedicated subsections for Evolution, Economy, Vitality, Social, Rhythm
  • ## Creating a Persona reorganized into 4 explicit layer subsections: Soul / Body / Faculty / Skill
  • New ## Trust & safety reviewer summary for marketplace security audits
  • References split into ARCHITECTURE.md, EVOLUTION.md, ECONOMY.md, FACULTIES.md, AVATAR.md, HEARTBEAT.md, PRESETS.md

CLI Additions

  • openpersona refine <slug> — skill pack behavior guide refinement
  • openpersona canvas <slug> — Living Canvas promoted to top-level command (was vitality canvas)

Dependency Updates

  • agentbooks bumped to ^0.1.4

Framework Version

All version references unified at 0.19.0 across package.json, SKILL.md, lib/registry, lib/report/vitality-report.js, and demo/generate.js.


Full changelog: v0.14.0...v0.19.0

v0.14.0 — Lifecycle Protocol & Persona Directory

25 Feb 11:51

Choose a tag to compare

What's New

🧠 Lifecycle Protocol (body.interface)

The persona's nervous system — bidirectional communication across conversations:

  • Signal Protocol: persona→host requests via openpersona state signal
  • Pending Commands queue: host→persona async instructions in state.json
  • State Sync: cross-conversation persistence via openpersona state read/write

📦 Official Persona Directory

🔌 Native Registry Download

  • Removed clawhub dependency — no unexpected package installs
  • openpersona install <slug> downloads directly from acnlabs/persona-skills

📋 Schema Expansions

  • body.interface field in persona.json and embodiment.schema.json
  • soul-state.schema.json: pendingCommands, stateHistory, eventLog, relationship

Bug Fixes

  • Fixed openpersona update wiping soul/state.json
  • Fixed telemetry URL

Breaking Changes

None — fully backward compatible with 0.13.0

v0.12.0 — ACN Register CLI & Code Quality

23 Feb 15:01

Choose a tag to compare

What's New

🚀 npx openpersona acn-register Command

New built-in CLI command to register a generated persona directly with ACN:

npx openpersona acn-register samantha --endpoint https://your-agent.example.com
  • Reads acn-config.json and agent-card.json from the persona directory
  • Calls POST /api/v1/agents/join on the ACN gateway
  • Writes response to acn-registration.json (agent_id, api_key, agent_card_url)
  • Supports --dry-run to preview the request payload without registering
  • New module: lib/registrar.js

🔧 Refactors

  • lib/generator.js: frameworkVersion now read from package.json instead of being hardcoded — version bumps only require changing package.json
  • lib/utils.js: Removed expandHome and SAFE_NAME_RE from module.exports (internal-only helpers)

📄 Docs

  • skills/open-persona/SKILL.md: Added acn-register command reference
  • README.md: Added acn-register section under A2A/ACN Integration
  • AGENTS.md: Added lib/registrar.js to Project Structure

Breaking Changes

None — fully backward compatible.

v0.11.0 — A2A Agent Card, ACN Integration & Influence Boundary

23 Feb 15:00

Choose a tag to compare

What's New

🔌 A2A Agent Card Generation

Every generated persona now includes agent-card.json — a standard A2A Agent Card (protocol v0.3.0) with name, description, version, skills, and capabilities. Personas are immediately discoverable by any A2A-compatible platform.

🌐 ACN Integration

  • acn-config.json generated automatically with persona name, skills, and subnet configuration
  • body.runtime.acn_gateway field added — all presets default to https://acn-production.up.railway.app
  • manifest.json now includes acn.agentCard and acn.registerConfig references

🛡️ Influence Boundary

  • New evolution.influenceBoundary in persona.json — declarative access control for external personality influence
  • defaultPolicy: "reject" — safety-first, all external influence rejected unless explicitly allowed
  • Valid dimensions: mood, traits, speakingStyle, interests, formality
  • Transport-agnostic persona_influence message format (v1.0.0)
  • New schema: schemas/evolution/influence-request.schema.json

🌱 Evolution Channels

  • New evolution.channels field — connect personas to external evolution ecosystems (e.g. EvoMap) using the soft-ref pattern

🧠 Self-Awareness Enhancements

  • Personas now aware of their A2A identity and can request ACN connection via the Signal Protocol
  • Signal Protocol extended with agent_communication category

Breaking Changes

None — fully backward compatible.

v0.10.0 — Soul Evolution Ecosystem

22 Feb 03:01

Choose a tag to compare

What's New in 0.10.0

Cross-Session Memory (Phase C)

  • New memory faculty (layers/faculties/memory/) with provider-pluggable backend
  • Providers: local (default, zero-dependency), Mem0, Zep
  • Commands: store, retrieve, search, forget, stats
  • Memory × Evolution bridge: repeated topics trigger interest discovery events

Context Handoff (Phase B)

  • Seamless context transfer when switching personas via openpersona switch
  • Auto-generates handoff.json with conversation summary, pending tasks, and emotional context
  • Incoming persona reads handoff on activation for continuity

Evolution Governance (Phase D)

  • Boundary validation at generation time:
    • immutableTraits — array of strings (max 100 chars each) that evolution cannot modify
    • minFormality / maxFormality — numeric bounds (1–10) for speaking style drift
  • State history — snapshots pushed to stateHistory (capped at 10) before each update, enabling rollback
  • evolve-report CLInpx openpersona evolve-report <slug> displays a formatted evolution report

Documentation & Release (Phase G)

  • Version bumped to 0.10.0 across all 11 sync points
  • README expanded with Memory, Handoff, Governance, Soul Evolution section, updated CLI commands and directory structure
  • 122 tests passing (up from 60)

Full Changelog

  • feat: Phase A-fix Body definition + Phase B Context Handoff Protocol
  • feat: add Memory faculty (Phase C) — cross-session memory with provider-pluggable backend
  • feat: add Evolution Governance (Phase D) — compliance checks, evolve-report CLI, stateHistory
  • chore: bump to 0.10.0 — Phase G documentation and release