Changelog / Version
Current version: v0.4.0
v0.4.0 — Unit 2 Final Completion Build
- Added the Text ↔ Numerical Message Translator (A=01...Z=26, space=27, period=28), handling the leading-zero rule correctly in both directions and rejecting invalid pairs.
- Added Number of Digits in Base b, showing the ⌈log_b(n+1)⌉ rule, the bounds check, and the n=b^k / n=b^k−1 shortcuts.
- Added the Base Place-Value Relationship Helper (new value = b·x + d), embedded in the Number Base Converter.
- Re-verified the Modular Operation button and the full RSA Encrypt→Decrypt workflow against the actual rendered page — both confirmed working correctly.
- Manually exercised every visible control across all 12 Chapter 2 tools against a real rendered page: 64/64 checks passed, zero JavaScript exceptions.
- Chapter 2 now has 12 tools. Pins, recents, deep links, and Current Chapter Mode all work automatically for the new tools.
- Added a new regression suite covering every new/embedded feature via the real production click handlers.
v0.3.4 — Asset cache-busting + full real-page re-verification
- Investigated a follow-up report that the Modular Operations button still produced no output. Loaded the actual live page in a real script-executing DOM and physically clicked the real button with the reported values — it worked correctly, with zero JS exceptions, and the result was genuinely CSS-visible.
- Root cause found regardless: CSS/JS assets had no cache-busting, so after several rapid hotfix releases a browser could keep serving a stale cached JS file with no warning. Every asset URL now includes a version query parameter, so each release forces a fresh fetch.
- Repeated the full Chapter 2 manual audit end-to-end against the fixed page: all 10 tools, every control, 29/29 checks passed with zero JS exceptions.
- Strengthened the regression test to run the entire number-systems.js initialization chain (not just the Modular tool in isolation) and explicitly verify all four requested criteria.
v0.3.3 — Unit 1–2 interactive-control audit hotfix
- Fixed a reported issue where the Modular Arithmetic Explorer's addition/subtraction/multiplication Calculate button appeared to do nothing. Root cause: the card had two buttons both labeled "Calculate" — the calculation itself was always correct, but a user could click the wrong one. The lower button is now labeled "Calculate Modular Operation" so the two can't be confused.
- Conducted a full interactive-control audit of every button, select, and workflow across all 11 Chapter 1 and 10 Chapter 2 tools, using a real rendered page and actual click handlers. 20 of 21 tools had no functional defects — the labeling issue above was the only problem found.
- Hardened the generic Copy Answer/Copy Work controls with a textContent fallback for extra robustness.
- Added a new regression test covering the exact reported case plus a broad smoke sweep of primary controls across both chapters.
v0.3.2 — Unit 1 UI/init-error hotfix
- Fixed an initialization error: the Conditional/Biconditional Quick Tool's JS referenced a button that didn't exist in its markup, and the resulting throw silently aborted the rest of the page's setup — which is why the Converse/Contrapositive/Inverse Helper appeared blank on load.
- Added explicit Evaluate/Update buttons to both tools, while keeping automatic recalculation when p or q changes.
- Both init functions are now defensive against this class of bug recurring.
- Added a DOM regression test that reproduces the original bug and confirms the fix.
v0.3.1 — Unit 2 test-ready hotfix
- Urgent Unit-2-only hotfix. No Unit 1 or Unit 3 behavior changed; Unit 4 not started.
- Division Algorithm now requires d > 0, exactly matching the course rule (n = qd + r, 0 ≤ r < d) — negative-divisor input is now rejected instead of silently computed as an "extension."
- Congruence now shows both equivalent definitions side by side: x mod m = y mod m, and m | (x − y).
- Z_m operations (modular add/sub/mult, Modular Division, congruence comparison) now enforce m > 1, the course's actual ring condition. Standalone "n mod m" still permits m ≥ 1, explicitly distinguished as general modulo rather than a Z_m claim.
- Fixed the RSA Encrypt → Decrypt workflow: the message field now actually updates to the ciphertext after encrypting, so Decrypt immediately after correctly round-trips (1211 → 388 → 1211) without manual copy-paste.
- Added
tests/v031-hotfix-regression.js, including a real DOM-workflow regression that drives the actual RSA click handlers (verified to fail against the pre-fix code before confirming it passes against the fix).
v0.3.0 — zyBooks Verification Pass 1: Unit 1/2 corrections + Unit 3 build
- Applies the zyBooks Verification Pass 1 handoff over the v0.2.0 baseline: Unit 1/2 corrections first, then Unit 3 built from the now-verified formulas. No existing mobile fixes, Current Chapter Mode, Show My Work, pinned/recent tools, or regression tests were removed or redesigned.
- Unit 1: → and ↔ mixing without parentheses is now rejected too (zyBooks establishes no ordering between them), matching the existing ⊕ rule. Evaluator, Truth Table Generator, and De Morgan/Equivalence Lab upgraded to fully VERIFIED. Added Logical Argument Validity (counterexamples + named invalid-form detection) and a full Boolean Algebra Lab with a step-by-step, law-naming simplifier plus an Equivalence Checker. Chapter 1 is now fully VERIFIED (11 tools).
- Unit 2: Linear Combination Divisibility Helper implemented (was a scaffold). Added a mod-precedence expression evaluator, Modular Division (with invertibility testing), Modular Exponentiation, a Linear Congruential Generator, and full working RSA — key generation, encryption, and decryption, verified end-to-end against the exact zyBooks example (p=31, q=59, e=859 → d=79; message 1211 → 388 → 1211). Chapter 2 is now fully VERIFIED (10 tools).
- Unit 3 built from scratch: Sequence Generator/nth-Term Evaluator, Arithmetic/Geometric Classifier, Arithmetic and Geometric Sequence & Series Helpers (with the instructor's "second form"/"first form" REMEMBER rules), Infinite Geometric Series, Sigma Notation Lab, Recurrence Relation Generator (indexed from a₀), a real Algorithm/Pseudocode Stepper (assignment, if/else, for, while, nested loops — not just a glossary), and Arithmetic Mean. Chapter 3 is now fully VERIFIED (9 tools).
- Bug fix: found and fixed a chapter-status computation bug (
array_unique()preserves original array keys, so$statuses[0]silently failed whenever every tool in a chapter shared one status) — this only surfaced now that Chapters 1 and 2 are fully verified for the first time. Verified against all 10 chapters after the fix. - Added
tests/zybooks-pass1-regression.jscovering every correction and new formula in this release — all passing, alongside the unchanged original regression suite. - Units 4–10 are not started in this release, per the handoff's explicit instruction.
v0.2.0 — Slide Pass 1: Unit 1 & Unit 2 expansion
- Built from the instructor's Unit 1–10 seminar slide decks. This release covers Priority 1 and Priority 2 from that spec — Units 3–10 are not yet started. All existing functionality (mobile fixes, Current Chapter Mode, Show My Work, pinned/recent tools, verification badges, regression tests) is preserved unchanged.
- Unit 1 XOR precedence correction: the slides confirm ¬ > ∧ > ∨ as a three-level table and explicitly exclude XOR from it. Expressions mixing ⊕ with ∧/∨/→/↔ without explicit parentheses are now rejected rather than resolved by an invented precedence; pure XOR chains still work. Every relevant tool now shows the course-preferred expansion p ⊕ q ≡ (p ∧ ¬q) ∨ (¬p ∧ q) in Show My Work.
- Added three Unit 1 tools: Proposition & Symbol Reference, Conditional Language Helper (If p then q / p only if q / q is necessary for p, etc.), and a Converse / Contrapositive / Inverse Helper.
- Unit 2: Division Algorithm now reports divisibility; Modular Arithmetic Explorer gained addition/subtraction/multiplication plus an illustrative hashing demo; Number Base Converter gained a course quick-convert panel (binary/base 3/base 8/hex) and hex digit reference; added a working Caesar Cipher tool; expanded the cryptography terminology reference. RSA formulas, Euler's phi function, and linear combination/gcd remain AWAITING ZYBOOKS VERIFICATION — not guessed.
- Added a permanent regression test suite (
tests/chapter1-2-regression.js) covering all seminar examples plus every new calculation — all passing.
v0.1.2 — Mobile layout bug fix
- Fixed: main content rendered off-canvas on mobile (iPhone Safari & Chrome).
.app-shellhad no explicitflex-directionand defaulted torow, so below the 880px sidebar breakpoint the nav and main content sat side by side instead of stacked, pushing the content off the right edge of the viewport. - Added a
max-width: 879pxrule forcing the app shell into a true vertical column, with nav and main content both constrained towidth: 100%; min-width: 0. - Added
overflow-x: hiddenon the page body as a secondary safety net — the real fix is the layout change, not scroll suppression. - Audited the stylesheet for other overflow sources (fixed widths,
100vw+ padding, unwrapped tables, absolute positioning, transforms) — none found beyond the one already fixed.
v0.1.1 — Audit fixes
- Chapter verification status is now derived from its own tools rather than set by hand — a chapter shows PARTIALLY VERIFIED whenever it's a mix. Chapter 2 reflects this (Cryptography/RSA still pending).
- Chapter 1's Proposition Evaluator, Truth Table Generator, and De Morgan / Equivalence Lab are now marked partially verified, since their operator precedence order has not yet been confirmed against MM250 course material — each card notes this. The Reverse Truth-Table Helper and Conditional / Biconditional Quick Tool don't depend on precedence and remain fully verified.
- Operator precedence is now defined in one centralized place in
js/logic.js, so it can be corrected in a single spot once confirmed. - Removed the Google Fonts dependency — the app now uses a system font stack and makes zero outbound network requests.
- Pinned Tools and Recently Used Tools now deep-link to the actual tool card instead of just the chapter page.
- Added a Current Chapter dropdown to the dashboard so any chapter (1–10) can be selected without visiting it first.
- Fixed Reset to restore dropdown controls and the Number Base Converter's default bases correctly, instead of blanking them.
v0.1.0 — First release
- Chapter 1 (Logical Reasoning) fully built and verified: proposition evaluator, truth table generator, reverse truth-table helper, De Morgan / equivalence lab, conditional / biconditional quick tool.
- Chapter 2 (Number Systems) fully built and verified: division algorithm calculator, modular arithmetic explorer, number base converter. Cryptography / RSA framework scaffolded, awaiting course verification.
- Chapters 3–10 scaffolded with correct MM250 section structure and tool lists, each clearly marked AWAITING COURSE VERIFICATION until checked against actual course material.
- Home dashboard, Current Chapter Mode, Pinned Tools, Recently Used Tools, and Symbol Reference implemented.
- Mobile-first layout, Show My Work toggle, Copy Answer / Copy Work, and print/clean view added as shared behavior.