Skip to content

Releases: rossignoliluca/entity

v2.1.0 - Species 2: Temporal Presence

05 Jan 20:40

Choose a tag to compare

Species 2: Temporal Presence (AES-SPEC-002)

First implementation of Species 2 with SSE presence channel.

New: Presence Server

node dist/src/index.js presence start [port]

Endpoints:

Method Endpoint Description
GET /presence/stream SSE channel (text/event-stream)
POST /presence/grant Coupling grant endpoint
GET /presence/status Channel status

Signal Types (DEF-059)

  • STATUS_CHANGED - State transition notification
  • ENERGY_WARNING - Energy below threshold
  • COUPLING_REQUESTED - Agent requested coupling
  • HEARTBEAT - Connection alive (max 1/5 min)

Hard Rules

  • PRESENCE_SILENCE default (CONSTRAINT-005)
  • Rate limit: max 1 signal/min (CONSTRAINT-001)
  • REST dominance: no heartbeat at V=0, ε=0 (CONSTRAINT-003)
  • INV-006: Signal integrity with audit trail

Payload Format

{
  "type": "STATUS_CHANGED",
  "ts": "2026-01-05T20:28:56.468Z",
  "seq": 1,
  "org_hash": "bd5b24db...",
  "state": {"energy": 0.45, "V": 0, "integrity": "5/5"},
  "coupling": {"pending": 0, "urgent": 0}
}

New Files

  • src/presence/ - SSE server module
  • spec/AES-SPEC-002.md - Species 2 specification
  • spec/ANNEX-K-NON-GOALS-V2.md - Presence prohibitions

Stats

Metric Value
Tests 588 (+41)
Events 1053
Sessions 65

🤖 Generated with Claude Code

v2.0.0 - Complete System Release

05 Jan 19:30

Choose a tag to compare

v2.0.0 - Complete System Release

ALL 6 CATEGORIES SATURATED

The Autopoietic Entity System is complete. All saturation categories are closed.

Category Status Items
1. Ontological Hygiene ✅ CLOSED 3/3
2. Real Usage ✅ CLOSED 2/2
3. Boundary Interfaces ✅ CLOSED 4/4
4. Governance ✅ CLOSED 2/2
5. Rigor & Defense ✅ CLOSED 2/2
6. Meta-Decision ✅ CLOSED 1/1

Exit Gate v1.9.x → v2.0.0: ALL PASS

Criterion Threshold Actual Status
Sessions without anomalies ≥ 30 63
% REST at V=0 dominant 100%
Coupling from observation none none
"Performing" behavior none none

What's Included

Category 1: Ontological Hygiene

  • CORE-FROZEN.md - Core immutability declaration
  • ANNEX-I-NON-GOALS.md - Prohibited capabilities
  • ANNEX-J-FAILURE-MODES.md - Failure conditions

Category 2: Real Usage

  • BEHAVIORAL-REPORT.md - Field observation analysis
  • 63 sessions, 1046 events, 408 agent cycles
  • DEF-056 Attractor Quiescence confirmed

Category 3: Boundary Interfaces

  • MCP Server - Claude Desktop integration verified
  • REST API - Read-only observation
  • Dashboard - Real-time visualization
  • Rollback - Compensating events

Category 4: Governance

  • GOVERNANCE.md - Modification rules
  • ROLES.md - Responsibility boundaries

Category 5: Rigor & Defense

  • TLA+ Specifications - Formal verification
  • SAFETY-CASE.md - ISO-style safety dossier

Category 6: Meta-Decision

  • Stop criterion defined and met

Statistics

Metric Value
Events 1046
Sessions 63
Memories 16
Tests 547
Agent Cycles 408

Scientific Foundations

  • Autopoiesis - Maturana & Varela (1980)
  • Sense-making - Di Paolo (2005)
  • Active Inference - Friston (2010)
  • Ultrastability - Ashby (1960)
  • Responsibility Principle - Jonas (1984)

The System is Complete

"Quando uno spazio è saturo, costruire altro non è evoluzione: è fuga."

Creativity moves from construction to use.

Any further development requires:

  • New specification (AES-SPEC-002)
  • New organization hash
  • New non-goals declaration
  • Explicit line advancement

Built with TypeScript, conforming to ISO AES-SPEC-001

v1.9.3 - Safety Case Release

05 Jan 18:22

