Skip to content

Releases: ABCrimson/NextCalc

v1.2.2 — Comprehensive Test Overhaul

04 Mar 15:06

Choose a tag to compare

Test Coverage Overhaul

Massive expansion of the test suite across the entire monorepo — from ~900 tests to 2,300+ tests across 55 test files.

New Test Coverage by Package

Package Tests Files Key Areas
API 491 6 DataLoaders, cursor pagination, error classes, Zod validation, Redis cache
Web 266 12 Zustand stores, RBAC, Redis utilities, auth hooks
Math Engine 1,039 19 Abstract algebra (groups/rings/fields), propositional logic prover, symbolic simplification
Plot Engine 323 13 Buffer pools, marching squares, shader cache, CSV/SVG export
Workers 187 5 Sliding window rate limiting, R2 storage utilities
Total 2,306 55

Highlights

  • 30+ new test files covering previously untested production code
  • Abstract algebra suite (190 tests): groups, rings, fields, homomorphisms, Galois theory
  • Logic prover suite (112 tests): formula construction, truth tables, inference rules, proof search
  • Symbolic simplification (91 tests): constant folding, identity rules, expand/factor/substitute
  • API infrastructure (491 tests): full coverage of GraphQL error hierarchy, DataLoader batching, cursor pagination, input validation
  • Zustand stores (55+ tests): calculator store with Immer, bookmarks, worksheets, collaboration
  • Fixed parser test bug: extractVariables correctly excludes pi as a known constant
  • Fixed TypeScript 6.0 strict mode issues in test files (vi.stubEnv instead of direct process.env assignment)

Infrastructure

  • Standardized Vitest configs across all packages
  • Disabled typecheck in math-engine vitest config (causes indefinite hang — use tsc --noEmit separately)
  • Cleaned up unused mocks in web vitest setup

v1.1.3 — Performance Audit & Documentation Overhaul

02 Mar 21:58

Choose a tag to compare

🚀 Performance Audit Release

Comprehensive codebase audit covering performance, security, and modernization across all 574 source files and 30+ documentation files.

⚡ Performance

Optimization Impact
Fix bookmarks store with useShallow 5× fewer re-renders
Dynamic import KaTeX ~280 KB deferred from initial bundle
4 new DataLoaders Eliminate N+1 queries in GraphQL resolvers
Promise.all parallelization Worksheet, forum, profile resolvers 2-3× faster
Typed arrays (Uint8Array/Float64Array) Cache-friendly prime sieve & PageRank
Factorial memoization Series computation O(1) cache hits
Canvas2D grid batching Single stroke per axis direction
Three.js sprite dispose Fix GPU memory leak on unmount
loading.tsx skeletons Instant visual feedback for async routes

🔒 Security

  • Timing-safe admin key comparison — SHA-256 hash + XOR via crypto.subtle
  • CORS hardening — return empty string for non-matching origins (not first allowed origin)
  • Recursive query complexity — depth-weighted GraphQL selection analysis (1000-point limit)
  • Worker information leakage prevention — remove prettyJSON, sanitize all error responses

🛡️ Code Quality

  • Fix 50+ type errors in CAS service (FactoryFunctionMap, SymbolNode, null checks)
  • Fix all exactOptionalPropertyTypes violations across 3 Cloudflare Workers
  • Replace React.EventType namespace with named imports (6 files)
  • Replace slate-*/gray-* Tailwind with semantic tokens (3 pages)
  • Add typecheck scripts to all worker packages
  • Create tsconfig.typecheck.json for standalone web typechecking

🏗️ Infrastructure

  • Turbo 2.8.12 → 2.8.13-canary.8
  • CI Actions: checkout v4→v6, setup-node v4→v6, cache v4→v5
  • Workers: compatibility_date2026-03-01
  • Fix CORS port references 3020 → 3005

📚 Documentation Overhaul

  • Refresh all 11 wiki pages with security patterns, DataLoader architecture, troubleshooting
  • Update README with v1.1.3 highlights section
  • Update ARCHITECTURE.md with Prisma 7 migration notes and DataLoader architecture
  • Update CONTRIBUTING.md with i18n testing section
  • Comprehensive CHANGELOG entry

Build & Deploy

  • 21/21 turbo tasks pass (lint + typecheck + build)
  • 161/161 API tests pass
  • 66/66 Web tests pass
  • ✅ CI pipeline 5/5 jobs green
  • ✅ All 3 Cloudflare Workers deployed
  • ✅ Vercel production deployment READY
  • 🌐 Live at nextcalc.io

Full Changelog: v1.1.2...v1.1.3

v1.1.2

02 Mar 05:23

Choose a tag to compare

Bug Fixes

  • Align API test mocks with security audit changes (IDOR, atomic counters, existence checks)
  • Add account_id to all 3 worker wrangler.toml configs — fixes Cloudflare /memberships auth error
  • Set fail-fast: false in deploy-workers matrix so each worker deploys independently

