react-leaflet v5 requires React 19 — caused "render2 is not a function"
runtime crash and white screen. Downgraded to v4.2.1.
fix(docker): separate DB volume mount from API dist directory
Volume was mounted at /app/apps/api, overwriting compiled dist/ with stale
files from previous container runs. Changed mount to /app/data for DB only.
fix(api): copy area.json and vessel1.json into API Docker image
Seed files could not resolve JSON data at container startup.
Added COPY in Dockerfile and corrected path depth from 5 to 4 levels.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- build-wasm.sh: replace invalid cmake -f flag with staging dir approach
(cmake requires entry file to be named CMakeLists.txt)
- Emscripten.cmake: fix EXPORTED_RUNTIME_METHODS quoting (drop single quotes)
- CMakeLists.wasm.txt: add missing configure_file for version.h and
include(CompilerWarnings.cmake) needed by libs/physics
- docker/web/Dockerfile: add emscripten/emsdk multi-stage build; WASM
artifacts baked into image so no volume mount required
- docker-compose.yml: remove wasm bind-mount from web service
docker compose up --build now builds C++ (native + WASM) and starts
api + web in a single command.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove SUNDIALS from C++ Dockerfile (replaced by RK45 in T03)
- Fix CMake source path to core/ after T05 reorganization
- Add docker/api/Dockerfile: multi-stage Node 20 build for Fastify API
- Add docker/web/Dockerfile: Vite dev server with WASM volume mount
- Rewrite docker-compose.yml: core (C++ ci build), api, web services
- Add server.host=0.0.0.0 to vite.config.ts for Docker networking
Run everything: docker compose up --build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Introduced a new body type "simple_box" with defined mass and added mass matrices in `simple_box.json`.
- Created scenarios for bodies with initial velocity and two bodies at rest in `body_with_initial_velocity.json` and `two_bodies_at_rest.json`, respectively.
- Implemented tests in `TestScenarioReader.cpp` to validate parsing of scenarios, body types, and simulation behavior.
- Ensured that bodies at rest remain at rest after simulation steps and that initial conditions are correctly applied.
CMake project structure with ymir_core, ymir_naval, and ymir_adapters
static library targets. Catch2 and nlohmann/json via FetchContent;
SUNDIALS and CGAL probed as optional system deps (required from M1/M2).
Smoke tests pass on macOS ARM64. Docker multi-stage image for Linux
x86_64. GitHub Actions CI matrix: Linux x86_64, macOS ARM64, Windows
x86_64. Code quality tooling: .clang-format, .clang-tidy, Doxyfile.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>