All notable changes to NextCalc Pro are documented in this file.
1.2.1 - 2026-03-04
- Dynamic-import
SymbolicPanel(~300KB deferred) vianext/dynamic+ssr: falseon/symbolicroute (43d4893) - Replace Framer Motion orb animations with CSS
@keyframeson/symbolic(compositor thread, zero main-thread cost) (43d4893) - Replace all
m.*entry animations with plain HTML + CSS animation on/symbolic— removes framer-motion from page chunk entirely (~34KB saved) (43d4893) - Add IntersectionObserver gate to TransformerVisualizer
requestAnimationFrameloop — pauses 60fps canvas when scrolled out of view (43d4893) - Replace Framer Motion pulsing overlays with CSS
@keyframeson/algorithms/transformers— eliminates per-frame React reconciliation for 64+ heatmap cells (43d4893) - Remove staggered entry delay from 64 heatmap cells in TransformerVisualizer — eliminates 64 separate animation timers (
43d4893) - Cache KaTeX dynamic import at module level in
MathRenderer— avoids redundant async resolution across multiple instances (43d4893)
- Fix 15 API test failures — add missing mocks for
hasUpvotedDataLoader,$transaction,invalidateByPrefix,updateMany(2405bb9) - Fix 35 web test failures — add
m(lazy motion) proxy to framer-motion mock in vitest.setup.ts (2405bb9) - Fix 3 export-service test failures — use valid UUID strings for userId in test data (
2405bb9) - Fix 1 rate-limiter test failure — adjust safety margin assertion (
2405bb9) - Fix Biome formatting across 170+ files — import organization, line wrapping, JSON formatting (
2405bb9) - Upgrade CI actions:
actions/checkout@v4→@v6,actions/setup-node@v4→@v6(2405bb9) - Provide
AUTH_SECRETenv var in CI build step — NextAuth requires it at build time (3c9e476) - Add
@graphql-codegen/cliand@graphql-typed-document-node/coredevDependencies — required for typecheck (8ef2f61) - Update lockfile for
typedocdevDependency (ca71852) - Update deploy-workers workflow — v6 actions,
pnpm-lock.yamlpath trigger,workflow_dispatchsupport (b22cae5)
- 78 issues fixed across the entire monorepo (25 HIGH, 47 MEDIUM, 6 LOW)
- Security: path traversal guard in
getTopicPath, GraphQL redirect sanitization,importFromJSONvalidation - Performance: N+1 queries eliminated with
hasUpvotedandcommentCountByPostIdDataLoaders,invalidateByPrefixcache method using SCAN - Code quality: Redis SCAN cursor type fix,
alternateLocalemetadata fix,setTimeoutref type fix, dead state removal - Infrastructure: Vitest
.specexclusion fix,transpilePackagescleanup, vacuous E2E test removal
1.2.0 - 2026-03-03
- Fix signIn redirect from
/dashboard(404) to/(b441eb3) - Fix signOut to use CSRF token — NextAuth v5 requires CSRF on POST to
/api/auth/signout(b441eb3) - Add
onErrorfallback to navbar avatar — broken provider images fall back to level icon (b441eb3) - Sync OAuth provider name and image on every sign-in event (
b441eb3)
- Add
commentCount: Int!field to GraphQLForumPosttype with dedicated resolver (b441eb3) - Fix forum post listing and detail pages showing 0 comments (was fetching
comments(limit: 0)) (b441eb3) - Remove hardcoded fake top contributors, show i18n empty state message (
b441eb3)
- RS3-style XP formula:
sum(floor(i + 300 * 2^(i/7)) / 4)— exponential curve with 100 levels (b441eb3) - 10 named tiers: Novice, Apprentice, Journeyman, Adept, Expert, Master, Grandmaster, Legend, Mythic, Transcendent (
b441eb3) - Admin-only Architect tier (L101) for special users (
b441eb3) - OKLCH color progression per level, XP formatting helpers (
b441eb3)
- Programmatic crystal SVG component (
LevelIcon) with 10 visual tiers of increasing geometric complexity (b441eb3) - Pre-generated 103 SVG files via Node.js script (
generate-level-icons.ts) (b441eb3) - Static SVG loader component (
LevelIconStatic) for/icons/levels/level-NNN.svg(b441eb3) - 3 L101 special variants: Prismatic Crystal Crown, Cosmic Nexus, Phoenix Crystal (
b441eb3)
- Extract
HeroAvatarcomponent withonErrorimage fallback + level icon default (b441eb3) - XP bar with tier name display in profile HeroCard (
b441eb3) - Level icon as default avatar in navigation and profile when no provider image (
b441eb3)
1.1.3 - 2026-03-02
- Fix bookmarks store 5x re-render with
useShallowselector (9acc00a) - Dynamic import KaTeX (~280 KB deferred from initial bundle)
- Add 4 new DataLoaders eliminating N+1 queries (
worksheetsByFolderId,forumPostById,commentById,repliesByParentCommentId) - Parallelize sequential DB queries with
Promise.allin worksheet, forum, and profile resolvers - Typed arrays (
Uint8Array/Float64Array) in prime sieve and PageRank - Memoize factorial computation in
series.ts - Batch Canvas2D grid draws into single path operations
- Fix GPU memory leak: dispose sprite textures/materials in
webgl-3d.ts - Add
loading.tsxskeletons forlearn/[topic],problems/[id],share/[code]
- Timing-safe admin key comparison via SHA-256 + XOR in rate-limiter
- CORS fallback returns empty string for non-matching origins
- Recursive query complexity analysis in GraphQL performance-monitoring plugin
- Remove
prettyJSONmiddleware from all workers (prevents information leakage)
- Fix all
exactOptionalPropertyTypesviolations across 3 Cloudflare Workers - Fix 50+ pre-existing type errors in CAS service (
FactoryFunctionMap,SymbolNode, null checks) - Replace
React.EventTypenamespace usage with named imports (6 files) - Replace
slate-*/gray-*Tailwind classes with semantic tokens (3 pages) - Add
typecheckscripts to all worker packages - Create
tsconfig.typecheck.jsonfor standalone web typechecking
- Update Turbo 2.8.12 → 2.8.13-canary.8
- Update CI actions: checkout v4 → v6, setup-node v4 → v6, cache v4 → v5
- Update
compatibility_dateto2026-03-01for all workers - Fix CORS port references 3020 → 3005 across all workers and configs
- Comprehensive documentation and wiki refresh
1.1.2 - 2026-03-02
- Align API test mocks with security audit changes (IDOR, atomic counters, existence checks) (
4c197c0) - Add
account_idto all 3 workerwrangler.tomlconfigs — fixes Cloudflare/membershipsauth error (d5ccb91) - Set
fail-fast: falsein deploy-workers matrix so each worker deploys independently (d5ccb91)
- Set
CLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_IDGitHub secrets for CI worker deploys (d5ccb91)
1.1.1 - 2026-03-01
- Fix deploy-workers workflow:
pnpm deploy→pnpm run deploy(pnpm 11 conflict) (e0cabfd)
1.1.0 - 2026-03-01
- Update 90+ packages across all 10 workspace packages (
86f3eb3) - 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.4.4, 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)
- JWT signature verification via
jose.jwtVerify()for WebSocket auth (86f3eb3) - IDOR protection on worksheet queries — enforce ownership, admin-only cross-user access (
86f3eb3) - Fix
unshareWorksheetIDOR — validate shareId belongs to worksheetId (86f3eb3) - Fix profile resolver using wrong field (
authorId→userId) (86f3eb3) - Remove
dangerouslySetInnerHTMLfor plain-text problem statements (86f3eb3) - Strip internal error messages from worker responses (
86f3eb3) - Atomic forum post view counter (replaces read-then-write) (
86f3eb3) - Add existence check to
incrementWorksheetViews(86f3eb3)
- BigInt-safe
modPowandlucasLehmer— fixes silent overflow for large inputs (86f3eb3) - RSA
randomBigIntBelow()helper — fixes crash for key sizes >= 64 bits (86f3eb3) - Limits copy-paste bug:
v1→v2at evaluation boundary (86f3eb3) - Infinite recursion guard in algebraic simplification (
_skipAlgebraicflag) (86f3eb3) - PDE
toggleAnimationstale closure fixed with functional state update (86f3eb3) - Bifurcation renderer stale
gpuParamsclosure fixed (86f3eb3)
- Iterative Tarjan SCC — no stack overflow on large graphs (
86f3eb3) - Topological sort uses index pointer instead of
Array.shift()(O(V+E) vs O(V²)) (86f3eb3) - Lazy-load
Lorenz3DRendererwithnext/dynamic+ssr: false(86f3eb3) - Replace
Math.min/max(...largeArray)with.reduce()— prevents stack overflow (86f3eb3) - Rate limiter skips KV entirely for unlimited tiers (
86f3eb3)
isFinite()/isNaN()→Number.isFinite()/Number.isNaN()across 12 files (86f3eb3)node:import protocol for Node.js builtins in 4 files (86f3eb3)- Remove redundant
@@index([shortCode])from Prisma schema (86f3eb3) - Export
FavoriteTypeenum from@nextcalc/database(86f3eb3) - Add Sentry env vars to Turbo build cache keys (
86f3eb3) - Fix
testtask dependency:["build"]→["^build"](86f3eb3) - Bump all package versions to 1.1.0 (
86f3eb3)
1.0.0 - 2026-02-28
- Seed Lorenz GPU particles along the attractor trajectory (
6aa3223) - 5 procedural space cubemap themes with configurable resolution (
6876731) - Add 5 colormaps (inferno, coolwarm, cividis, magma, spectral) and fix zoom sensitivity (
5e2c498) - Upgrade PageRank nodes to 3D spheres with proper lighting and size cap (
998631e)
- Attention matrix multi-hue OKLCH colormap for dark theme readability (
bddf9f2) - Add cubic, Gauss, circle maps to bifurcation WebGPU shader (
6938f89) - Use SVG markers for eigenvector arrowheads to fix alignment (
115b2a7) - Improve box plot whisker visibility with dashed strokes (
118b708) - Symbolic integration of x*ln(x) via integration by parts (
070818f) - PDE solver re-runs on all parameter changes, fixing blank heatmap (
1bb87b9) - Use seeded PRNG in MetaLearningPlayground to prevent hydration mismatch (
5f7e3a1) - Body suppressHydrationWarning, favicon metadata, temperature icon overflow (
81df29d)
- Bump biome 2.4.4, tailwind 4.2.1, hono 4.12.2, typescript 6.0.0-dev.20260223, workers-types 4.20260302.0 (
0ac9bd8)
- Add 4 PDE initial condition presets (double Gaussian, sawtooth, square pulse, sinc) (
d5659f4) - Add 3 graph presets and detailed proof section for algorithm results (
53396a3) - Detailed rule explanations for integration and derivative solver steps (
58816d2) - Add polar plot analysis section (symmetry, petals, area) (
f9b1c31)
- Update symbolic page to reflect full integration capabilities (
1490a47) - ML attention matrix readability and similarity matrix OKLCH colors (
707114e) - Box plot whiskers, end-caps, and hover tooltips (
57878f7) - Complex panel Unicode subscripts and conjugate overline rendering (
d29c5ee) - Fourier axis labels respect zoom/pan visible window (
746ec18) - Bifurcation DPR scaling, Y-axis pan, add 10 presets (
f927b2f) - Implement proper SSAO with GTAONode instead of empty AO slot (
aa3d565) - Resolve stale closure in Lorenz GPU particle toggle (
a06ceff) - Resolve WebGPU init race condition in PDE heatmap (
24cd16d) - Prevent PageRank crash when clearing graph (division by zero guard) (
af9228e)
- Bump dependencies: next, biome, three, prisma, framer-motion, hono, etc. (
0465421)
0.1.0 - 2025-10-16
- Complete Phase 1 MVP calculator with history, keyboard shortcuts, and LaTeX rendering (
62208ef) - Next.js 16.0.0-beta.0 with React 19.2.0 upgrade (
e1e8ba5) - Next.js app with App Router and shared types package (
1a9f33f)
- Initial project setup with Turborepo, TypeScript 5.9.3, and ESNext (
b195e60)
This changelog is generated from the git history. Commit hashes reference the short SHA for each change.