Changelog

Current version: 2026.10.07-r7

CalVer date (YYYY.MM.DD). Same-day releases append -r2, -r3, and so on.

Version 2026.10.07-r7

  • Mouse wheel over Profile, Plan, and Body zooms the drawing only while that view's Pan control is on, so a normal wheel still scrolls the page.
  • With Pan on, wheel-zoom stays cursor-centered and prevents the default scroll; +, −, Fit, and 100% still work whether Pan is on or off.

Version 2026.10.07-r6

  • Keep Profile, Plan, and Body canvases filling their containers at the device pixel ratio instead of resizing the canvas element for zoom.
  • Zoom and wheel-zoom scale the drawing transform about the view center or cursor, preserving pan, while Fit and 100% reset remain available.
  • Keep grid, rulers, Edit Endpoints hit-testing, and SVG/PDF export aligned at any on-screen zoom; export still uses the true drawing scale.

Version 2026.10.07-r5

  • Add a recreational sail stability check in Sail for the selected W/B case: gunwale (sheer) immersion / downflooding angle from the trimmed floating waterline and hull stations, steady heel in the design wind from HM = W × GM × sin(θ), and the margin between them.
  • Warn when that margin is under 10°, or when steady heel exceeds an editable 15–20° target line (default 20°), and draw the target and immersion angles on the tipping display.
  • Note that this is guidance in the spirit of ISO 12217-2 / ABYC good practice, not a certification check, and that the righting arm is the existing small-angle GM model.

Version 2026.10.07-r4

  • Add a token-protected /api/v1/projects JSON API so assistants can list, read, update, version, and restore Adory projects.
  • Keep the previous file as a timestamped version on every server save from the UI or API, retaining the last 50 per project.
  • Add a Refresh button next to Save that reloads the current project from the server, warns when the browser copy has unsaved changes, and notes when the server copy is newer.
  • Save Case and Save as New Case also write the project to the server, while keeping unique-id copies, title warnings, import remaps, and redraw-safe W/B loads.

Version 2026.10.07-r3

  • Add Hydrostatics Save Case (with on-screen confirmation) and Save as New Case so a named load is copied to a unique id instead of overwriting the original default case.
  • Warn when two W/B cases share a title, and remap colliding case ids on save/import so a new or imported case cannot silently replace an existing one.
  • Persist W/B case create, rename, delete, and save into browser localStorage immediately; project Save still writes Flask JSON.
  • Keep W/B loads when copying a local-only project, and do not let the catalog/starter "14 ft Skiff" empty default overwrite a saved project's Hull/motor rows in localStorage.
  • Hull draw/auto-update no longer rereads hydro rows, so empty or stale W/B inputs cannot drop heightY loads on save, load, or a new name.
  • Add a read-only hull section dump at a station x (POST /api/hull/section and tools/dump_hull_section.py) reporting keel, MID, log, and gunwale points plus the trimmed waterline cut.

Version 2026.10.07-r2

  • Calculate GM = KB + BM − KG for each W/B case with complete heights, using the floating freshwater waterline and trim from the drawn hull (GUN/MID/LOG/KEL sections; BOW places the bow guides).
  • Show calculated GM, KB, BM, waterline, draft, and trim in Hydrostatics next to displacement, LCG, and VCG.
  • Use the calculated GM in Sail by default, labeled as calculated, with a typed-GM override and a clearly flagged fallback when heights are missing or the boat does not float within the hull.
  • Allow 15 named weights per W/B case in Hydrostatics (up from 8); older 8-item projects still load.
  • Measure W/B height, KG, and KB from the hull bottom (lowest keel), not Adory y = 0, and label that datum in Hydrostatics and Sail.
  • Compute BM from each section's half-breadth at the trimmed waterline cut, not the gunwale or maximum section beam.
  • Keep saved projects compatible without a schema bump; Fairline is unchanged.

Version 2026.10.07

  • Add an optional height (inches above the hull baseline) on each named W/B weight, persisted with the project and editable in Hydrostatics.
  • Show VCG/KG next to displacement and fore-aft CG in Hydrostatics and the Sail W/B comparison table, and mark it incomplete when any weight is missing a height instead of treating missing heights as zero.
  • Keep Sail effective GM as a user-entered value; older projects without heights continue to load without a schema bump.

Version 2026.10.02

  • Add a separate Fairline hull W/B workspace with sampled section import, section preview, and existing draft and trim calculations.
  • Save and restore imported hulls, named load cases, and water settings without changing native Adory designs.

