From e12c239a5be98829ec32386d652c0b0ff9144918 Mon Sep 17 00:00:00 2001 From: Emil Lerch Date: Tue, 28 Jul 2026 07:47:58 -0700 Subject: [PATCH] update task status --- .kiro/specs/calculator/tasks.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.kiro/specs/calculator/tasks.md b/.kiro/specs/calculator/tasks.md index 55feff0..478e09a 100644 --- a/.kiro/specs/calculator/tasks.md +++ b/.kiro/specs/calculator/tasks.md @@ -89,15 +89,16 @@ function arg commas). ## Phase 2: Struct Layout & Financial Engines -### Task 2.0: Exact numeric model (Rational + Number union) [NOT STARTED] +### Task 2.0: Exact numeric model (Rational + Number union) [DONE] Design: see design.md 2.7. Requirements: NFR-9. -Motivation (all reproducible today): `0.1 + 0.2` = `0.30000000000000004`, -`9007199254740993` silently becomes `9.007199254740992e15`, `2^53 + 1` collapses, -`12 in in ft` = `0.9999999999999998`, `factorial(171)` reports "unknown function". +Motivation (all of these were reproducible before this task, and are fixed now): +`0.1 + 0.2` = `0.30000000000000004`, `9007199254740993` silently became +`9.007199254740992e15`, `2^53 + 1` collapsed, `12 in in ft` = +`0.9999999999999998`, `factorial(171)` reported "unknown function". Sequenced as four reviewable commits so structural churn never mixes with -behavioral change (rationale in design.md 2.7.9): +behavioral change (rationale in design.md 2.7.9), plus 2.0e for the unit factors: #### 2.0a: Add the types, wired to nothing [DONE] - `engine/src/rational.zig`: `Rational` over `std.math.big.int.Managed`, always @@ -478,15 +479,15 @@ Remaining subcommands deferred until their engine modules exist. - Verify: `0o777 - 0x0f` shows 496 plus hex/oct/bin; `3.14` decimal only; `2 + 2` decimal only; `0xFF / 2` = 127.5 decimal only -### Task 5.3: Implement programmer mode TUI view - expression & base display [PARTIAL] +### Task 5.3: Implement programmer mode TUI view - expression & base display [DONE] - Programmer mode accessible via Tab key -- Multi-base result display (dec signed, unsigned, hex, oct, bin) +- Multi-base result display (dec signed, unsigned, hex, oct, bin, ASCII) - Bit grid with navigation (arrows) and toggling (Space) -- Width toggle (Ctrl-W cycles 8->16->32->64) -- Ctrl-B toggles focus between input and bit grid +- Width toggle (Ctrl-W cycles 8->16->32->64->128) +- Backtick toggles focus between input and value zone (replaced the original + Ctrl-B plan) - Expression evaluation through programmer engine -- DONE: basic passive display + expression input + bit grid toggling -- NOT DONE: editable fields (see Task 5.3.1) +- Editable fields delivered by Task 5.3.1 ### Task 5.3.1: Programmer mode editable fields rework [DONE] - Replaced `bit_grid_active: bool` with `prog_field: ProgField` enum tracking focused field