Skip to content

OpenEmpiric v0.97.1

Latest

Choose a tag to compare

@xpajonx xpajonx released this 10 Jun 10:35
· 6 commits to main since this release

OpenEmpiric (OEM) v0.97.1 focuses on hardening the local-first project memory runtime, addressing critical audit findings, resolving race conditions, and introducing diagnostic tools to guarantee stability for downstream developer agents.


What's New in v0.97.1

1. Hardened FileLock & Error Propagation

  • Atomic Serialization: Replaced lock verification with atomic lock file creation (os.O_CREAT | os.O_EXCL) containing JSON metadata (PID, Hostname, Timestamp, Owner UUID).
  • Stale Lock Recovery: Implemented local liveness checks (os.kill) and age-based timeouts to safely recover from crashed or orphaned lock contexts automatically.
  • Fail-Fast Error Routing: Propagated LockTimeoutError up through the state, materialization, indexing, and session commit layers. Lock contention now returns clear errors rather than silently reporting success.

2. Collision-Proof Concept ID Allocator

  • Dynamic Sequence Scanning: Removed fragile registry-length counters. Candidate concept IDs are allocated by scanning the highest numeric IDs across the JSON registry, .oem/wiki/ directory stems, and active in-flight reserved IDs.
  • No Overwriting: Avoids overwriting existing wiki files or duplicating IDs under concurrent execution via thread-safe/process-safe transaction locks.

3. Safe Import Environment

  • Zero Eager Mutation: Removed import-time clobbering of sensitive global environment variables (e.g., CUDA_VISIBLE_DEVICES, TOKENIZERS_PARALLELISM).
  • Scoped Entrypoints: Applied process-wide fallbacks only at executable boundaries (oem.cli.main and oem.server) to prevent host process corruption.

4. Non-Silent, Bounded session-end

  • Phase Timings: Introduced a PhaseTimer and progress reporting to give visible feedback during reflection, materialization, and indexing.
  • Safe Index Budgets: Enabled bounded indexing (--index-budget-seconds) with checks placed at database write boundaries to prevent corrupted SQLite transactions.
  • Manual Indexing: Added the oem index command to manually rebuild derived search databases when indexing is deferred.

5. Self-Ingestion Safeguards & Cleanup Command

  • Self-Ingestion Prevention: OEM-generated reports and wikis now automatically inject metadata tags to exclude them from being re-ingested as fresh conversation evidence.
  • oem clean Command: Introduced a utility supporting --dry-run and --apply (with automated backups) to detect and remove duplicate events, self-ingestion files, and legacy harness paths.

Summary of Changes

  • Files modified: 39 updated.
  • Test coverage: 306 automated tests passing (including 68 newly added targeted regression suites).
  • Stability: Resolved all silent timeouts and race conditions on the Instagram-Reels project.