Revision history for Database-BI

0.002.0	Wed Aug 26 08:21:12 EDT 2026
    [ Enhancements ]
    - Add "Combine data" feature (GET /combine): stack rows from two or more
      data files vertically into a unified view.  All columns from all sources
      appear as headers; cells are blank where a source file lacks that column.
      Equivalent to a SQL UNION ALL across heterogeneous schemas.
    - New "Combine data..." toolbar button (teal) sits next to "Merge data...";
      both panels are mutually exclusive (opening one closes the other).
    - Export pipeline (GET /export, POST /export) now handles c= params so
      combined views can be downloaded or saved to disk.
    - Internal helpers migrated from Sub::Private (:Private) to Sub::Protected
      (:Protected) in Dashboard.pm and DataSource.pm for correct OO dispatch
      in production (morbo/hypnotoad) without the CHECK-phase stash-deletion
      side-effect that made :Private OO calls fail at runtime.
    - "Merge data" button tooltip improved; join chip no longer shows key
      annotation for combine summaries that have no join key.

0.001.0	Tue Aug 25 08:14:37 PM EDT 2026
    - Initial CPAN release.
    - Mojolicious web application presenting arbitrary flat data files
      (CSV, PSV, XML, SQLite) as styled, sortable, reorderable HTML tables.
    - Home page card grid; filesystem browser (/browse, /open).
    - In-memory left-join engine (/join) with repeatable join steps.
    - Server-side result filters (eq, ne, contains, starts, lt, le, gt, ge,
      empty, notempty operators).
    - CSV and SQLite export via GET /export (stream download) and
      POST /export (filesystem write).
    - Drag-and-drop file upload (POST /upload).
    - JSON APIs: /api/columns, /api/dirs, /api/stat.
    - URL import: fetch and display an HTML table from any public URL
      (/import).
    - localStorage persistence for column order and sort state.
