Skip to content

Release v0.3.0: stability, continuous-time, adaptation, and public API cleanup#2

Merged
tjkessler merged 10 commits into
mainfrom
feature/v0.3.0
Jul 17, 2026
Merged

Release v0.3.0: stability, continuous-time, adaptation, and public API cleanup#2
tjkessler merged 10 commits into
mainfrom
feature/v0.3.0

Conversation

@tjkessler

@tjkessler tjkessler commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add v0.3.0 modeling features: structural long-horizon stability, continuous-time generators with irregular sampling, RLS online adaptation, hybrid physics observables, spectral similarity/anomaly helpers, and a Gymnasium latent-control env.
  • Reorganize the library into capability packages (nn, operators, data, training, analysis, baselines), thin the root public façade, and remove former root deep-import modules in favor of package paths.
  • Refresh tutorials, Sphinx docs, packaging metadata, and the METR-LA weekday cache (stored edge weights, corrected adjacency conversion, 288-step tutorial window).

Test plan

  • ruff check src/ tests/ and ruff format --check src/ tests/
  • pytest tests/ -v --cov=koopman_graph --cov-fail-under=80 (713 passed, ~91% coverage)
  • sphinx-build -b html -W --keep-going docs/source docs/build/html
  • pytest --nbmake examples/ (16/16 passed)
  • python -m build produces koopman_graph-0.3.0 sdist/wheel
  • CI green on the PR (test matrix + docs)

Made with Cursor

tjkessler and others added 2 commits July 15, 2026 21:46
…, and RL.

Prep the release branch with structural Koopman modes, continuous dynamics,
RLS online adaptation, physics observables, spectral similarity, and Gymnasium
env support. Leave the v0.3.0 Zenodo DOI unset until the archive is minted.

Co-authored-by: Cursor <cursoragent@cursor.com>
Split nn/operators/data/training/analysis/baselines into capability packages,
remove root deep-import modules, stabilize shared contracts and rollouts, and
refresh tutorials, docs, and the METR-LA weekday cache with stored edge weights.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cursor

cursor Bot commented Jul 17, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Introduce analysis.plot_spectrum with unit-disk vs data framing, migrate notebooks 06/07, and refresh JOSS paper plus tutorial outputs for the thinned capability API.

Co-authored-by: Cursor <cursoragent@cursor.com>
@codecov-commenter

codecov-commenter commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.96205% with 58 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/koopman_graph/data/containers.py 92.98% 4 Missing and 4 partials ⚠️
src/koopman_graph/training/loop.py 96.61% 4 Missing and 3 partials ⚠️
src/koopman_graph/datasets/ieee118.py 62.50% 4 Missing and 2 partials ⚠️
src/koopman_graph/model.py 97.22% 2 Missing and 4 partials ⚠️
src/koopman_graph/operators/continuous.py 98.24% 2 Missing and 4 partials ⚠️
src/koopman_graph/baselines/base.py 96.07% 2 Missing and 2 partials ⚠️
src/koopman_graph/baselines/dmdc.py 94.36% 2 Missing and 2 partials ⚠️
src/koopman_graph/operators/discrete.py 98.74% 1 Missing and 3 partials ⚠️
src/koopman_graph/graph_utils.py 97.19% 2 Missing and 1 partial ⚠️
src/koopman_graph/adaptation.py 98.96% 1 Missing and 1 partial ⚠️
... and 5 more
Files with missing lines Coverage Δ
src/koopman_graph/__init__.py 100.00% <100.00%> (ø)
src/koopman_graph/analysis/__init__.py 100.00% <100.00%> (ø)
src/koopman_graph/analysis/anomaly.py 100.00% <100.00%> (ø)
src/koopman_graph/analysis/similarity.py 100.00% <100.00%> (ø)
src/koopman_graph/analysis/spectrum.py 100.00% <100.00%> (ø)
src/koopman_graph/baselines/__init__.py 100.00% <100.00%> (ø)
src/koopman_graph/baselines/dmd.py 100.00% <100.00%> (ø)
src/koopman_graph/data/__init__.py 100.00% <100.00%> (ø)
src/koopman_graph/data/rollout.py 100.00% <100.00%> (ø)
src/koopman_graph/data/sampling.py 100.00% <100.00%> (ø)
... and 37 more
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

tjkessler and others added 7 commits July 16, 2026 21:45
Reduce plot_spectrum data-mode padding so eigenvalue clusters fill the axes, and standardize notebooks 06/07 on limits="data".

Co-authored-by: Cursor <cursoragent@cursor.com>
Add targeted tests for continuous/adaptation/model/env validation paths so local coverage clears the new threshold with margin.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drop encode_latent and bare-list MultiTrajectory fit paths, share one masked-MSE helper, and ignore coverage.json artifacts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Parallelize nbmake with pytest-xdist, tighten tutorial smoke budgets, and replace Codecov's auto coverage baseline with an 80% project/patch target.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Move nbmake out of the Python 3.12 test matrix so notebooks run alongside unit tests and docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
@tjkessler
tjkessler merged commit e588021 into main Jul 17, 2026
8 checks passed
@tjkessler
tjkessler deleted the feature/v0.3.0 branch July 17, 2026 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants