episodic 0.2.3

Reusable Observational Memory core models and pure transforms.
Documentation
# episodic

Reusable Observational Memory (OM) core crate for agentic automation.

This crate is now carried inside the AxiomSync workspace as the internal OM core package.

## What this crate does
- models OM state explicitly (`OmRecord`, `OmObservationChunk`)
- defines inference contracts (`OmObserverRequest/Response`, `OmReflectorRequest/Response`)
- provides deterministic pure transforms for activation, observer writes, and reflection enqueues
- builds deterministic pipeline plans (`plan_process_input_step`, `plan_process_output_result`)
- parses model output with explicit recovery modes (`OmParseMode::Strict`, `OmParseMode::Lenient`)
- exposes strict-first accuracy entrypoints (`parse_*_accuracy_first`)
- keeps runtime integration behind addon ports (`OmApplyAddon`, `OmObserverAddon`, `OmReflectorAddon`)

## Non-goals
- storage/DB adapters
- network/model transport
- host runtime wiring

Those remain in host integration layers (for example, AxiomSync runtime integration code).

Prompt contracts emitted by `episodic` use the host-neutral name `episodic.om.prompt`.
Host runtimes may override that name at their boundary when they need runtime-specific contract branding.

## Data-first boundaries
- all major decisions are explicit return values, not hidden side effects
- async/sync behavior is resolved by config and action enums (`ReflectionAction`, `ObserverWriteDecision`)
- XML and prompt formatting paths are deterministic and escaped explicitly
- parser behavior is explicit: strict rejects malformed overlap, lenient recovers when possible

## Key modules
- `src/model.rs`: core memory record and invariant checks
- `src/config/resolve.rs`: config resolution and async-buffering constraints
- `src/parse/mod.rs`: structured parse + strict/lenient arbitration
- `src/transform/*`: pure decision and synthesis transforms
- `src/pipeline.rs`: host-call planning layer (no IO side effects)

## Verification status (2026-03-04)
Validated in this repository with:
- `cargo test`
- `cargo fmt --all --check`
- `cargo clippy --all-targets -- -D warnings`
- `cargo check --release`
- `cargo test --release`
- `cargo audit`
- `cargo package --allow-dirty`
- `cargo test --test contract_fixtures`

Result:
- no failing tests
- no clippy warnings
- no RustSec vulnerabilities reported

Non-blocking note:
- package metadata is configured (`repository`/`homepage`/`documentation`) and `cargo package` warning is cleared.

## File-by-file review coverage (2026-03-04)
- root files: `.gitattributes`, `.gitignore`, `Cargo.toml`, `README.md`, `RELEASE_REVIEW.md`
- source files: all `47` Rust files under `src/`
- integration tests: all files under `tests/`
- parity fixture: `tests/fixtures/parity_cases.json`