Version 2026.09.19-r6

  • Add a Sail workspace for editable steady-wind side-force and heeling-moment estimates.
  • Compare sail tipping load with one or more persisted named W/B cases using an auditable small-angle GM approximation.
  • Persist sail definitions in project schema version 4 and add Python formula audit coverage.

Version 2026.09.19-r5

  • Remove Fairline workshop hosting, navigation, and deployment from Adory so each application is deployed independently.
  • Restore Adory production deployment to an Adory-only restart and health check.

Version 2026.09.19-r4

  • Deploy and health-check Adory before Fairline so a Fairline or Node failure no longer blocks the Flask release.
  • Add a server helper that installs the required Node.js 22 LTS toolchain.

Version 2026.09.19-r3

  • Add Fairline workshop navigation at /fairline/ and deploy its Node service automatically with Adory production releases.

Version 2026.09.19-r2

  • Add named W/B load cases with project-backed weight rows, active-case selection, and create, rename, and delete controls.
  • Preserve the last-selected W/B case across Flask JSON and localStorage save/load flows.
  • Prepare persisted W/B cases for a future sail side-force and tipping view.

Version 2026.09.19

  • Keep the project sidebar closed on startup while retaining on-demand and Escape controls.
  • Accept feet/inches such as 14'6" in hull and guided-boat dimensions while storing normalized inches.
  • Add optional inch/foot grids and rulers to all 2D drawing canvases.
  • Persist material unit costs and calculate an estimated material quote total.
  • Extend undo and redo to dimension, material-cost, and preset/model changes.
  • Export profile, plan, and body drawings as true SVG vector paths instead of embedded canvas images.
  • Replace inline workspace click handlers with delegated JavaScript listeners.
  • Document the future Python-to-C++ hydrostatics and geometry calculation boundary.

Version 2026.08.15-r3

  • Replace the Save-bar Cp readout with QuickStats for Cp, Cb, Cm, and Cwp.
  • Show coefficient meaning on label hover and typical sailing-yacht range on value hover.

Version 2026.08.15-r2

  • Show auto-calculated prismatic coefficient (Cp) beside Save.
  • Improve 3D framing for bow tip and transom overhang, and stop log-to-keel lines from snapping to the origin in plan and 3D.
  • Render 3D chines, bow, and transom as sampled quadratic curves instead of station chords.
  • Make Saved Projects collapsible and auto-collapse after a project is selected.
  • Auto-draw loaded projects, add a Transom layer toggle, and expand job metadata with LOA (ft) and boat type including displacement.

Version 2026.08.15

  • Reorganized the workspace toolbar into Layers, Tools, and Reports tabs and made Draw/Save always visible.
  • Reordered main views to 2D, 3D, then Hydrostatics, and enlarged the Profile/Plan/Body drawing panels.
  • Defaulted Bow (z) Beam to 0 for catalog models and guided new boats.
  • Added production auto-deploy on push to main and fixed CI page smoke tests to use the Flask test client.

Version 2026.07.17-r4

  • Added project JSON import/export, rename, and duplicate.
  • Added job metadata fields: customer, status, notes, and delivery date.
  • Added model catalog (skiff, flat-bottom, V-bottom, canoe) and guided new-boat wizard.
  • Replaced layer checkboxes with a compact layer panel.
  • Added calculation audit for displacement/LCB/chine math and a full materials estimate with panel areas and plywood sheet counts.

Version 2026.07.17-r3

  • Added shared hull line styling with consistent colors and line weights in 2D and 3D.
  • Added styled waterline, station, rib, LCB, and HCG overlays plus expanded canvas hover tooltips.
  • Added glossary page, undo/redo for endpoint edits, and more draggable control points.
  • Added shop reports: materials summary, build package PDF, spec sheet PDF, CSV/Excel offsets, and SVG drawings.

Version 2026.07.17-r2

  • Added date-based app version labels (CalVer).
  • Added /changelog page listing releases with GMT timestamps.
  • Added /api/version endpoint and navbar version link.

Version 2026.07.17

  • Initial Adory shop project in vsProjects with Flask backend.
  • Project persistence to Flask JSON files and browser localStorage.
  • Hull drawing workspace with profile, plan, body, 3D, and hydrostatics views.
  • Connected repository to GitHub (FYINotes/Adory).