MinMaxion

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

18 check-ins

2026-06-05
08:23
PR-10: clipboard and selection

- Migration 0009: pasteboard, pasteboard_cell, pasteboard_ops - host/selection.py, host/clipboard.py; C++ SelectionHost + ClipboardHost - ui_state selection persisted on demo range select - Demo: ExtendedSelection, Ctrl+C/V (DB + system TSV) - CLI: select, copy --range, paste - Tests: 020_clipboard_host, 021_clipboard.sql, test_sheet_model_clipboard leaf check-in: db575ef79e user: refaqtor tags: trunk

08:09
CLI manual access, demo undo/ref-click, C++ undo host

- scripts/minmaxion + minmaxion_cli.py: new, get, set, show, undo, redo - Demo: Ctrl+Z/Y, click-to-insert refs in fx bar, status/address, optional DB path arg - C++ UndoHost + per-edit frames in SheetModel - README quick manual + GUI sections - Tests: 019_cli_host.py, undoRedoLiteral check-in: 361db15290 user: refaqtor tags: trunk

08:00
Fix formula display 0 and protect formula cells from grid overwrite

- writeCalc: errors use value_kind=0 + err_code (not v_num=0) so #CALC! shows correctly - cellNumericValue: dirty formula refs are not ready (match Python _cell_value) - Topological recalc order via formula_dep edges - SheetModel: block grid edits that replace formulas with display values; formulas edit via bar only - refreshAll after every applyCellEdit; demo seeds through model.setData - Tests: demo_seed on file DB, formulaCellNotEditableInGrid check-in: e155c747cc user: refaqtor tags: trunk

07:48
Fix grid literal edits leaving formulas at #CALC!

- Route all SheetModel EditRole commits through native C++ applyCellEdit (FormulaHost) - In-grid literals no longer use fn_cell_set without recalc/invalidation - FormulaHost: set literal/formula, topological recalc loop, SUM and + - * / eval - Python cell_edit: recalc until clean after trigger cascades - Regression test literalChangeRecalcsDependents in test_sheet_model_formula - run_formula_demo.sh launches C++ minmaxion_demo (no PySide6 required) check-in: 81081121ed user: refaqtor tags: trunk

07:20
Formula edit bar: =refs, recalc, display vs edit

- host/cell_edit.py: apply_cell_edit routes literals vs =formulas + recalc - Range refs A1:B2 for SUM; formula_consumer per cell in range - PySide6 demo formula_sheet.py + run_formula_demo.sh - C++ demo: formula bar + apply_edit_cli bridge on file DB - SheetModel refreshes dependent cells after edit - Test 018_formula_edit_host.py check-in: 5783d4a526 user: refaqtor tags: trunk

07:13
PR-8 undo/redo for literal edits (schema v8)

- undo_frame, undo_op, undo_cursor tables - host/undo.py: begin/commit frame, undo/redo with inverse cell_set - fn_cell_set records ops when frame active; branch truncate on new edit - Tests 016_undo.sql, 017_undo_host.py check-in: 738b55f202 user: refaqtor tags: trunk

07:12
Fix PySide6 spill test: use ItemFlags.value for editable bit check check-in: c5731c2a30 user: refaqtor tags: trunk
07:12
PR-7 array spill (migration 0007, schema v7)

- cell_spill footprint; v_spill_display merged into display/viewport views - flags_for_cell_v2: spill slaves not editable; fn_cell_set blocked - Host spill.py + ARRAY(rows,cols,...) in recalc; #SPILL! on overlap - C++/Python UDFs detect cell_spill table - Tests: 014_spill, 015_spill_host, PySide6 spill test check-in: 4d34c3f5a3 user: refaqtor tags: trunk

06:51
PR-6 evaluator + topo recalc + invalidation (schema v6)

- Migration 0006_eval: formula_fn_catalog, #CIRC!, consumer invalidation triggers - Transitive dirty via calc_cell dirty propagation - Host recalc_graph: topo sort, cycle detection → calc_cycle - recalc_workbook/continue: 10k chunk, recalc_pending + cursor JSON - Evaluator: AVERAGE/MIN/MAX/COUNT/IF/NOW; tests 010-013 + host cycle/topo check-in: 7bc4d8f5c1 user: refaqtor tags: trunk

06:48
PR-5 formula graph + calc_cell (migration 0005, schema v5)

- formula, formula_dep, formula_consumer, calc_cell, calc_cycle - Dirty triggers; v_cell_edit; v_cell_display with #CALC! / calc results - Host: formula_refs, formula_store, recalc (minimal eval for tests) - fn_cell_get EditRole via v_cell_edit; migrations use sqlite3_exec - sqlunit 008 + 009_recalc_host; Qt formula tests (C++/PySide6) - run_sqlunit: executescript for trigger bodies check-in: 971495caaf user: refaqtor tags: trunk

06:41
PR-3 layout + PR-4 number formats (migrations 0003/0004)

- merge_range, dim_row/col, header_label, ui_state, fn_header_get - number_format, style_def, format_number UDF, v_cell_display, styled viewport - SheetModel: setHeaderData, mergeSpan, SizeHintRole, formatted DisplayRole - sqlunit 006/007 + Qt layout tests (C++ and PySide6) - Database applies all migrations in order; ignore build artifacts check-in: 69245d9cb9 user: refaqtor tags: trunk

06:32
Fix Qt6 C++ build: AUTOMOC for SheetModel, link tests, ctest in build.sh

- Add sheet_model.h to minmaxion_core for moc (fixes vtable linker error) - test_sheet_model: keep .moc include for Q_OBJECT in cpp (Qt 6.4 AutoMoc) - build.sh runs ctest; run_tests.sh invokes C++ test binary when built check-in: e003bfdab6 user: refaqtor tags: trunk

06:22
Make scripts/run_tests.sh executable check-in: 7bd74e7f68 user: refaqtor tags: trunk
06:22
Add minimal Qt SheetModel (C++ + PySide6) wired to SQLite PR-2 API

- QAbstractTableModel: data/setData/flags/roleNames via fn_cell_get/set, fn_flags_for_cell - C++ Database applies migrations and registers sqlite3 UDFs on QSQLITE handle - PySide6 sheet_model.py + offscreen smoke tests (5 tests) - Optional demo and CMake build when qt6-base-dev available - scripts/run_tests.sh runs sqlunit + Qt tests check-in: 30460b321a user: refaqtor tags: trunk

06:13
MinMaxion PR-1/PR-2: SQLite workbook bootstrap, cell_map, Qt role views, sqlunit

- migrations 0001_init (schema v1) and 0002_cell_map (schema v2) - v_cell_display_lite, v_viewport_flags_lite, v_sheet_dimensions, flags_for_cell SQL - qt_role_map seed, error_code, cell_user_meta - Python sqlunit harness with host UDF stubs (6 test files, all passing) - build/concat_template.sh artifact - Design doc under docs/ check-in: 276752c21c user: refaqtor tags: trunk

04:20
removed false start check-in: 59a3a51fea user: refaqtor tags: trunk
02:31
initial empty check-in check-in: b7e87a0795 user: refaqtor tags: trunk
2026-06-04
23:31
initial shell of Haiku OS application check-in: 3c5a160c1b user: refaqtor tags: trunk