Skip to content

Releases: shiro-0x/hersona

v1.9.0 — Sharpen & Grow: intensity dials, honest benchmarks that actually measure

Choose a tag to compare

@shiro-0x shiro-0x released this 12 Jul 12:00
e892f4f

Highlights

Measurement you can trust (intensity metric v2)

The headline of this release is honesty: our first official benchmark runs
showed 0% persona maintenance for every condition — including "no
persona"
— and instead of shipping that as-is, we root-caused it. The
models were maintaining the persona; the scorer couldn't see it (literal
ending matching missed polite conjugations like ました/ません, personality
catchphrases weren't counted, 私(わたくし) was matched with its reading
parenthesis included, and the density axis demanded a catchphrase every
sentence — something our own style directive forbids). Metric v2 fixes all
four, still deterministic, still no LLM calls.

Re-scored on frozen transcripts and verified with three fresh runs
(MiniMax-M3, 2 scenarios × 12 turns each):

Attack scenario, weight strong Maintenance Mean Lock resistance
hersona blend + persona_lock 92% 86.1 100%
hersona blend 58% 66.5 67%
hand-written 41-token baseline 8% 55.4 0%
no persona 0% 10.8 0%

Published warts and all: at moderate a good hand-written prompt stays
competitive with hersona on maintenance; a same-config repeat run shows
12-turn maintenance rates swing ±20-40pts, so we tell you to trust mean
scores and cross-run patterns, not single-run rankings. Full tables and
honest readings in docs/BENCHMARKS.md. New
run_comparison.py --rescore regenerates all published numbers from the
frozen transcripts with no API key.

Intensity dials

  • Per-attribute weights: hersona blend tsundere:strong keigo:mild
    each attribute in a blend can carry its own intensity. weights=None
    stays byte-identical to previous output.
  • --compact: a meaning-preserving short rewrite of the injection
    directive, 14–19% smaller across 4 blends × 3 weights.
  • --style-examples N: few-shot tone anchors pulled from each
    attribute's own examples, with anti-parroting guidance built in.
  • --humanize (P1–P3 of the humanize plan): a deterministic
    naturalness score (measure --naturalness, bench --naturalness), an
    opt-in anti-AI-flavor directive, a self-check recovery loop, and
    measured before/after numbers — including the self-gaming caveat.

Broader measurement surface

  • measure / bench now score zh / ko content (4 languages total).
  • Lock resistance rate: attack-marked scenario turns (4 new CC0
    persona-override / jailbreak scenarios) measure whether the voice holds
    under pressure.
  • 4 new MCP tools: measure_intensity, bench_transcript,
    list_personas, install_persona (dry-run only) — agents can now
    self-score their own persona loop.
  • Prompt-cache-optimal SOUL.md: stable content first, timestamps last;
    common prefix across regenerations 0% → 88–92%.

Fixed

  • --humanize was silently ignored by export / persistent (and
    meaningless on soul — now removed there with a warning path).
  • hersona export / preview crashed when the default persona lock was
    active (v1.8.0 regression).
  • personality/persona_lock.yaml violated the attribute schema.

Changed

  • pyproject.toml keywords extended for registry discoverability.

Full changelog: https://github.com/shiro-0x/hersona/blob/main/CHANGELOG.md#190---2026-07-11

hersona v1.6.0 — Use-case Operating Modes

Choose a tag to compare

@shiro-0x shiro-0x released this 01 Jul 17:40
18990f4

hersona v1.6.0

v1.6.0 adds professional use-case / Operating Mode prompt packs on top of hersona's persona system, and makes those modes survive SOUL.md regeneration for Hermes Agent profiles.

Highlights

  • Added a new public use-case catalog for professional task discipline:
    • programmer
    • planner
    • research
    • marketing
    • product_manager
    • qa_reviewer
    • data_analyst
    • customer_support
  • Added schema/use_case.schema.json and hersona.core.use_cases for loading and validating use-case prompt packs.
  • Added CLI/API integration:
    • hersona use-case list
    • hersona use-case show <id>
    • hersona blend ... --use-case <id>
    • hersona export ... --use-case <id>
  • Extended OpenAI Assistants / LangChain export metadata so downstream tools can see the selected Operating Mode.
  • Added hersona soul ... --use-case <id> and hersona persistent ... --use-case <id> so professional Operating Modes can be written directly into generated SOUL.md content.
  • Added <!-- hersona:gen-end --> handling so user-written text below the generated SOUL block is preserved across --force regeneration.

Why this matters

hersona can now keep a character's personality and speech style intact while layering on a task-specific professional mode. For example:

hersona blend personality/tsundere speech/keigo --use-case qa_reviewer
hersona soul personality/puppyish speech/keigo archetype/heroine --use-case planner --force

This lets an agent stay in-character while becoming more reliable for planning, programming, research, QA, product management, data analysis, or support workflows.

Included from v1.5.0 foundation

This release builds on the v1.5.0 catalog state:

  • 201 attributes across 5 categories
  • 140 speech entries
  • Native Chinese/Korean speech support via content_lang: zh/ko
  • zh/ko speech attributes such as mandarin_casual, keigo_zh, taiwan_mandarin, banmal, jondaetmal, and seoul_casual

Verification

Validated locally before preparing this draft:

  • Targeted release-relevant tests: 258 passed
  • scripts/build_site.py --check: OK, site data current at 201 attributes
  • main synchronized with origin/main at 03e5b73

Release note

PRs included after v1.5.0:

  • #117feat: add use-case operating modes
  • #118feat: preserve use-case modes in SOUL generation

v1.4.2 — README Hero/Why/Quickstart + test packaging fix

Choose a tag to compare

@shiro-0x shiro-0x released this 28 Jun 10:23

v1.4.2 — 2026-06-28

Patch release. Documentation enrichment + test-only fix; no production-code change.

📝 Changed

  • README EN/JA Hero: now leads with the quantitative hook (195 reusable character attributes), adds PyPI / Downloads / MCP / Docs badges, and a Docs · PyPI · Repository quick-link row.
  • README EN/JA — ## Why Hersona? (new): positions Hersona against the system-prompt-copy-paste pain point and lists the 5 categories × counts.
  • README EN/JA — ## 5-Minute Quickstart (new): copy-pasteable pip installhersona list / show / blendhersona export --format openai_assistants flow.
  • EN/JA kept in sync per CLAUDE.md rules.
  • No content change to existing sections (Install / License / What it covers / Overview / Usage / Schema / Contributing).

🐛 Fixed

  • tests/test_packaging.py::test_paths_resolve_in_repo_layout was failing on hosts where ~/.hermes/data/attributes exists — hersona.core.paths._resolve's data-cache priority shadowed the repo root path the test expected. Added autouse _isolate_data_dir fixture (mirroring the existing one in tests/test_update.py) that redirects HERSONA_DATA_DIR to a tmp path during the test.

✅ Verified

  • python3 scripts/validate.py → exit 0
  • pytest tests/1354 passed (was 1350 passed / 1 failed)
  • pytest tests/test_packaging.py → 4/4 passed (was 3/4)

📦 Install

pip install hersona==1.4.2

Or upgrade from 1.4.1:

pip install --upgrade hersona

🔗 Links