Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: RocketPy-Team/Infinity-API
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: RocketPy-Team/Infinity-API
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: drop-22apr
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 14 commits
  • 17 files changed
  • 5 contributors

Commits on Mar 1, 2026

  1. ENH: portable .rpy flight import/export and notebook generation (#56, #…

    …57)
    
    Replace dill-based binary serialization with RocketPy's native
    JSON-based .rpy format (RocketPyEncoder/RocketPyDecoder), making
    flight export and import architecture-, OS-, and Python-version-
    agnostic.
    
    Add POST /flights/upload to import .rpy files by decomposing them
    into Environment, Motor, Rocket and Flight models persisted through
    the standard CRUD pipeline.
    
    Add GET /flights/{id}/notebook to export a flight as a Jupyter
    notebook that loads the .rpy file via load_from_rpy.
    
    Closes #56, closes #57.
    
    Made-with: Cursor
    GabrielBarberini committed Mar 1, 2026
    Configuration menu
    Copy the full SHA
    50be27f View commit details
    Browse the repository at this point in the history
  2. MNT: address PR review comments from CodeRabbit and Copilot

    - Fix implicit string concatenation in notebook source (Pylint W1404)
    - Update FlightImported.message to say ".rpy file" instead of "binary"
    - Add 10 MB upload size guard with HTTP 413 on POST /flights/upload
    - Extract tanks for LIQUID/HYBRID motors in _extract_motor to satisfy
      MotorModel validation (new _extract_tanks and _to_float helpers)
    - Add comment explaining default_fins schema fallback
    - Tighten test assertion on import success message
    - Add pre-yield cache_clear() in environments test fixture
    
    Made-with: Cursor
    GabrielBarberini committed Mar 1, 2026
    Configuration menu
    Copy the full SHA
    ee13c2f View commit details
    Browse the repository at this point in the history

Commits on Mar 9, 2026

  1. Update src/services/flight.py

    Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
    GabrielBarberini and coderabbitai[bot] authored Mar 9, 2026
    Configuration menu
    Copy the full SHA
    5d291c7 View commit details
    Browse the repository at this point in the history
  2. MNT: address second round of PR review comments

    - Add HTTP 413 to /upload route OpenAPI responses schema
    - Move grain_fields construction inside SOLID|HYBRID match branch
      to avoid AttributeError on LIQUID/GENERIC motors
    - Add test for oversized .rpy upload returning HTTP 413
    
    Made-with: Cursor
    GabrielBarberini committed Mar 9, 2026
    Configuration menu
    Copy the full SHA
    5eb763f View commit details
    Browse the repository at this point in the history
  3. MNT: address third round of PR review comments

    - Guard from_rpy against non-dict JSON payloads (e.g. [] or "foo")
      that would AttributeError instead of hitting the 422 path
    - Change notebook to resimulate=True so flight.all_info() has
      computed outputs available after loading an .rpy with
      include_outputs=False
    
    Made-with: Cursor
    GabrielBarberini committed Mar 9, 2026
    Configuration menu
    Copy the full SHA
    525fa96 View commit details
    Browse the repository at this point in the history
  4. MNT: wrap initial_liquid_mass and initial_gas_mass with _to_float

    Consistent with all other tank-kind fields — these attributes can
    be Function objects in RocketPy, so they need the same scalar
    extraction to avoid Pydantic validation failures.
    
    Made-with: Cursor
    GabrielBarberini committed Mar 9, 2026
    Configuration menu
    Copy the full SHA
    3882575 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2026

  1. ENH: add /rockets/{id}/drawing-geometry endpoint

    Exposes structured drawing geometry that mirrors rocketpy.Rocket.draw(),
    so clients can redraw a rocket using the same shape math rocketpy uses
    without server-side rendering or duplicated geometry logic in the UI.
    
    Response carries per-surface shape_x/shape_y arrays, body tube segments,
    motor patch polygons (nozzle, chamber, grains, tanks, outline), rail
    button positions, sensors, t=0 CG/CP, and drawing bounds. Coordinates
    are already transformed into the draw frame rocketpy uses.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    aasitvora99 and claude committed Apr 20, 2026
    Configuration menu
    Copy the full SHA
    64b2ea9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c4ef363 View commit details
    Browse the repository at this point in the history
  3. chore: lint

    aasitvora99 committed Apr 20, 2026
    Configuration menu
    Copy the full SHA
    45032d8 View commit details
    Browse the repository at this point in the history
  4. ENH: validate dry_inertia per motor_kind + default tank discretize

    Align MotorModel and MotorTank with RocketPy's actual constructor
    requirements so invalid motors are rejected at the API boundary with a
    clear error rather than crashing deep inside RocketPy at simulate time.
    
    - MotorModel.validate_dry_inertia_for_kind: SOLID / LIQUID / HYBRID
      motors in RocketPy require dry_inertia with no default. Only
      GenericMotor accepts (0, 0, 0). Reject the default tuple for every
      kind except GENERIC with a message the user can act on.
    - MotorTank.discretize: change to Optional[int] = 100 to match the
      RocketPy Tank classes' default. Forms can now omit the field and still
      submit successfully.
    - stub_motor_dump fixture: use dry_inertia=[0.1, 0.1, 0.1] so tests that
      override motor_kind to SOLID / LIQUID / HYBRID still pass the new
      validator without each having to add a dry_inertia override locally.
    aasitvora99 committed Apr 20, 2026
    Configuration menu
    Copy the full SHA
    bf0c365 View commit details
    Browse the repository at this point in the history
  5. ENH: render GenericMotor chamber patch in drawing-geometry

    RocketPy's rocket.draw() does not draw a combustion chamber for
    GenericMotor because _MotorPlots._generate_combustion_chamber reads
    grain-only attributes (grain_initial_height, grain_outer_radius, etc.)
    that GenericMotor lacks — it only emits a nozzle. Users who populate
    chamber_radius / chamber_height / chamber_position then saw no chamber
    in the jarvis playground.
    
    Add a GenericMotor branch in RocketService._build_motor_geometry that
    constructs an equivalent rectangular chamber patch from the chamber_*
    fields. Vertex ordering mirrors _generate_combustion_chamber so the
    patch flows through _generate_motor_region for outline assembly the
    same way a SolidMotor chamber does.
    
    Patch is emitted with role='chamber', flowing through the existing
    drawingMotorSchema + GeometryRocket renderer without frontend changes.
    aasitvora99 committed Apr 20, 2026
    Configuration menu
    Copy the full SHA
    6836650 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2026

  1. MNT: linting

    aasitvora99 committed Apr 22, 2026
    Configuration menu
    Copy the full SHA
    edf06e5 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/feat/flight-binary-and-notebook-…

    …export' into drop-22apr
    aasitvora99 committed Apr 22, 2026
    Configuration menu
    Copy the full SHA
    058f62a View commit details
    Browse the repository at this point in the history
  3. chore: incorrect merge

    aasitvora99 committed Apr 22, 2026
    Configuration menu
    Copy the full SHA
    f8a9e40 View commit details
    Browse the repository at this point in the history
Loading