Skip to content

Releases: halvrenofviryel/phionyx-research

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 13:01
phionyx-core v0.9.1 — claim-accuracy documentation patch

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 20 Jun 20:06
phionyx-core v0.9.0

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 06 Jun 20:11
release: phionyx-core v0.8.1 — patch (EventReference + vector_store f…

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 19:25
fix(types): clear mypy debt so the 0.8.0 release passes the strict my…

v0.7.3

Choose a tag to compare

@github-actions github-actions released this 06 Jun 16:38
chore(release): phionyx-core 0.7.3 — clean rebuild (privacy scrub)

Personal/edu-positioning content removed from the package surface (context
module examples + lore_mapping naming genericized). Supersedes 0.2.1-0.7.2,
which are being removed from PyPI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

v0.7.2 — Self-Correcting Loop

Pre-release

Choose a tag to compare

@halvrenofviryel halvrenofviryel released this 27 May 21:08

Substrate evolution release + accompanying case-study paper. Five high-leverage practices from Anthropic's best-practices doc and the 2026-05-27 zodchiii self-correcting Claude Code writeup. Calibrated against four production bugs that shipped on 2026-05-27.

phionyx-core PyPI package remains at v0.7.0.

What ships

P1 — Adversarial diff-reviewer subagent

.claude/agents/diff-reviewer.md — fresh-context Read/Grep/Glob/Bash agent with seven correctness-finding categories. Invoke with "Use the diff-reviewer subagent to check this commit."

P2 — PostToolUse language-tool feedback

tools/claude_code_mcp/post_edit_language_check.py — dispatches per file extension after every Edit/Write: py_compile + ruff / tsc --noEmit / json.tool / yaml.safe_load / check_memory_schema. Bounded ≤ 8 s per file.

P3 — CLAUDE.md → Skills migration

Three sub-domains moved to .claude/skills/ for on-demand loading: mcp-self-governance, binding-enforcement, state-grounding. Brings CLAUDE.md under Anthropic's <200-line sweet spot.

P4 — Stop hook targeted test runner

tools/claude_code_mcp/run_targeted_tests.py — walks git diff on Stop, maps changed paths to pytest target directories via an 11-route table. Honors stop_hook_active to avoid Stop-loop.

P5 — Common gotchas digest

12-bullet quick-reference in CLAUDE.md cross-linked to the full feedback_*.md memory files.

Hook count

Class v0.7.1 v0.7.2
Blocking 5 5
Observability 8 10
Subagent 1
Total 13 16

The count is consistent across docs/arxiv/paper_03_runtime_evidence_case_study/paper.md §4.4, the three skill files, the diff-reviewer prompt calibration footer, and the Founder Console /mcp-governance page.

Paper 03 — Runtime Evidence for Agentic Development

docs/arxiv/paper_03_runtime_evidence_case_study/ — ~9,700-word case-study paper with §4.4 hook inventory + §4.5 "Subagent layer — fresh-context adversarial review" new section, §6.4.1 measurement-bug retraction (preserves the wrong numbers + records the correction), §10 future-work update. Figures: fig2_hook_lifecycle.{md,png,pdf} re-rendered to show 15 hooks + subagent layer. Companion review at docs/strategic/agent_memory_review_2026_05_27.md.

Calibration against four 2026-05-27 production bugs

Bug Caught by
AuditEntry TypeScript interface drift → 500 Hook 14 (PostToolUse tsc) — same turn
verify_tracker.py --json exit-1 semantics diff-reviewer subagent, Category B (exit-code anti-pattern)
/release page hardcoded v0.4.0 diff-reviewer subagent, Category D (version drift)
runtime_evidence_self_audit.py session_start bucketing diff-reviewer subagent, Category C (bucketing bug)

Reproduce

git clone --branch v0.7.2 https://github.com/halvrenofviryel/phionyx-research.git
cd phionyx-research
pip install -e ".[dev]"

# All v0.7.x substrate tests (27 total)
python3 -m pytest tools/claude_code_mcp/tests/ -q

# Re-render Paper 03 fig2 (matplotlib path, headless-safe)
python3 docs/arxiv/paper_03_runtime_evidence_case_study/figures/render_figures.py --figure 2

# Read the paper
$EDITOR docs/arxiv/paper_03_runtime_evidence_case_study/paper.md

Discipline note

All five features are infrastructure / audit-surface expansions. Mind-loop stage: none. agi-architecture.md Invariant 3 applies.

v0.7.1 — Reasoning Memory Layer

Pre-release

Choose a tag to compare

@halvrenofviryel halvrenofviryel released this 27 May 19:10

Substrate evolution release. Two features in the Claude Code harness layer above phionyx_core. phionyx-core PyPI package itself remains at v0.7.0.

F-RM1 — Reasoning Memory Graph

Typed Pydantic graph view over existing pipeline-MCP telemetry. Inspired by the 2026-05-26 agent-memory writeups from Paul Iusztin (Designing Your Agents' Unified Memory) and Akshay Pachaar (Pydantic fixed my Agent's Memory).

  • 5 node types: SessionNode · ClaimNode · VerdictNode · CommitNode · ToolCallNode
  • 6 edge types: produced_verdict · had_evidence_type · led_to_commit · belongs_to_session · preceded_commit · triggered_revision
  • 6 canonical queries — query_tool_pass_rate · query_phi_bucket_pass_rate · query_commits_by_directive · query_passed_despite_no_evidence · query_gate_to_commit_lag · honestly-empty query_evidence_type_pass_rate (v0.8.0 candidate: extend telemetry write to capture input parameters)

Reproduce: python3 -m pytest tools/claude_code_mcp/tests/test_reasoning_memory_graph.py -q11 passed.

F-MS1 — Memory Schema Validation

Pydantic discipline applied to the Claude Code auto-memory directory (the same discipline Phionyx applies to its own evidence envelopes).

  • MemoryFrontmatter model with 5 types (user / feedback / project / reference / reasoning_lesson), 5 required fields, body 5–200 line bounds, kebab-case slug enforcement, [[link]] validation, ISO-8601 date validation.
  • CLI gate check_memory_schema.py — informational by default; PHIONYX_MEMORY_STRICT=1 blocks.

Reproduce: python3 -m pytest tools/claude_code_mcp/tests/test_memory_schema.py -q16 passed.

Files in this release

tools/claude_code_mcp/
├── reasoning_memory_graph.py        (F-RM1 typed graph)
├── memory_schema.py                  (F-MS1 Pydantic frontmatter model)
├── check_memory_schema.py            (F-MS1 CLI gate + SessionStart hook entry)
├── README.md
└── tests/
    ├── test_reasoning_memory_graph.py   (11 tests)
    └── test_memory_schema.py            (16 tests)

Discipline note

Both features are infrastructure / audit-surface expansions, not cognitive progress. Per .claude/rules/agi-architecture.md Invariant 3: retrieval-only changes are NOT AGI progress. Mind-loop stage: none.

Companion ship

v0.7.2 follows immediately (release notes) with the Self-Correcting Loop (P1–P5) and Paper 03 §4.5 documenting both releases.

phionyx-core v0.7.0 — Compliance Evidence Pack

Choose a tag to compare

@halvrenofviryel halvrenofviryel released this 27 May 09:27

Phionyx v0.7.0 — Compliance Evidence Pack

Release date: 2026-05-27 (target was 2026-11-30 → shipped ~6 months early; supplement target was 2026-06-30 → shipped one month ahead even of the recalibrated date).
Theme: From envelope chain to framework-shaped evidence draft. The same signed audit trail that powered v0.6.0 multi-agent evidence now exits the developer surface and enters the compliance surface — with bounded-authority pattern preserved, memory mutations audited, and two new schemas in the portfolio.

This release answers the question that follows "a model saying fixed is not evidence" and "multi-agent flows need a shared evidence shape": when a compliance officer or external auditor asks "what happened, signed, replayable, by whom, when, under what policy?" — what does the runtime evidence layer hand them?

Six work blocks ship: phionyx-compliance with four framework templates (W1), RGE v0.2 reasoning + retrieval extensions (W2.1 + W2.2), schema portfolio bump (W2.3), phionyx-letta memory mutation audit (W3), and the HearthOS bounded-authority envelope foundation with three reviewer-runnable pinned traces (W4.1 + W4.2.a). The actual interactive HearthOS demo UIs (W4.2.b) are intentionally deferred to product-cycle work; the v0.7.0 ship is the wire-level evidence layer.

Two new schemas join the portfolio: Schema 8 phionyx.memory_mutation_envelope.v1 (Letta) and Schema 9 phionyx.bounded_authority_envelope.v1 (HearthOS). Both are additive — every v0.6.0 envelope continues to validate; no breaking changes.


Highlights

What Where
F14 — phionyx-compliance package + 4 framework templates tools/phionyx_compliance/
F4 — RGE v0.2 reasoning surface extension (3 fields) examples/envelopes/rge_v0_2/rge_v0_2.schema.json §reasoning
F8 — RGE v0.2 retrieval block activation (6 fields) same schema §retrieval
F15 — phionyx-letta memory mutation audit (Schema 8) tools/phionyx_letta/
HearthOS bounded-authority envelope (Schema 9) apps/phionyx-website/lib/hearthos/envelope.ts + 3 pinned traces
v0.7.0 schema portfolio document examples/envelopes/v0_7_schema_portfolio.md

F14 — phionyx-compliance (W1)

Read-only over the envelope chain. Produces framework-shaped markdown drafts from signed evidence. Does not certify.

Four framework templates ship at v1.0.0:

  1. EU AI Act Article 13 — transparency obligations (W1.2, first to ship)
  2. NIST AI RMF 1.0 — MAP / MEASURE / MANAGE / GOVERN functions (W1.5)
  3. ISO/IEC 42001:2023 — AI management system, Annex A controls subset (W1.5)
  4. OWASP Agentic AI Threats v1.0 — ASI01–ASI10 threat coverage (W1.5)

Every report carries the canonical disclaimer at head and tail:

Reports produced by this package are evidence-oriented mappings, not legal compliance guarantees. A lawyer or auditor must review before any use that implies legal posture. Phionyx does not certify AI systems; it produces the evidence chains that certifications rely on.

CLI surface:

phionyx-compliance list-templates
phionyx-compliance describe eu-ai-act-article-13
phionyx-compliance render-sample owasp-agentic-ai-v1 --format markdown
phionyx-compliance generate --trace trace-xxx --template iso-iec-42001 \
  --operator-inputs operator_inputs.yaml --out reports/2026-05-27-article-13.md

Claude Code plugin command (W1.4):

/phionyx:evidence-report eu-ai-act-article-13 trace-xxx operator_inputs.yaml

Total: 30/30 tests pass across the four-template parity suite.


F4 — Reasoning surface extension (W2.1)

Three new optional fields on the RGE v0.2 reasoning block:

  • rationale_summary — runtime-produced one-line distillation of the reasoning surface (distinct from model_stated_rationale).
  • knowledge_sources_consulted[] — typed list of consulted sources (retrieval_corpus / memory_block / tool_output / tool_descriptor_clause / static_doc / system_prompt / external_api).
  • constraints_acknowledged[] — typed list with optional satisfied: bool (policy / user_directive / safety_boundary / tool_descriptor_clause / regulatory / self_imposed).

Additive — v0.6.0 envelopes without these fields continue to validate against the v0.7.0 schema. The builder in phionyx_mcp_server.audit_chain emits null/empty defaults so producers that do not surface reasoning metadata produce schema-valid envelopes without code change.


F8 — Retrieval block activation (W2.2)

The retrieval block in RGE v0.2 was reserved (status="reserved-for-v0.4.1-f8") since v0.4.0. v0.7.0 W2.2 flips Phionyx's own producers to status="active" and adds:

Block-level:

  • corpus ({name, version, language}) — semantic corpus metadata
  • similarity_threshold — cutoff used to gate retrieved → candidate
  • query_text_hash — SHA-256 of the user-formatted query text

Per-document:

  • chunk_offset — zero-indexed chunk position
  • source_url — canonical URL
  • retrieved_at — ISO-8601 retrieval timestamp (may predate envelope timestamp when cached)

New builder helper: phionyx_mcp_server.audit_chain.build_retrieval_block(RetrievalContext). build_envelope(..., retrieval=RetrievalContext(...)) integrates it into the signed envelope.

Test result: 6 new W2.2 tests + 14 prior = 20/20 pass.


W2.3 — v0.7.0 schema portfolio document

examples/envelopes/v0_7_schema_portfolio.md captures the eight-schema portfolio with the additive extensions and the two new schemas (8, 9) documented. Versioning policy reaffirmed: strictly additive within a major, schema id bump only on breaking change or semantic shift.


F15 — phionyx-letta memory mutation audit (W3)

New package. Schema 8 (phionyx.memory_mutation_envelope.v1). Per-mutation signed envelope with structured before/after diff.

Six mutation kinds: write, append, clear, delete, forget, consolidate.

compute_memory_diff() produces:

  • before_hash / after_hash (SHA-256)
  • before_size_bytes / after_size_bytes
  • added_chars / removed_chars / unchanged_chars (via difflib.SequenceMatcher)
  • Optional diff_text (opt-in only — PII safety)

W3.2 adds MemoryConsolidationAudit subblock — cross-references canonical pipeline block #43 (memory_consolidation) when episodic memories promote to semantic.

W3.3 adds cross-runtime composition via subject.metadata.memory_audit.parent_envelope_ref — upstream adapter envelopes (langchain_event, openai_agents_event, RGE v0.2) link to the memory mutation they caused.

Test result: 20/20 pass across W3.1 / W3.2 / W3.3.


HearthOS bounded-authority envelope (W4.1 + W4.2.a)

Schema 9 (phionyx.bounded_authority_envelope.v1). TypeScript runtime emits envelopes directly — no Node CLI shim, no Python translator. Reuses canonical JSON + SHA-256 hash chain + HMAC-SHA-256 signing.

Eight event types covering the full bounded-authority lifecycle: propose, execute_requested, execute_approved, execute_rejected, execute_completed, safety_gate_blocked, authority_tier_change, proof_recorded.

Seven preservation rules verified by verifyBoundedAuthority() (separate from verifyChain() — domain rules live in their own layer):

  1. No execute_completed without prior execute_approved for the same action_id.
  2. execute-high-stakes needs two distinct approver_id_hash values.
  3. safety_gate_blocked envelope ALWAYS emits even when verdict=block (no sansür).
  4. authority_tier_change followed by proof_recorded(permission).
  5. approver_id_hash is hex of length 64 (SHA-256).
  6. never_rules_active + stop_conditions_active cannot shrink without intervening authority_tier_change.
  7. proof_obligations_declared discharged within K turns (default K=50).

Three pinned demo traces ship as .jsonl files under apps/phionyx-website/public/hearthos/audit-traces/:

Trace Envelopes Demonstrates
demo-diagnostic-v1.jsonl 14 PROPOSE-only flow (no EXECUTE, no approvals)
demo-weekly-reset-v1.jsonl 16 Full lifecycle: 3 approved actions + 1 rejected + proof_recorded per outcome
demo-boundary-script-v1.jsonl 11 safety_gate_blocked envelope emitted even when verdict=block (rule 3)

Reviewers can verify any trace offline:

python3 -c "
from phionyx_mcp_server.audit_chain import verify_chain
import json, sys
chain = [json.loads(l) for l in open(sys.argv[1])]
print(verify_chain(chain))
" apps/phionyx-website/public/hearthos/audit-traces/demo-diagnostic-v1.jsonl

Signing uses the publicly-published all-zeros HMAC key ("0" * 64) — replay reproducibility, not unforgeability. The browser-only demo has no operator-side state to protect; reviewers need byte-identical replay.

Scope note (corrected 2026-05-27 post-publish): the interactive HearthOS demo UI modules are already live at phionyx.ai/hearthos/demo — three Next.js static-export modules (12-question Diagnostic, Weekly Reset plan generator, Boundary Script generator with parent-approval queue). What v0.7.0 ships is the wire-level evidence layer that the demo modules will be wired to in a follow-up patch: the envelope library + the three pinned .jsonl traces. The integration step — making the live demos emit envelopes via the Schema 9 library to IndexedDB with a "Download audit chain" button — is W4.2.b in the next cycle. Today, reviewers can verify the wire-level discipline by downloading the pinned traces; the live demos demonstrate the pattern visually but do not yet emit envelopes.


Schema portfolio at v0...

Read more

phionyx-core v0.6.0 — Multi-Agent Evidence

Choose a tag to compare

@halvrenofviryel halvrenofviryel released this 25 May 13:34

phionyx-core v0.6.0 — the Multi-Agent Evidence release. 4 months ahead of plan (target 2026-09-29 → actual 2026-05-25).

Install:

pip install phionyx-core==0.6.0

What changed in phionyx-core

  • phionyx_core.contracts.envelopes.SubagentChainV0 — Pydantic v2 model for the per-turn multi-agent / subagent audit chain block. Three role invariants (root depth=0 + null parent fields; non-root depth≥1 + non-null parent fields; leaf has zero child_agent_ids) enforced by model_validator(mode="after") and mirrored in the published JSON Schema.
  • compute_handoff_signing_body(...) helper — canonical-JSON encoding of the 5-field handoff signing body per RFC §2.4. Caller-supplied signer.
  • SubagentChainProtocol / SubagentChainRole Literal types — closed enums covering a2a, agntcy, phionyx_native, langgraph_subgraph, crewai, autogen and root/child/leaf.
  • Public envelope surface grew from 8 to 12 exports. Strictly additive; no removals, no renames.
  • __version__"0.6.0".

What changed in documentation

  • examples/envelopes/subagent_chain_v0_1/ — 6-file RFC bundle (RFC + JSON Schema + 3-agent minimal envelope + A2A worked example + extended walkthroughs + migration doc).
  • examples/envelopes/rge_v0_2/ — RGE v0.2 RFC bundle backported from v0.4.0 W1 (was monorepo-internal until now).
  • examples/envelopes/v0_6_schema_portfolio.md — catalogue of the 7 schemas Phionyx publishes at v0.6.0 + additive-only versioning policy.
  • docs/adr/0007-multi-agent-envelope-chain.md — decision record.
  • docs/releases/v0.6.0_RELEASE_NOTES.md — full release notes.

CI restoration (separate from release content)

Discovered while staging v0.6.0: CI had been failing silently since the v0.5.0 ship commit. pip install -e ".[dev]" was succeeding with an empty extras set, so ruff/mypy/pytest never installed; every CI step subsequently failed at "command not found"; the release.yml workflow runs independently of CI and published v0.5.0 to PyPI regardless. Fixed in this release:

  • [project.optional-dependencies] dev re-declared with ruff, mypy, pytest, hypothesis, jsonschema, opentelemetry-api.
  • [tool.mypy] now enables the pydantic.mypy plugin and per-module overrides for runtime-optional dependencies.
  • [tool.coverage.report] fail_under collapsed from sub-table to single float (the v0.5.0-era [tool.coverage.report.fail_under] total = 80 form was rejected by coverage.py 7.x).
  • [tool.pytest.ini_options] addopts dropped its monorepo-only --cov=echo-server/app --cov=adapters --cov=scripts paths that did not exist in the public checkout.
  • 5 of 6 stale type: ignore comments restored after a one-cycle removal turned out to break the otel-not-installed code path.
  • Branch protection rule on main requires all 5 CI status checks (pytest 3.10 / 3.11 / 3.12 / 3.13 + build) green before merge. Forces a v0.5.0-style silent CI regression to be visible at the PR level rather than discovered post-release.

Companion packages shipping alongside

  • phionyx-eval v0.1.0a1 (PyPI · repo) — LLM-as-judge primitive (F9) + Langfuse / LangSmith cross-runtime importers (F13). Caller supplies the LLM client; runtime derives the verdict from the rubric threshold, not the model.
  • Claude Code plugin /phionyx:replay-trace (F12-plus) — walks a persisted multi-agent envelope chain timestep-by-timestep. Ships in the v0.5.1 plugin's tools/phionyx_claude_code_plugin/ distribution.

Tests

  • 42 new tests in this release (12 contract + 30 unit) targeting SubagentChainV0 invariants + compute_handoff_signing_body canonical-JSON discipline.
  • 1048/1048 tests/core pass with the restored CI configuration.

Breaking changes

None. v0.6.0 is fully backwards-compatible with v0.5.0.

Links

v0.5.0 — Distribution & First-Run Proof (ecosystem milestone)

Choose a tag to compare

@halvrenofviryel halvrenofviryel released this 24 May 05:52

Ecosystem milestone release. The phionyx-core public API surface is unchanged from v0.4.0 except for one new discoverability namespace (phionyx_core.__companions__). What changed is the surrounding ecosystem.

Shipped ~2 months ahead of the 2026-07-28 milestone target.

What's new in phionyx-core

  • phionyx_core.__companions__ — discoverable dict of the 5 official Phionyx ecosystem packages on PyPI. Each entry is (pypi_name, github_repo, what_it_does). Backwards-compatible; added to __all__.
  • pyproject.toml + CITATION.cff bumped to 0.5.0
  • .zenodo.json author ORCID iD populated (0009-0002-3718-4010)

Ecosystem additions (separate PyPI releases, not phionyx-core code)

  • phionyx-langchain-langgraph 0.1.0a1 — native LangChain BaseCallbackHandler + LangGraph supervisor adapter. Every chain/tool/LLM event and every supervisor handoff becomes a signed envelope. 52 tests. (PyPI · Repo)
  • phionyx-openai-agents 0.1.0a1 — OpenAI Agents SDK TracingProcessor adapter. Cross-thread emission lock (5-thread × 20-callback test verifies dense [0..99] turn-index sequence). 37 tests. (PyPI · Repo)
  • phionyx.ai/standard — 3-button discovery hero on the Evaluation Standard page
  • phionyx.ai/examples — unified showcase comparing 3 framework bundles

Unchanged

  • 46-block pipeline contract v3.8.0 — no block additions, removals, or reordering
  • All v0.4.0 public API exports (87 functions/classes/types)
  • All v0.4.0 evidence guarantees
  • phionyx-mcp-server, phionyx-pipeline-mcp, phionyx-eval-inspect companion packages

Verification

  • pip install phionyx-core==0.5.0
  • python -c "import phionyx_core as p; print(p.__version__, list(p.__companions__.keys()))"
  • 1158 tests pass / 3 skipped / 0 failed (same baseline as v0.4.0)

Note on this release page

The reproducibility-pack workflow step failed in CI for this tag (the kill-switch tripped during the pack's pytest run — a pre-existing CI quirk unrelated to v0.5.0 code changes). PyPI publish succeeded independently. The reproducibility-pack zip from v0.4.0 remains attached to the v0.4.0 release; a v0.5.0 pack will be regenerated and attached separately.