Architecture decisions
Why ganit is built the way it is: each significant decision as a short record (context, the decision, its consequences), in the ADR format. A decision is never edited away: a later one supersedes it. Sources: docs/adr.
Record architecture decisions
Decisions about how ganit is built (its dependencies, its boundaries, the trade-offs it accepts) were made in conversations and commit messages, where nobody finds them later. A co…
Ship as its own repository, as a Vyom tool
ganit started as a script inside Vayu that piped rows into wofi. Living inside the desktop's dotfiles meant it couldn't be installed, versioned or tested on its own, and wofi's pla…
Use qalc (libqalculate) as the engine
A calculator people use daily needs units, currencies, percentages, dates and bases, and must not evaluate arbitrary code. Python's eval is unsafe and incomplete; writing a parser …