Changelog
This page mirrors
CHANGELOG.mdat the project root. For the authoritative changelog, see the root file.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.1.3 - 2026-05-23
Added
physlink.adapters.wmel_bridge.DreamerWMELAdapter— bridge that wraps a fittedDreamerV3Adapterto satisfy the world-model-eval-labLeWMAdapterStubinterface. Implements random-shoot MPC in latent space viaencode()/rollout()/score()/plan(). Requirespip install "physlink[eval]".examples/wmel_integration.py— end-to-end example: synthetic data → fit adapter → wrap bridge → run WMELBenchmarkRunner.physlink[eval]optional dependency group: installstorch+wmelfrom GitHub.TrajectorySchema,TrajectoryBatch,TrajectoryBufferadded tophyslink.__all__(10 public symbols total, up from 7).TrajectoryBatch.quality_report(schema)— validate a batch against aTrajectorySchemaand return aTrajectoryQualityReportwith per-check results and an overall verdict.ROADMAP.md— public three-track roadmap: interface layer (complete), quality gate (complete), evaluation harness via WMEL bridge (complete).
0.1.2 - 2026-05-22
Added
register_invariant(adapter, name, fn, tolerance, mode)— attach a plain Python callable as a physical invariant check to aDreamerV3Adapter.mode="hard"rejects trajectories that violate the invariant;mode="soft"applies a loss penalty instead.ComplianceReport— pure data object returned byadapter.compliance_report(). Methods:summary()→ formatted string with pass/fail counts and overall compliance rateviolations()→ list of violation records with trajectory index, residual, and cause textplot()→ matplotlib histogram of residuals (lazy import — matplotlib not required at import time)export(path)→ write a JSON compliance record suitable for audit trail and institutional reviewTrajectoryBuffer.export(path)— persist a trajectory dataset to disk (safetensors format) to survive Colab session resets.TrajectoryBuffer.load(path)— reload a previously exported trajectory dataset.physlink.__all__finalized to exactly 7 symbols:doctor,ObservationSpace,ActionSpace,DreamerV3Adapter,register_invariant,ComplianceReport,PhysLinkError. This is the stable public API surface for the v0.1.x series.
0.1.1 - 2026-05-21
Added
DreamerV3Adapter— adapter wrapping the DreamerV3 world-model for use withObservationSpaceandActionSpace. Added tophyslink.__all__(now 5 symbols).DreamerV3Adapter.fit(config)— async training loop with rich progress bar showing step count, ETA, prediction health metric, and throughput (steps/s).debug_hooks=Trueconstructor toggle — attaches per-step debug callbacks for gradient norms and activation statistics.- Safetensors checkpoint auto-save at configurable intervals and automatic recovery on resume
(
CheckpointVersionErrorraised only for genuinely incompatible checkpoint schemas — not on every minor version mismatch). DreamerV3Adapter.visualize()— triptych GIF visualization: ground truth vs. prediction vs. delta rendered side-by-side.DreamerV3Adapter.export()— export trained adapter weights and metadata to a portable bundle; share panel included in the Colab UI viashare=Trueflag.AdaptationConfig(immutable, YAML-serializable) andAdaptationRun(stateful run object) added tophyslink.core._typesas advanced API — not exported viaphyslink.__all__at this level, but accessible for power users asfrom physlink.core._types import AdaptationConfig.
0.1.0 - 2026-05-20
Added
Epic 1 — Installable Package & Zero-Friction Diagnostics
physlink.doctor()— environment diagnostic scan that reports Go/No-Go status in under 15 s on a Colab T4 GPU instance. Checks PyTorch installation, CUDA availability, and package integrity.PhysLinkError— base exception class for the physlink package, providing a structured hierarchy for all library-raised errors.- GitHub Actions CI pipeline:
test-cpujob (runs on every push/PR) andtest-gpujob (runs on GPU-tagged runners; skipped with-m not gpuin CPU environments). - PyPI publication via OIDC trusted publisher — no stored API tokens required.
- README shields (CI status, PyPI version, Python version, license) and dual-path action bar (Colab quick-start + local install).
Epic 2 — Universal Space API
ObservationSpace— proprioception-based observation space with configurable bounds;.explain()returns a human-readable summary of the observation structure.ActionSpace— continuous action space with per-dimension bounds and dtype;.explain()describes the action semantics.TrajectoryBatch— core container type for batched trajectory data: observations, actions, rewards, and terminal flags stored as numpy arrays with shape validation..explain()introspection method available onObservationSpaceandActionSpace— returns a structuredExplanationobject suitable for display in notebooks and CLIs.- MkDocs documentation site with Google-style docstrings, deployed to GitHub Pages via the
mikeversioning plugin. physlink.__all__=["doctor", "ObservationSpace", "ActionSpace", "PhysLinkError"]— the initial 4-symbol public API surface.