docs: cross-project links use absolute URLs - #2
Merged
Conversation
MyST's relative-path links (../mime/, ../) got resolved as internal-doc xrefs and rendered as href="#../mime/". Use full microrobotica.org URLs instead — same outcome on the deployed site, no warning, working link. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
NicholasEhsanRoy
added a commit
that referenced
this pull request
May 19, 2026
…pling M5: HeatNode.update_padded for sharded 1-D heat under any shard count. ShardedStencilNode caches its shard_map wrapper per state-shape and wraps it in jax.jit so eager .update() calls stay fast (1500x faster than bare shard_map on CPU). Sharded heat converges to the Fourier analytic solution within 5% on 2/4/8/16-device meshes; 4th-order stencil (halo=2) works the same. MIME suite (669 tests) still green under the compat shim. M6: _stream_padded -- halo-aware streaming via indexed slicing, replacing jnp.roll's periodic wrap for sharded LBM. Bit-exact regression vs legacy _stream on periodic-padded input (3 seeds, D3Q19 and D2Q9). LBMNode.update_padded implements collide+stream on the padded distribution; collision runs on the full padded array so streaming reads across the halo see what the neighbour shard would have produced (BGK is purely local, so this matches exactly). LBMNode._has_walls flag set at __init__ so the JIT-traceable check in update_padded stays at Python level. Walls + Zou-He BCs under sharding are deferred to v0.2.x. M7: Sharded LBMNode regression: matches unsharded for one step and 50 steps on 8-device 2x4 / 4x2 and 16-device 4x4 pencil meshes; mass matches unsharded step-for-step. Full Hagen-Poiseuille validation needs walls/BCs and is the next thing on the v0.2.x list. M8: Multi-device gradient audit: jax.grad through a 5-step sharded heat rollout matches centred FD to rtol=5e-3; gradient remains finite through 50-step rollouts. ShardedStencilNode integrates with GraphManager -- single-node compile+step, two-node edge-coupled run (boundary scalars via transforms), and run_scan all work and stay finite. MIME gate #2: 669 tests pass. Total cloud/multigpu + halo_width + lbm_stream_padded: 112 tests across M1-M8. Full in-tree suite ~1450 (sharded gradient adds 2; not all run in the fast multigpu subset). M9 (RunPod smoke) deferred: local CPU virtual-device coverage is comprehensive enough that the only thing real GPUs would add is NCCL semantics + perf numbers -- both flagged for when GPU access is available. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
NicholasEhsanRoy
added a commit
that referenced
this pull request
May 19, 2026
Introduces the v0.2 surrogates restructure without breaking a single
v0.1 import path. Subpackage layout per the brief:
surrogates/primitives/ — reusable NN building blocks; future-home
for decoders/encoders pulled out of MIME
(currently empty + documented).
surrogates/weights/ — save_weights / load_weights /
load_train_result (re-export of checkpoint).
surrogates/training/ — lazy re-exports of trainer / callbacks /
physics_losses (equinox+optax only loaded
on attribute access).
surrogates/replace/ — was a leaf module; promoted to a
subpackage so future helpers can live
alongside replace_node without growing
one monolithic file. Public path
`from maddening.surrogates.replace import
replace_node` is unchanged.
Tests (38 new in tests/surrogates/test_subpackage_layout.py):
- primitives subpackage exists, has __all__, no optional-dep import
- weights re-exports the three checkpoint functions; the new path
yields the SAME object identity as the legacy import (no
accidental shadowing).
- training subpackage lazy __getattr__ resolves Trainer / Callback
/ loss names; unknown attrs raise AttributeError; dir() reports
every __all__ name; access is cached on repeat lookup.
- replace/__init__.py re-exports replace_node; legacy
`from maddening.surrogates import replace_node` keeps working;
`_core` submodule present.
- Parametrised back-compat test pins 14 legacy import paths so
every (module, attr) pair from v0.1 stays callable after the
restructure.
- Top-level surrogates package re-exports (SurrogateArchitecture,
SurrogateNode, DatasetGenerator, lazy Trainer, ...) unchanged.
Out of scope here (queued for v0.2.x or later):
- Pulling MIME's cholesky_decoder + decoder zoo into
surrogates/primitives/ — requires cross-repo move + MIME PR.
- Decoupling SurrogateTrainer from the SurrogateArchitecture ABC.
- File-level moves of trainer/callbacks/physics_losses into
training/. The lazy re-export pattern lets us defer the
physical move without breaking imports.
Full MADDENING suite: 1499 passed (up from 1461), 3 skipped, no
regressions across 144 surrogate-specific tests.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
NicholasEhsanRoy
added a commit
that referenced
this pull request
May 19, 2026
Items #3, #4, #5, #6, #7, #8, #9 marked ☑ complete. Item #2 marked ◐ in-progress: the subpackage scaffolding (primitives/, weights/, training/, replace/) landed with full backwards-compat; the MIME decoder-zoo extraction and the SurrogateArchitecture ABC decoupling remain v0.2.x follow-ups. Per-item caveats called out in the section headers: #4 — ships as warnings in v0.2; v0.2.1 flips to hard errors. #7 — credential lifecycle for AWS/GCP fully tested; live end-to-end launch deferred (would require real cloud accounts). #8 — file:// + manifest path covered; spot-kill end-to-end test deferred until RunPod sandbox is wired in CI. #1 sharding remains ◐ — M9 multi-GPU smoke test still pending; all M1-M8 milestones plus the LBM-Guo / wall_mask / replace_node v0.2.x follow-ups are complete. Full MADDENING suite after all eight: 1552 passed, 3 skipped, 0 failed — no regressions across the sequence. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
NicholasEhsanRoy
added a commit
that referenced
this pull request
May 19, 2026
Goes through every subtask box and updates status: [x] = done; [~] = partial (caveat in trailing note); [ ] = deferred Marks v0.2 item #1's last v0.2.x follow-up (`static_data` channel) as done now that #3 has landed. No content changes beyond status — narrative text and metrics are unchanged. Remaining open boxes are the cross-repo / live-cloud / docs items that need either MIME-side work, real cloud credentials, or a written migration guide: - #2: decoder zoo pull-over from MIME; SurrogateTrainer ABC decoupling; physical move of trainer/callbacks/physics_losses out of the v0.1 leaf modules; CHANGELOG note - #3: checkpoint provider-config pattern; sharded-static_data semantics; HeatNode / FVM mesh consumer migrations - #4: lab-facing migration guide; v0.2.1 flip-to-errors tracking issue; MIME-graph smoke check - #5: runnable LBM-velocity subscription demo script - #6: per-field change-detection wire-format extension; explicit latency-budget timing assertion; 256³ live benchmark - #7: live end-to-end launches on Lambda / AWS / GCP - #8: S3/GCS/Azure blob URLs in download_and_load_state; real RunPod spot-kill end-to-end; top-level cloud_resume.md - #9: standalone "profile an LBM step" example Plus #1 M9 (RunPod multi-GPU smoke). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
NicholasEhsanRoy
added a commit
that referenced
this pull request
May 19, 2026
The autonomous follow-up batch landed six concrete artifacts that close out the remaining subtask boxes: #3 — HeatNode migration to static_data + checkpoint round-trip (9e1fc5b) #4 — edge_validation_migration.md guide (9e8e72d) #5 — runnable WS subscribe demo (76f606e) #6 — encode-latency budget test + slow marker (fc3a6c8) #8 — cloud_resume.md top-level guide (9e8e72d) #9 — profile_lbm_step example (f70ae23) Plus the umbrella docs work in 9e8e72d: - release_notes/v0.2.md - developer_guide/versioned_docs.md (multi-version design) - _static/switcher.json - installation.md row for the [compression] extra - index.md toctree wiring Remaining open boxes (rolled to v0.2.x / v0.3): - #2 decoder pull-over from MIME; ABC decoupling; CHANGELOG note - #3 sharded-static_data semantics; FVM mesh migration - #4 GitHub issue for the 0.2.1 flip; MIME-graph smoke check - #6 per-field-skip wire format - #7 live cloud-launch validations - #8 s3:// / gs:// URL schemes; live RunPod spot-kill round-trip - #1 M9 multi-GPU smoke Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Avoid MyST resolving
../mime/style relative links as internal-doc xrefs. Render correctly when the docs are built as a subproject of microrobotica.org.