Changelog¶
All notable changes to the Animus monorepo will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Fixed — Truth Baseline (2026-06-27)¶
scripts/truth-baseline.py—check_test_countnow fails when the shell command exits non-zero, even whenexpectedis not set in the TOML. Previously, missingpythonin the environment produced a silent false positive (0 tests reported as PASS).truth-baseline.toml— addedexpected = 1andop = ">="tocore_testsandforge_testschecks, pluspython3fallback whenpythonis unavailable.- New
version_alignmentcheck — reads allpackages/*/pyproject.tomlandpwa/package.jsonversions, reports mismatches.contracts/documented as exception (no manifest). Surfaces actual misalignment: core 2.3.0, forge 1.9.0, bootstrap 0.8.0, kernel 0.1.0, quorum 1.2.0, types 0.1.0, pwa 0.1.0.
Fixed — Test Infrastructure (2026-06-27)¶
- Root
pyproject.toml— Added[tool.pytest.ini_options]withpythonpathcovering all 8 package source directories, enabling pytest to discover sibling packages when run from repo root. truth-baseline.toml—core_testsandforge_testscommands updated to run from repo root with-c pyproject.tomlflag, bypassing per-package config files that lacked sibling package paths.- Results: core 2,832 tests (was 0), forge 10,431 tests (was 9,425 with 25 errors), kernel 99 tests (was 0), quorum 961 tests (was 861 with 2 errors), types 67 tests (was 22 with 3 errors). Truth baseline now 11/12 PASS (only
version_alignmentremains FAIL, documented).
Added — Version Compatibility Matrix (2026-06-27)¶
COMPATIBILITY_MATRIX.md— Documents actual versions across all 8 packages, inter-package dependencies, known incompatibilities, and verification command. Includes dependency graph and SemVer bump guidance.- Truth baseline updated:
compatibility_matrixcheck added (PASS when file exists).version_alignmentexpected to FAIL until unified versioning is adopted; mismatches are now documented rather than hidden.
Added — Schema Compiler (2026-06-27)¶
scripts/compile_schemas.py— New script usingdatamodel-code-generatorto auto-generate Pydantic v2 models frompackages/contracts/*.schema.json.- Generated 20 schema modules in
packages/types/src/animus_types/(action.py,event.py,assessment.py, etc.) pluscommon.pywith shared enums (ArtifactType,SubjectDomain,SecurityClass, etc.) and baseCommonmodel. packages/types/src/animus_types/__init__.py— Updated to re-export all generated models + legacy types.packages/types/tests/test_schemas.py— 22 tests: importable check for all 20 schemas + round-trip validation foractionandevent.packages/contracts/pyproject.toml— New package manifest, making contracts a real installable package.
Added — Scaffold Cleanup (2026-06-27)¶
- Root
contracts/deleted — Empty directory removed; canonical schemas live inpackages/contracts/. - READMEs added to
apps/,modules/,database/,infra/,evidence/releases/— each explains what belongs there, boundary vspackages/, and owner. - ADRs written: ADR-002 (Audience-Based Docs Tree), ADR-003 (Schema Compiler), ADR-004 (Truth Baseline Fix), ADR-005 (Kernel Extraction).
truth-baseline.tomlupdated: removedcontracts/fromroot_architecture_dirs, addedroot_architecture_readmesandadr_coveragechecks.
Added — Evidence Bundle MVP (2026-06-27)¶
scripts/assemble_evidence_bundle.py— New script that collects test counts, validates JSON schemas, captures git provenance, locks dependencies, and produces a human-readable markdown report with pass/fail badges.- Output: timestamped directory in
evidence/releases/evidence-YYYY-MM-DD-HHMMSS/containingmanifest.json,test-results.json,schema-validation.json,git-info.txt,dependencies.lock,report.md. - Flags:
--output-dirfor custom path,--allow-dirtyto permit uncommitted changes. - Integration: documented in
docs/operators/deployment.mdas a pre-release step.
Added — Documentation Reorganization (2026-06)¶
- Audience-based docs tree —
docs/reorganized from flat graveyard (44 files, no index) into structured lanes: getting-started/— quickstart, installation, conceptsarchitecture/— overview (rewritten for v2.1, 8 planes), packages, decisions, standardspackages/— per-package documentation with version matrixcontributing/— setup, workflow, debuggingoperators/— deployment, configuration, monitoring, troubleshootingreference/— glossary, FAQ, changelog, security, whitepapersroadmap/— current priorities and plans- 14 new placeholder files written with minimal viable content across all doc lanes
- docs-validate.py — CI validation script for internal links, anchor references, trailing whitespace, and redirect stubs
- Test count reconciliation — Core 2,865, Forge 10,304, Bootstrap 2,048, Quorum 961 (total 16,178)
- Gorgon→Forge naming cleanup in
packages/forge/(tests/README, skills/README, 6 SKILL.md files) - Bootstrap config reference expanded in
docs/operators/configuration.md— full schema covering identity, ollama, gateway, intelligence, channels, self-improvement, proactive, personas - Package READMEs written for Quorum, PWA, Contracts (previously missing)
- Whitepaper index populated at
docs/reference/whitepapers/README.md - MkDocs site — Material theme, dark/light mode, search, code copy buttons. Deploys to GitHub Pages via
.github/workflows/docs-deploy.ymlon every push tomainthat touches docs
Changed¶
docs/architecture/overview.md— rewritten from aspirational 4-layer hardware diagram to v2.1 reality (8 technical planes, no stale hardware references).github/workflows/ci.yml— Docs Validation job now callsscripts/docs-validate.pyinstead of inline Python/shell- Root
README.md— ASCII tree expanded to show all 8 packages, nav links updated to new docs tree
Fixed¶
- 6 broken internal links in
docs/reference/faq.mdandglossary.md(path depth errors) - Trailing whitespace in 29 session-modified files
- Stale test counts understated by ~11% across
docs/packages/README.mdand root README
Added — Quorum v2 Week 1: EventLog bitemporal + signal bridge¶
- Bitemporal-lite on
CoordinationEvent—valid_from(world-time) andrecorded_at(observation-time) fields ported from memboot's pattern. Backward-compatible:timestamppreserved as alias. - Idempotent SQLite migration —
EventLog._migrate()adds the two columns and backfills both fromtimestampon legacy databases; safe to re-run. EventLog.query()bitemporal range filters —valid_from_since/valid_from_untilfor world-time windows;since/untilcontinue to filter by observation-time.- Signal bridge —
EventLog(signal_bus=bus)mirrors every recorded event onto the bus asSignal(signal_type=f"event.{event_type.value}"). Best-effort; failures swallowed so bus issues never breakrecord(). - 4 of 5 mutation sites wired to
EventLog.record()— closes Constitutional Principle P3 (Transparency) onINTENT_PUBLISHED(resolver),VOTE_CAST(triumvirate),DECISION_MADE(triumvirate),MARKER_LEFT(stigmergy).SCORE_UPDATEDandINTENT_RESOLVEDdefer to Week 3-4 scorer registry. - Quorum test count: 920 → 957 (+37 tests across 4 new test files).
See docs/specs/quorum_v2_week1_event_log_extension.md and ADL-20260510-001.
[2.2.0] - 2026-03-05¶
Added¶
- Dual-model routing — Claude as brain (planning, code gen) + Ollama as hands (summarization, formatting)
- Task classification —
classify_task()heuristic routes HEAVY vs LIGHT tasks to appropriate model - Autonomous build pipeline — 4-agent Forge workflow (planner → coder → verifier → fixer) with quality gates and $2.00 budget cap
- Constrained tool selection — Numbered menu + key:value parsing for reliable Ollama tool use
- Task outcome tracking — Records outcomes in MemoryLayer, recalls similar past tasks, detects failure patterns, tracks success rates
- New archetypes —
planner,coder,verifieradded to ForgeAgent - New slash commands —
/build,/model,/statsin chat agent create_local_think_tool()— Lets Claude offload cheap subtasks to Ollama during agentic loop- Core test count: 1879 → 2046 (+167 tests)
Changed¶
think_with_tools()dispatch: non-Anthropic models now route to constrained loop instead of markdown loopchat.pyfully wired to Animus Core (CognitiveLayer, ToolRegistry, MemoryLayer, TaskOutcomeTracker)
[2.0.0] - 2026-02-20¶
Added¶
- Monorepo consolidation — Gorgon and Convergent merged into Animus as Forge and Quorum packages
- Four independently installable packages: Core, Forge, Quorum, Bootstrap
- Monorepo CI pipeline with per-package test jobs, security scanning, and benchmarks
- Bootstrap package (v0.5.0): install daemon, onboarding wizard, dashboard, gateway, intelligence layer, persona system
Changed¶
- Forge:
test_aimodule renamed toanimus_forge - Quorum: keeps
convergentAIPyPI name, imports asconvergent - Core: lightweight forge/swarm sub-engines for embedded orchestration
Fixed¶
- OAuth test patch target and race condition
- Forge async test failures (stale from prior codebase)
[1.0.0] - 2026-02-20¶
Added¶
- Forge/Swarm revise gate loop-back with
ReviseRequestedError - Register translation (LLM-based formal/casual/technical)
- Native Anthropic tool_use in cognitive layer
/workflowcommand in chat.py for running Forge YAML workflows
Fixed¶
- OAuth test patching correct target
datetime.utcnow()deprecation warnings
[0.7.0] - 2026-02-19¶
Added¶
- Swarm parallel agent orchestration with stigmergic coordination
- DAG analysis via Kahn's topological sort with parallel execution stages
- Stage-level atomic checkpoints
- Coverage hardening: 584 to 1475 tests (46% to 91%)
Fixed¶
- Gitleaks shallow clone issue (fetch-depth: 0)
- Python 3.10 compatibility (
datetime.UTCtotimezone.utc) - 30 CodeQL alerts resolved to 0
[0.6.0] - 2026-02-19¶
Added¶
- Forge multi-agent orchestration MVP
- YAML workflows with agent archetypes, token budgets, quality gates
- SQLite WAL checkpoints for workflow state
- Google Calendar and Gorgon integrations
- Sync protocol and learning system