Conversation
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
…sertions, extract constants
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v0.9.0
Added
npm startbuilds all packages then starts PM2client/distwith SPA catch-all routingChanged
update.shuses local pm2 binary instead of requiring global installFixed
.catch()handlersFull Diff: v0.8.4...v0.9.0