Skip to content

Changelog

This page mirrors release notes from CHANGELOG.md.

Unreleased

  • Added unified data layer with SourceAdapter protocol, SourceAdapterBase mixin, FetchResult/CacheManifest value types, and CacheLayer (DuckDB-backed PIT/market cache).
  • Added built-in source adapters: TiingoAdapter (market OHLCV), FREDSourceAdapter (macro PIT), CFTCAdapter (CoT positioning), DTCCAdapter (swap derivatives).
  • Added alphaforge.source_adapters entry-point group and discover_adapters() for plugin-style adapter registration.
  • Added SourceAdapterPITCompat bridge allowing unified SourceAdapter instances to be used through the legacy PITAdapter interface.
  • Extended DataContext with adapters, default_sources, fetch(), fetch_many(), prefetch() — fully backward compatible.
  • Moved PIT transforms from positioning into alphaforge.data.transforms (cot_pit, dtcc_pit, utils).
  • Fixed type annotation errors in pit/accessor.py and pit/models.py (stale type: ignore comments, TypedDict narrowing, and ast.Call attribute access error codes).
  • Added PIT contract version API (PIT_CONTRACT_VERSION, get_pit_contract_version) and migration guide support.
  • Added ingestion policy modes for PIT upserts: strict=\"error|warn|coerce\" (bool remains backward compatible).
  • Added release selection helpers: list_release_stream(...) and resolve_release(...).
  • Added union-vintage utility: list_union_vintages(..., mode=\"event|calendar\").
  • Added expression graph APIs: explain_expression_graph(...), preview_expression_graph(...), apply_expression_graph(...).
  • Added snapshot panel builder: build_snapshot_panel(series_specs, asof, align=..., join=...).
  • Added PIT transform pipeline orchestration (PITPipelineSpec, PITPipelineStep, preview_pipeline, apply_pipeline, explain_pipeline) with dependency-safe execution.
  • Added PIT pipeline metadata/run tracking tables and accessors (list_pipelines, list_pipeline_runs) for reproducible run history.
  • Added incremental pipeline controls (incremental, since_asof, since_run_id) and deterministic effective as-of anchor resolution.
  • Added PIT cross-series op="binary" transforms (add/sub/mul/div) with deterministic lineage and causality-preserving execution.
  • Added cross-series transform lineage payloads with per-input source as-of timestamps and multi-input transform metadata.
  • Expanded PIT task utilities with revision_event_stream(...) and revision_volatility(...).
  • Enhanced staleness helper output (forward_fill_with_staleness) with source_obs_date and age.
  • Added CI-verified runnable PIT docs examples (tests/test_docs_pit_examples.py) and a dedicated docs-examples CI job.
  • Added PR guard script (scripts/check_pit_docs_sync.py) and CI job to enforce PIT docs + changelog updates when PIT public interfaces change.
  • Added PIT typed exception hierarchy for deterministic contract/error handling.
  • Added strict PIT ingestion validation API (PITValidationReport, validate_pit_observations) and made strict validation the default for upsert_pit_observations.
  • Tightened transform parameter contracts with per-operator key validation and canonical normalization.
  • Added PITAccessor.preview_transform(...) and dict-based transform spec compatibility.
  • Added explicit allow_experimental=True gating for axis=\"revision_path\".
  • Updated transform engine contract so auto prefers DuckDB for supported specs and falls back deterministically to Python when configured.
  • Expanded PITTransformResult with requested engine and fallback metadata.
  • Tightened PITDataSource query contract (pit.snapshot requires asof; unsupported vintage modes now fail explicitly).
  • Added PIT query helpers: PITDataSource.snapshot_query(...) and PITDataSource.observations_query(...).
  • Added canonical PIT table and PIT accessor for snapshot and revision timeline queries.
  • Added reference period keys and PIT ref-based queries for snapshot ranges and revision timelines.
  • Added PIT transform engine (apply_transform, list_transforms) with lineage/run tables.
  • Added PIT safety toolkit (ReleaseLagPolicy, effective_asof, pit_leakage_report).
  • Added PITDataSource with pit.snapshot and pit.observations contracts.
  • Added PIT helper tasks for vintage selection, revision analytics, staleness, and YoY/QoQ transforms.
  • Added experimental revision_path transforms for diff, lag, rolling, and expanding.