Skip to content

Release v0.9.0#44

Closed
atomantic wants to merge 20 commits intoreleasefrom
main
Closed

Release v0.9.0#44
atomantic wants to merge 20 commits intoreleasefrom
main

Conversation

@atomantic
Copy link
Owner

Release v0.9.0

Added

  • Fan chart: progressive expansion from semi-circle to full circle as generations increase (paternal left, maternal right)
  • Fan chart: curved text along arcs (gen 1-3) and radial text (gen 4+) with auto-scaling to fit names without truncation
  • Fan chart: root person name auto-wraps into multiple lines to fit center circle
  • Fan chart: support up to 10 generations (was 6) with text at all depths visible on zoom
  • Production serving via PM2: npm start builds all packages then starts PM2
  • Express serves built client UI from client/dist with SPA catch-all routing
  • PM2 convenience scripts and dev startup improvements

Changed

  • update.sh uses local pm2 binary instead of requiring global install
  • pm2 added as devDependency (no longer requires global install)

Fixed

  • Fix memory leak in pathLongest BFS
  • Add error logging to silent .catch() handlers
  • Extract magic numbers into named constants

Full Diff: v0.8.4...v0.9.0

atomantic and others added 20 commits March 1, 2026 09:40
npm start now builds all packages and starts PM2, with Express serving
the built client UI from client/dist. Adds dev-start.js for clean PM2
dev startup, PM2 convenience scripts, and uses local pm2 binary
throughout (no global install required).
Version was bumped on every /cam commit (0.8.4 → 0.9.0 unreleased).
Now /cam appends to .changelog/NEXT.md and /release handles version
determination, bumping, and changelog finalization. Reset version to
0.8.4 (last actual release), converted v0.9.0.md into NEXT.md.
security: harden server bindings, auth gates, and error handling
refactor: deduplicate SSE managers and localStorage sync patterns
fix: resolve N+1 queries, memory leak, missing error forwarding
fix: clean up event listeners and timers in React hooks
fix: improve code quality - log errors, remove non-null assertions, extract constants
…gic numbers

- pathLongest.ts: fix memory leak by reconstructing ancestor sets from parentOf chain on demand instead of copying Sets per BFS queue entry
- sync.service.ts: add logger.warn to 7 silent page.close() catch handlers
- sync.routes.ts: add error logging to silent findMatch catch
- requestTimeout.ts: extract 120000/10000 into LONG_TIMEOUT_MS/SHORT_TIMEOUT_MS constants
- PLAN.md: reconcile audit checklist — mark 42 items fixed across security, code quality, DRY, bugs/perf, and stack-specific categories
- Progressive arc sweep from 180° (semi-circle) to 360° (full circle) as generations increase
- Curved textPath for gen 1-3, radial text for gen 4+ (first name only)
- Auto-scale font to fit full name without truncation, CSS scale for sub-pixel rendering
- Root person name word-wraps into multiple lines inside center circle
- Support up to 10 generations with text at all depths (visible on zoom)
- Fix text orientation: letter tops always face outward from center
- React 18 → 19, react-dom 18 → 19, react-leaflet 4 → 5
- Tailwind CSS 3 → 4 with @tailwindcss/postcss, remove autoprefixer
- @types/node 22 → 25, @types/supertest 6 → 7, @types/react 18 → 19
- chalk 5.3 → 5.6, portos-ai-toolkit 0.1 → 0.8, zustand 5.0.9 → 5.0.11
- actions/setup-node v4 → v6 in all GitHub Actions workflows
- Fix React 19 compat: useRef initial values, JSX namespace, event types
The PostCSS plugin conflicts with Vite's CSS handling, causing
@layer base errors. The Vite plugin is the recommended approach
for Vite projects in Tailwind 4.
- Revert React 19 / react-leaflet 5 (portos-ai-toolkit@0.8.0 needs ^18.3.1)
- Pin @types/express-serve-static-core@~5.0.7 to avoid breaking ParamsDictionary change
- Move @testing-library/react to client workspace to prevent React duplication
- Revert React 19-specific code changes (JSX namespace, useRef, event types)
chore: update all dependencies to latest versions
@atomantic atomantic closed this Mar 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant