Marivo 0.4.5
Marivo 0.4.5 gives agents a governed way to read authoritative Event completeness, makes semantic catalogs easier to traverse programmatically, and tightens cumulative analysis over semantic calendars. It also removes a PyArrow concurrency failure from frame and evidence reuse paths.
Highlights
Section titled “Highlights”session.observe_watermark(event, through=...)asks the Event’s backend completeness provider for an authoritativeEventWatermarkReceipt. It returnsNonewhen no authoritative watermark is available, keeping the distinction between observed facts and declared assumptions explicit.SemanticCatalog.items(kind)andcatalog[kind]provide one kind-keyed traversal path across everySemanticKind, alongside the existing named collections such ascatalog.metricsandcatalog.events.- Semantic-calendar grain-to-date analysis now records canonical fiscal reset evidence and fails closed when calendar snapshots contain gaps, overlaps, coverage escapes, or undeclared levels.
- Frame-cache and evidence Parquet writes no longer use dictionary encoding, and reads retry the transient PyArrow dictionary-bounds race that affected existing artifacts.
Changed
Section titled “Changed”ms.load()remains the single public semantic loading entry. The lower-levelSemanticProjectreader now exposescatalog()as the explicit bridge from its load result to a browsableSemanticCatalog.- Scalar semantic-calendar cumulative comparisons require
alignment=mv.period_progress(). Bucketed time-series and panel variants are rejected at the compare entry with a typed error and a concrete repair pointer instead of failing later with an untyped grain error. - Declared completeness with a rationale is reported as a disclosed governed
assumption rather than a quality warning. This prevents a valid declaration
from capping Event and lifecycle quality status at
warning.
- Period-calendar validation now rejects boundary gaps, overlaps, missing coverage, and declared non-day levels with no certified periods before any backend scan.
- Semantic fiscal reset identity and recovery paths retain the calendar reference, snapshot digest, and typed anchor semantics; unsupported decomposition fails with a typed attribution error.
- Empty
throughvalues passed tosession.observe_watermark(...)are rejected before a backend request is built. - Reused frame and evidence artifacts are resilient to the intermittent
ArrowInvalid: Index not in dictionary boundsfailure in PyArrow 25.
Documentation
Section titled “Documentation”- Documented the authoritative Event watermark read next to the backend provider contract in the English and Chinese analysis workflow guides.
- Refined the bilingual Analysis DSL design article and diagrams to clarify the boundary between constrained analytical actions and agent reasoning.
- Clarified semantic loading layers and cumulative comparison constraints in the repository specifications.
Installation
Section titled “Installation”curl -fsSL https://marivo.io/install.sh | bashIn mainland China, use:
curl -fsSL https://marivo.io/install-marivo-cn.sh | bashFor manual installation:
pip install marivoInstall the backend extra for each datasource you plan to use. Marivo 0.4.5 requires Python 3.10 or newer.