github bornova/numara-calculator 8.0.0-beta.1

pre-release3 hours ago

What's New in 8.0.0-beta.1

New Features

  • Date Difference Arithmetic: Subtract two dates (05/20/2026 - 05/01/2026 or d1 - d2) with optional unit conversion (05/20/2026 - 05/01/2026 in hours, to weeks).
  • Natural Percentage Ratios and Offsets:
    • Calculate percentage ratios with X as % of Y, X as a % of Y, or X is what % of Y.
    • Apply percentage offsets directly to currency and unit values ($200 + 15%, 50 m - 20%).
  • Base and Percentage Conversions: Convert values using in or to with hex, bin, oct, and % (255 in hex, 10 to bin, 64 in oct, 0.15 in %).
  • Live Selection Statistics: Selecting multiple lines in the editor displays live Sum, Avg, Min, Max, and Count in the bottom status bar (click to copy the sum).
  • Multi-Function Plotting:
    • Toggle and compare multiple functions of x defined on the active page using interactive series chips in the Plot dialog.
    • Added smart auto-domain (x/y) scaling and localized axis limit inputs.
  • Cross-Page Reference Enhancements:
    • Added autocomplete suggestions for exported variables when typing page("PageName")..
    • Added interactive page link answers with variable count tooltips and one-click page navigation.
  • Desktop and Editor Settings:
    • Keep in Menu Bar / System Tray: Minimize and close to the system tray on Windows and Linux (and menu bar on macOS).
    • Start at Login: Launch Numara automatically at system login.
    • Close App with Esc: Option to close the desktop window with the Esc key.
    • Truncate Answers: Toggle single-line answer ellipsis truncation (with full-answer hover tooltips) when Line Wrap is disabled.

UI Improvements

  • Slide-Up Page List Drawer: When undocked (Slide out mode or Auto on compact windows), the page list now slides up from the bottom as a centered drawer when clicking the active page name in the bottom bar.
  • Resizable Docked Sidebar: When Docked (or Auto on wider windows), the left sidebar now includes a drag handle to resize its width (double-click to reset to default width) and smoothly adjusts the desktop window width when switching between Docked and Slide out modes.
  • Streamlined Bottom Action Bar: Removed the separate sidebar toggle button and consolidated the bottom-right action icons (User Functions & Units, Settings, About) into a single menu button for a cleaner footer layout.
  • Redesigned Modal Dialogs: Added draggable dialog headers, standardized top-right close (X) buttons across all modals, removed redundant footer Close/Cancel buttons, and improved modal centering on window resize.
  • Reorganized Settings Dialog:
    • Organized tabs into General, Editor, Calculator, Format (with dedicated Numbers, Dates, and Currency sections), and Sync.
    • Moved Typography controls (Font size, Font weight, Line height) into the Editor tab alongside Display & Behavior settings.
    • Simplified Number format (1,234.56 and 1.234,56) and Date format (MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD) selectors.
    • Added a "Keep Sync Folder" option when resetting settings to defaults.
  • Interactive Plot Header: Replaced the static single-function plot title with clickable series pills to toggle multiple functions on and off directly inside the Plot modal.
  • Editor and Theme Polish: Refined CodeMirror gutter alignment, code-folding indicators, search and replace panel styling, tooltip positioning, and color picker reset button alignment.

Performance and Under-the-Hood Improvements

  • Incremental Line Caching: Added per-line scope delta tracking and compiled expression caching in the calculation worker so editing a line only re-evaluates modified and downstream lines.
  • Reduced Main-Thread Bundle Size: Removed duplicate Formula.js and Nerdamer imports from the main thread (reducing numara.js bundle size by ~30%) and added an O(1) line-height sync fast path when Line Wrap is off.
  • Cross-Locale Consistency: Added an 'en-US' date/time parsing fallback alongside the system locale, enforced standard ASCII digits (latn) and ISO 8601 calendar output in Luxon, and stripped Unicode locale extension subtags so expressions evaluate consistently across all OS locales.
  • External File Rename Detection: Improved folder sync reconciliation to detect externally renamed .num files while preserving page IDs and ordering.
  • Worker Sandbox Hardening: Disabled network globals (fetch, XMLHttpRequest, WebSocket, EventSource, importScripts) inside the calculation Web Worker.
  • Codebase Modularization: Refactored the Electron main process, calculation engine, CodeMirror editor, page manager, UI components, and stylesheets into modular subsystems.
  • Updated Dependencies: Updated Electron, Math.js, Luxon, and build tooling.

Bug Fixes

  • Fixed comma-decimal (1.234,56) input parsing so numbers under 1000 (999,9) and ungrouped numbers (1000,1) do not require a thousands separator.
  • Fixed colon line labels (label: expr) colliding with single-letter units/constants (m: 100, s: 20, e: 10) and Math.js range syntax (a:5).
  • Fixed operator precedence for aggregation keywords (total^2, avg * 2) and prevented multi-statement lines (a = a + 5; total) from executing side effects twice.
  • Fixed stale ans and _ scope values persisting after an error line, and ensured error lines reset running subtotal.
  • Fixed line continuation (contPrevLine) across comment-only lines.
  • Fixed lowercase currency unit aliases not updating when exchange rates are refreshed.
  • Fixed User Defined Functions and Units (UDF/UDU) to restore overridden built-in functions/units when removed and prevented plain UDF objects from flattening onto built-ins.
  • Fixed HTML escaping in editor token tooltips and prevented user objects from spoofing cross-page links.
  • Fixed Reset Defaults in Settings to restore default panel and sidebar widths.

Don't miss a new numara-calculator release

NewReleases is sending notifications on new releases.