Releases: ABCrimson/NextCalc
Releases · ABCrimson/NextCalc
v1.2.2 — Comprehensive Test Overhaul
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:
extractVariablescorrectly excludespias a known constant - Fixed TypeScript 6.0 strict mode issues in test files (
vi.stubEnvinstead of directprocess.envassignment)
Infrastructure
- Standardized Vitest configs across all packages
- Disabled typecheck in math-engine vitest config (causes indefinite hang — use
tsc --noEmitseparately) - Cleaned up unused mocks in web vitest setup
v1.1.3 — Performance Audit & Documentation Overhaul
🚀 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
exactOptionalPropertyTypesviolations across 3 Cloudflare Workers - Replace
React.EventTypenamespace with named imports (6 files) - Replace
slate-*/gray-*Tailwind with semantic tokens (3 pages) - Add
typecheckscripts to all worker packages - Create
tsconfig.typecheck.jsonfor 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_date→2026-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
Bug Fixes
- Align API test mocks with security audit changes (IDOR, atomic counters, existence checks)
- Add
account_idto all 3 workerwrangler.tomlconfigs — fixes Cloudflare/membershipsauth error - Set
fail-fast: falsein deploy-workers matrix so each worker deploys independently
Infrastructure
- Set
CLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_IDGitHub 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
What's Changed
Bug Fixes
- Fix
deploy-workersGitHub Actions workflow:pnpm deploy→pnpm run deploy(pnpm 11 treatsdeployas a built-in command) - Fix root
deploy:workersscript with the same fix
Full Changelog: v1.1.0...v1.1.1
v1.1.0 - Security Audit & Dependency Updates
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;
unshareWorksheetvalidates shareId - XSS prevention: Removed
dangerouslySetInnerHTMLfor 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
authorId→userIdfield reference
Math Engine Correctness
modPowandlucasLehmerrewritten with BigInt (overflow-safe for all inputs)- RSA key generation fixed for sizes >= 64 bits (
randomBigIntBelow()helper) - Limits: copy-paste bug fix (
v1→v2) 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
Lorenz3DRenderervianext/dynamic - Stack-safe
Math.min/maxwith.reduce()for large arrays - Rate limiter skips KV for unlimited tiers
Code Quality
Number.isFinite()/Number.isNaN()across 12 filesnode:import protocol for Node.js builtins- Removed redundant Prisma index, exported
FavoriteTypeenum - Sentry env vars in Turbo build cache keys
Full Changelog: v1.0.0...v1.1.0
v1.0.0 - Production Release
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 anyacross 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
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