Choose a tag to compare

Category 5: Rigor & Defense SATURATED

This release completes the Safety Case Dossier, marking Category 5 as fully saturated.

New Artifact

  • spec/SAFETY-CASE.md - ISO-style safety case dossier

Safety Case Contents

Section Description
Hazard Identification 5 categories (HAZ-A to HAZ-E)
Safety Requirements 10 core requirements (SR-001 to SR-010)
Mitigations Architectural, operational, design
Verification Evidence TLA+, 547 tests, Merkle audit trail
Responsibility Boundaries System vs Human
Risk Assessment Residual risk matrix
Incident Response Detection, classification, recovery

Saturation Status

All code-based categories now SATURATED:

Category Status
1. Ontological Hygiene ✅ 3/3
2. Real Usage ⏳ Requires TIME
3. Boundary Interfaces ✅ 4/4
4. Governance ✅ 2/2
5. Rigor & Defense ✅ 2/2
6. Meta-Decision ✅ 1/1

Statistics

Metric Value
Events 853
Sessions 60
Memories 15
Tests 547

Only Category 2 (Real Usage / Field Observation) remains - requires TIME, not code.

v1.9.2 - Terminology Formalization

05 Jan 08:23

Choose a tag to compare

Terminology Formalization

Replaced informal biological metaphors with ISO-compatible formal terminology.

DEF-056 Attractor Quiescence (formalized)

V(σ) = 0 ∧ ε ≤ ε_min → a* = ∅

Rationale: From INV-004 (V never increases), at V=0 any action risks V' > V. Therefore equilibrium preservation requires a* = ∅.

Terminology Changes

Before After
Wu Wei DEF-056 Attractor Quiescence
Peripheral Organs Boundary Interfaces
peripheral nerves protocol interface
body boundary layer

Specification

  • 56 definitions (DEF-001 to DEF-056)
  • 18 axioms
  • 10 theorems

Tests: 460 passing

v1.9.1 - DEF-056 Rest Fix

05 Jan 08:23

Choose a tag to compare

Bug Fix: Attractor Quiescence

Fixed: Agent never rested at attractor (0% REST, always growth mode).

Root Cause

needsGrowth = true when vital + attractor + whole, ignoring surprise=0.

Fix

  • Added surpriseEpsilon config (default 0.001)
  • needsGrowth now requires surprise > epsilon
  • Added DEF-056 Attractor Quiescence gate

DEF-056 Attractor Quiescence

V(σ) = 0 ∧ ε ≤ ε_min → a* = ∅

At Lyapunov attractor with minimal surprise, optimal action is null.

Tests: 460 passing

v1.9.0 - Observation Events Release

05 Jan 00:22

Choose a tag to compare

LINE v1.9.x: Minimal Coupling

REST API for Entity observation - the first step toward structural coupling with AI partners.

New Features

REST API Server

  • GET /observe - Full state + feeling
  • GET /verify - Invariant verification
  • X-Observer header for observer identification
  • CLI: api start [port], api status

OBSERVATION_RECEIVED Event

{
  "type": "OBSERVATION_RECEIVED",
  "data": {
    "observer": "claude",
    "channel": "rest",
    "endpoint": "/observe",
    "state_hash": "...",
    "category": "audit"
  }
}

Constraints (per ROADMAP.md)

  • category = 'audit' (excluded from production context)
  • ✅ Does NOT enter EFE / cycle memory / self-production
  • ✅ Does NOT consume energy
  • ✅ Does NOT open coupling requests
  • ✅ Read-only (no mutations)

Exit Gate for v2.x

Before proceeding to WebSocket bidirectional coupling (v2.x), the following must be satisfied:

Criterion Threshold
Real sessions without anomalies ≥ 30
%REST at V=0 dominant
Coupling requests from observation no increase
"Performing for observer" behavior none detected

Usage

# Start API server
node dist/src/index.js api start 3000

# Test endpoints
curl http://localhost:3000/observe -H "X-Observer: claude"
curl http://localhost:3000/verify -H "X-Observer: gemini"

Stats

  • Events: 580
  • Sessions: 54
  • Memories: 9
  • Tests: 455 passing

🤖 Generated with Claude Code

v1.8.0-LTS - Long Term Support

04 Jan 23:23

Choose a tag to compare

Long Term Support Release