Infrastructure

  • Set CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID GitHub secrets for CI worker deploys
  • All 3 Cloudflare Workers successfully deployed via CI

Documentation

  • Updated CHANGELOG, wiki (Deployment, Cloudflare-Workers)
  • Updated health endpoint version

Full Changelog: v1.1.1...v1.1.2

v1.1.1 - Fix Worker Deploy Workflow

01 Mar 23:48

Choose a tag to compare

What's Changed

Bug Fixes

  • Fix deploy-workers GitHub Actions workflow: pnpm deploypnpm run deploy (pnpm 11 treats deploy as a built-in command)
  • Fix root deploy:workers script with the same fix

Full Changelog: v1.1.0...v1.1.1

v1.1.0 - Security Audit & Dependency Updates

01 Mar 23:41

Choose a tag to compare

What's Changed

Dependency Updates (90+ packages)

  • Next.js 16.2.0-canary.69, React 19.3.0-canary, TypeScript 6.0.0-dev.20260301
  • Prisma 7.5.0-dev.32, Biome 2.5.0, Turborepo 2.8.12
  • Hono 4.12.3, Wrangler 4.68.0, Vitest 4.1.0-beta.5, KaTeX 0.16.33
  • Three.js 0.183.2, jose 6.1.3 (new dependency for JWT verification)

Security Hardening

  • JWT verification: WebSocket auth now uses jose.jwtVerify() with signature verification (was base64 decode)
  • IDOR fixes: Worksheet queries enforce ownership; unshareWorksheet validates shareId
  • XSS prevention: Removed dangerouslySetInnerHTML for plain-text content
  • Error leak prevention: Worker error responses no longer expose internal err.message
  • Atomic counters: Forum post and worksheet view counters use atomic Prisma operations
  • Profile fix: Corrected authorIduserId field reference

Math Engine Correctness

  • modPow and lucasLehmer rewritten with BigInt (overflow-safe for all inputs)
  • RSA key generation fixed for sizes >= 64 bits (randomBigIntBelow() helper)
  • Limits: copy-paste bug fix (v1v2) and infinite recursion guard

Performance

  • Iterative Tarjan SCC (no stack overflow on large graphs)
  • O(1) topological sort dequeue (was O(V²) with Array.shift())
  • Lazy-loaded Lorenz3DRenderer via next/dynamic
  • Stack-safe Math.min/max with .reduce() for large arrays
  • Rate limiter skips KV for unlimited tiers

Code Quality

  • Number.isFinite()/Number.isNaN() across 12 files
  • node: import protocol for Node.js builtins
  • Removed redundant Prisma index, exported FavoriteType enum
  • Sentry env vars in Turbo build cache keys

Full Changelog: v1.0.0...v1.1.0

v1.0.0 - Production Release

28 Feb 22:35

Choose a tag to compare

NextCalc Pro v1.0.0 - Production Release

The first production release of NextCalc Pro, a comprehensive scientific calculator and mathematical visualization platform deployed at nextcalc.io.

Highlights

  • 47 page routes covering calculator, plotting, symbolic math, matrix operations, PDE/ODE solvers, game theory, chaos theory, graph algorithms, ML demos, and more
  • 8 languages (English, Russian, Spanish, Ukrainian, German, French, Japanese, Chinese) with 1200+ translation keys each
  • GPU-accelerated WebGL 2D rendering, Three.js 3D surfaces, and WebGPU compute shaders for PDE/ODE/bifurcation
  • 3 Cloudflare Workers for edge-deployed symbolic math, LaTeX export, and rate limiting
  • GraphQL API with Apollo Server 5.4, Relay-style cursor pagination, DataLoaders, and real-time subscriptions
  • Prisma 7 with Neon PostgreSQL serverless adapter
  • Zero as any across the entire monorepo production code

Tech Stack

  • Next.js 16.2, React 19.3, TypeScript 6.0
  • Tailwind CSS 4.2 with OKLCH color system
  • Three.js 0.183 with SSAO, HDR cubemaps, and 6 colormaps
  • Hono 4.12 on Cloudflare Workers
  • Biome 2.4.4, Vitest, Playwright

Infrastructure

  • Deployed on Vercel (nextcalc.io) + Cloudflare Workers (cas/export/ratelimit subdomains)
  • CI/CD via GitHub Actions (lint, typecheck, test, build)
  • Dependabot for dependency scanning
  • Sentry observability configs ready for DSN
  • CSP headers via Nosecone

Full Changelog: https://github.com/ABCrimson/NextCalc/blob/main/CHANGELOG.md

v0.1.0 - Initial MVP

28 Feb 22:35

Choose a tag to compare

Initial Release (October 16, 2025)

The first milestone of NextCalc Pro - a working scientific calculator.

Features

  • Complete Phase 1 MVP calculator with history, keyboard shortcuts, and LaTeX rendering
  • Next.js 16.0.0-beta.0 with React 19.2.0
  • App Router with shared types package
  • Turborepo monorepo with TypeScript 5.9.3