Releases: halvrenofviryel/phionyx-research
Release list
v0.9.1
v0.9.0
v0.8.1
release: phionyx-core v0.8.1 — patch (EventReference + vector_store f…
v0.8.0
fix(types): clear mypy debt so the 0.8.0 release passes the strict my…
v0.7.3
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
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.mdDiscipline 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
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-emptyquery_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 -q → 11 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).
MemoryFrontmattermodel 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=1blocks.
Reproduce: python3 -m pytest tools/claude_code_mcp/tests/test_memory_schema.py -q → 16 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
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:
- EU AI Act Article 13 — transparency obligations (W1.2, first to ship)
- NIST AI RMF 1.0 — MAP / MEASURE / MANAGE / GOVERN functions (W1.5)
- ISO/IEC 42001:2023 — AI management system, Annex A controls subset (W1.5)
- 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.mdClaude 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 frommodel_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 optionalsatisfied: 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 metadatasimilarity_threshold— cutoff used to gate retrieved → candidatequery_text_hash— SHA-256 of the user-formatted query text
Per-document:
chunk_offset— zero-indexed chunk positionsource_url— canonical URLretrieved_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_bytesadded_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):
- No
execute_completedwithout priorexecute_approvedfor the sameaction_id. execute-high-stakesneeds two distinctapprover_id_hashvalues.safety_gate_blockedenvelope ALWAYS emits even when verdict=block (no sansür).authority_tier_changefollowed byproof_recorded(permission).approver_id_hashis hex of length 64 (SHA-256).never_rules_active+stop_conditions_activecannot shrink without interveningauthority_tier_change.proof_obligations_declareddischarged 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.jsonlSigning 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...
phionyx-core v0.6.0 — Multi-Agent Evidence
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.0What 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 zerochild_agent_ids) enforced bymodel_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/SubagentChainRoleLiteral types — closed enums coveringa2a,agntcy,phionyx_native,langgraph_subgraph,crewai,autogenandroot/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] devre-declared with ruff, mypy, pytest, hypothesis, jsonschema, opentelemetry-api.[tool.mypy]now enables thepydantic.mypyplugin and per-module overrides for runtime-optional dependencies.[tool.coverage.report]fail_undercollapsed from sub-table to single float (the v0.5.0-era[tool.coverage.report.fail_under] total = 80form was rejected by coverage.py 7.x).[tool.pytest.ini_options]addoptsdropped its monorepo-only--cov=echo-server/app --cov=adapters --cov=scriptspaths that did not exist in the public checkout.- 5 of 6 stale
type: ignorecomments restored after a one-cycle removal turned out to break the otel-not-installed code path. - Branch protection rule on
mainrequires 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-evalv0.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'stools/phionyx_claude_code_plugin/distribution.
Tests
- 42 new tests in this release (12 contract + 30 unit) targeting
SubagentChainV0invariants +compute_handoff_signing_bodycanonical-JSON discipline. - 1048/1048
tests/corepass 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)
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__— discoverabledictof 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-langgraph0.1.0a1 — native LangChainBaseCallbackHandler+ LangGraph supervisor adapter. Every chain/tool/LLM event and every supervisor handoff becomes a signed envelope. 52 tests. (PyPI · Repo)phionyx-openai-agents0.1.0a1 — OpenAI Agents SDKTracingProcessoradapter. 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-inspectcompanion packages
Verification
pip install phionyx-core==0.5.0python -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.