Skip to content

Releases: caty-ai/persona-engine

v0.2.6 — lock/recovery files created with mode 0600 (defense-in-depth)

Choose a tag to compare

@github-actions github-actions released this 04 Sep 15:32
04416b7

v0.2.6 — lock/recovery files created with mode 0600 (defense-in-depth)

The state lock file and the stale-lock recovery file are now opened with
mode 0600 and fchmod(0600) before any write, completing the "every write
hardens" posture started in v0.2.5 (#1 / PR #53). Lock acquisition and
recovery semantics are unchanged. One POSIX-guarded regression test added.

Evidence: PR #60 (completion record L1-7; 3 review seats GLM 5.3 / Opus 5 /
Kimi K3, 0 blocking) #60
CI test-lint (ubuntu + macOS) green on head e3eecf6.

Note: packages/core/package.json stays at 0.2.5 (npm catch-up lane #56);
the next npm publish bumps it.

npm: @persona-engine/core@0.2.6 published 2026-09-04 from main a964f61 (PR #63 = this tag tree + version bump + #61 README fix). Run https://github.com/caty-ai/persona-engine/actions/runs/33901047430 · provenance https://search.sigstore.dev/?logIndex=2714302008 · registry tarball vs local pack CONTENT_IDENTICAL (52 files).

v0.2.5 — self-healing state/status file permissions (0600/0700)

Choose a tag to compare

@shojikumaru shojikumaru released this 04 Sep 05:41
4aad210

Self-healing state/status file permissions in the TypeScript core (closes the single-UID assumption documented in SECURITY.md for the TS path).

  • state/<domain>.json and state/status.json are now written at mode 0600: temp files are opened with 0600 and fchmod'ed to 0600 before any content is written, then renamed into place.
  • The state/ root is chmod 0700 after every mkdir in both write paths, so a pre-existing looser directory is healed on the next write — matching the Python runtime (adapters/hermes/runtime.py).
  • Three POSIX-guarded tests (state root pre-loosened to 0755; stale fixed-name temp pre-existing at 0644; status/domain files after set + turn). They skip with an explicit reason on filesystems that cannot express permission bits (WSL2 DrvFs), via the existing fs-caps probe.

Out of scope, noted for follow-up: lock/recovery files are still created at umask default inside the now-0700 root (defense-in-depth only).

Full record: #1 / PR #53 (L1-7 completion record in PR comments; writer Codex GPT-5.6 Sol; 3-seat review GLM 5.3 / Kimi K3 / Grok 4.6 → GO-WITH-MINOR / GO / GO, delta re-review by GLM → cumulative GO 3/3; risk-reviewed label by roster owner).

npm 0.2.5 published (2026-09-04, via #56 / PR #58 / run 33887221802 — manifest aligned to this tag; registry tarball == this tree, CONTENT_IDENTICAL).

v0.2.4 — WSL2/DrvFs fail-soft test hardening

Choose a tag to compare

@shojikumaru shojikumaru released this 26 Aug 19:09
93e5780

Test-suite hardening + docs; no runtime behavior change.

  • New test helper fs-caps probes filesystem capabilities (POSIX permission modes, chmod(000) denial, symlinks, mkfifo) at runtime; permission/mkfifo/symlink/exec-bit test cases across core vitest and hermes/claude-code pytest now skip with an explicit reason on filesystems that cannot express them (WSL2 DrvFs /mnt/c) instead of hard-failing — and assert exactly as before everywhere else. A canary test keeps probe false-negatives visible in CI. PERSONA_TEST_FORCE_FSCAPS=none simulates the capability-less filesystem.
  • .gitattributes (* text=auto eol=lf + binary excludes) — index verified all-LF, content hashes unaffected.
  • READMEs (en/ja/zh/th) name WSL2 with the clone-into-Linux-filesystem note; openclaw adapter README drops the macOS-only PATH idiom.

Full record: #47 / PR #48 (L1-7 completion record in PR body; 3-seat review GLM 5.3 / Kimi K3 / Grok 4.6, cumulative GO 3/3). Note: v0.2.3 was taken by the repo-state caller lane (family-os#140) earlier the same day; this lane's declared release moved v0.2.3→v0.2.4 (superseding note on PR #48).

repo-state caller v0.12.1: app-authenticated stamp pushes (family-os#140)

Choose a tag to compare

@github-actions github-actions released this 26 Aug 18:58

repo-state caller v0.12.1: app-authenticated stamp pushes (family-os#140)

repo-state caller + generation stamp (family-os#127 rollout; closes #45)

Choose a tag to compare

@github-actions github-actions released this 25 Aug 20:11

repo-state caller + generation stamp (family-os#127 rollout; closes #45)

v0.2.1 — standard gated npm publish flow; @persona-engine/core 0.2.1 (#42, PR #43)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 16:22
929b3ea

v0.2.1 — standard gated npm publish flow; @persona-engine/core 0.2.1 (#42, PR #43)

macOS support and a redesigned guide to persona modes, policy, and customization

Choose a tag to compare

@github-actions github-actions released this 21 Aug 05:57

macOS support and a redesigned guide to persona modes, policy, and customization

There are no breaking implementation changes, and existing npm consumers have no migration to perform. The published package keeps the name @persona-engine/core, version 0.1.0, the same root export, the persona bin, Node.js 22 or later, and the yaml dependency. Its implementation entry points are unchanged; only the package description changed. Evidence: packages/core/package.json, packages/core/src/index.ts, packages/core/src/cli/index.ts, and packages/core/bin/persona at 827cf3b1e942c8bb3d63a2d7a9938820220ab443.

This repository tag does not identify a new npm package version: @persona-engine/core remains 0.1.0 at this commit. The redesigned repository guide is README.md; the npm tarball's packages/core/README.md is unchanged from v0.1.0.

  • The root guide now explicitly supports the core on Linux and macOS with Node.js 22 or later. The pull-request test and lint caller requests its macOS lane with run_macos: true. Evidence: README.md, .github/workflows/test-lint.yml, and platform-support merge d4d0e8fee889a2cb44bb8a4c58bff108ed7d9c69.

  • The macOS statement is scoped to the core. The current project-status section says the Python and Node adapter suites run on Ubuntu. Evidence: README.md and .github/workflows/ci.yml.

  • The root README now leads from the relationship-layer and emotion-gradient model through installation, a complete starter-pack walkthrough, route policy, CLI commands, adapters, security, and FAQ material. Evidence: README.md and README-restructure merge 553801ce7b4153dbed553aaa8f14808b63356d15.

  • A new customizing guide explains how consumers add modes, vocabulary catalogs, and switch aliases, then rebuild and inspect an installation. Evidence: docs/customizing.md.

  • The English and Japanese guides were rewritten, and Simplified Chinese and Thai README translations were added. Evidence: README.md, README.ja.md, README.zh.md, and README.th.md.

  • The guide now includes a hero image, an architecture diagram, and a CLI demonstration. Evidence: docs/assets/hero.jpg, docs/assets/architecture.svg, and docs/assets/demo.gif.

  • Release target: merge commit 827cf3b1e942c8bb3d63a2d7a9938820220ab443.

  • README redesign: merge commit 553801ce7b4153dbed553aaa8f14808b63356d15 and README.md.

  • Linux and macOS support declaration: merge commit d4d0e8fee889a2cb44bb8a4c58bff108ed7d9c69, README.md, and .github/workflows/test-lint.yml.

v0.1.0 — first public release

Choose a tag to compare

@shojikumaru shojikumaru released this 18 Jul 06:10

The first public release of persona-engine: a safe, policy-driven engine for giving LLM agents a different face for each situation — while never rewriting the original personality.

Install

npm install -g @persona-engine/core

Highlights

  • Declarative packs — modes (faces) and vocabulary catalogs as plain YAML/text files, compiled once into deterministic, byte-stable blocks
  • Route policy — per-surface allow-lists and switching levels; unknown contexts fail closed to an empty public mode
  • Three switching paths — explicit utterance aliases, agent-initiated persona_set (owner-verified routes only), and admin CLI — all through one policy gate
  • Audit built in — every transition and denial is an append-only event, inspectable with persona audit
  • Adapters — Claude Code, Hermes, and OpenClaw; the adapter contract in SPEC.md is small
  • Starter pack — a complete four-mode example (focus / casual / professional / roleplay-template) with catalog samples

See the README for a quick start, a full walkthrough, and the customizing guide.