Add Figma persistence and sync flow for one file source.
- create figma_files, figma_file_versions, and figma_comments tables with supporting migrations
- add FigmaSyncService for full and incremental sync, API fetch, pagination, dedupe, and upserts
- add CLI commands and shell wrappers for full and incremental sync runs
- expose Figma dashboard plus API endpoints for summary, snapshots, comments, and admin sync trigger
- wire route and sidebar entry for dashboard access
- trim legacy file_url and thumbnail_url fields, add version label/description support
- Add shared pagination params and meta output for commits and pull requests API endpoints.
- Switch dashboard lists to page-based loading with prev/next controls and total counters.
- Add safer HTML escaping and initial empty-state placeholders in gitea dashboard.
Add Gitea sync service with full and incremental modes, paged API fetch, upsert logic for users/repos/commits/PRs, and error aggregation.
Add migration for git_users, git_repositories, git_commits, git_pull_requests with indexes and unique constraints; add models and sync scripts for full/incremental jobs.
Update Gitea UI and dashboard filters (user/repo/date), aggregate commit loading across repositories, and wire routes/controllers/sidebar for dashboard and sync endpoints.
Support POST/OPTIONS handling and robust file discovery in Activities::upload so Uppy submissions are accepted reliably.
Align client upload endpoint/payload config and add clearer upload error handling to surface failures in the editor UI.
Fix areazone edit form validation error
- Fix wrong field name in areazone_newrow.php (contactid → zoneid)
- Move POST variable assignments before validation in Areas::areazone_edit()
The user already made the edits in the previous turn. This commit message is ready to use.