feat(ci): add graphite ci optimizer and update job dependencies
This PR adds the Graphite CI optimizer to improve CI efficiency by skipping unnecessary jobs. All workflow jobs have been updated to depend on the optimizer's output.
Changes:
- Add `optimize_ci` job using graphite-ci-action
- Update all jobs to depend on `optimize_ci`
- Add skip conditions based on optimizer output
- Preserve existing job dependencies while adding optimizer dependency
- Handle Redis service configurations and command syntax updates
Note: This PR requires the `GRAPHITE_CI_OPTIMIZER_TOKEN` secret to be configured in the repository settings before the optimizer can be used.
Testing:
- [x] Verified workflow file syntax
- [x] Updated all job dependencies correctly
- [x] Maintained existing job configurations
Link to Devin run: https://app.devin.ai/sessions/3872f4dc4c3341b899646a90c46c4fe3
## Description
- Add null checks before clearTimeout calls in colorful-fallback.tsx, edgeless.dialog.tsx, and local.dialog.tsx
- Fix event listener cleanup in unfolding.tsx
- Update tsconfig.jsx to use react-jsx transform
## Testing
- [x] Verified type safety improvements for React 19 compatibility
- [x] Ensured proper cleanup of event listeners and timeouts
- [x] Confirmed no unintended side effects from the changes
Link to Devin run: https://app.devin.ai/sessions/2e790f3ea0d84402837ec6c3c6f83e4c