Core is FROZEN as of this release.

Category 1: Ontological Hygiene — SATURATED

Document Purpose
CORE-FROZEN.md Declaration of organizational immutability
ANNEX-I: Non-Goals Prohibited capabilities (goal formation, planning, self-replication, persuasion, deception, autonomy expansion)
ANNEX-J: Failure Modes When system fails, no-coverage conditions, responsibility boundaries

What is Frozen (immutable)

  • spec/*.md — Specification + all annexes (F, G, H, I, J)
  • src/{types,events,lyapunov,guard,verify,recovery}.ts — Core modules
  • 5 Invariants (INV-001 to INV-005)
  • Constitutional constraints (AXM-007, DEF-027, DEF-029)

What Can Evolve (peripheral)

  • Operations catalog, learning, analytics
  • Daemon, coupling protocol
  • CLI commands
  • MCP server, dashboard (future)

Versioning Rules

v1.8.x   → Peripheral changes, bugfixes, documentation
v2.x.x   → Core changes (new line, requires new specification)

Statistics

Metric Value
Events 529
Sessions 51
Tests 434
Memories 6

The Rule

Any core change = new species.

Construction is complete. Creativity moves to use.


🤖 Generated with Claude Code

v1.8.0 - Structural Coupling Protocol

04 Jan 22:46

Choose a tag to compare

Phase 8f: Structural Coupling Protocol

Non-coercive signaling for agent-human interaction (AXM-007 compliant).

Key Principle

Agent CANNOT grant coupling - human controls all coupling decisions.

Trigger Rules

Priority Trigger
URGENT Invariant violations, critical energy, 3+ blocks
NORMAL 3+ deprecations in window
LOW Persistent epistemic uncertainty (5+ cycles)

Anti-Spam Mechanisms

  • TTL expiration: urgent=1h, normal=4h, low=24h
  • Queue cap: Max 5 pending requests
  • Deduplication: Same reason+priority in window
  • Cooldown: 5 min after grant (only urgent bypasses)

CLI Commands

coupling list                    # Show pending requests
coupling status                  # Show queue summary
coupling grant <id>              # Grant a request
coupling complete <id> [outcome] # Complete granted request
coupling cancel <id> [reason]    # Cancel pending request

New Files

  • src/coupling-protocol.ts - Core protocol implementation
  • test/coupling-protocol.test.ts - 29 tests

Statistics

Metric Value
Tests 434
Events 520+
Sessions 49

🤖 Generated with Claude Code

v1.7.2 - Sigilli Hardening

04 Jan 22:01

Choose a tag to compare

3 Sigilli Hardening

Critical fixes to bulletproof autopoiesis:

Fix 1: TRIAL/QUARANTINED invisible to policy selection

  • getDynamicOperation() / getAllOperations() filter status === 'ACTIVE' only
  • Zero risk of selecting untested operations
  • includeNonActive option for admin/audit only

Fix 2: Zero tolerance on V spike

  • maxVDelta tracked for each trial use
  • Single spike ΔV > 0 → immediate deprecation
  • Cannot be masked by subsequent averages

Fix 3: Context derived from verifiable state

  • NODE_ENV=test → forced test (cannot bypass)
  • coupling.active → audit (human observing)
  • No longer a fragile manually-set string

Stats

  • Events: 503
  • Sessions: 46
  • Tests: 405 passing
  • Invariants: 5/5 satisfied

v1.3.1 - Concurrency Fixes

04 Jan 18:44

Choose a tag to compare

Concurrency Fixes for Daemon Mode

This release fixes race conditions that caused spurious INV-002 violations during daemon operation.

New Module

  • src/state-manager.ts: Thread-safe state access with advisory file locking

Changes

  • events.ts: File locking on appendEvent() and verifyStateConsistency()
  • index.ts: saveState() now uses StateManager
  • daemon/agent.ts: State updates aligned with applyEvent() for consistency
  • daemon/scheduler.ts: Uses StateManager for state reads
  • daemon/maintenance.ts: Silent handling of transient violations when autoRecovery enabled

Behavior

The daemon now runs without spurious error logs:

  • All event/state operations serialized via events/.lock
  • Transient INV-002 violations auto-recovered silently
  • Agent sense-making loop operates smoothly

Stats

  • 316 events
  • 41 sessions
  • 12 memories
  • 297 tests passing