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.