Enhance hero_sync dashboard UX, fix RPC null responses, and improve engine #4

Open
zaelgohary wants to merge 1 commit from development_sync into development
Member

Backend fixes:

  • Fix 4 RPC handlers (profiles.save, profiles.delete, profiles.save_toml,
    demo.stop) returning null result, which caused proxy to emit "Backend
    unavailable" errors — now return {"ok": true}
  • Update API docs table to reflect correct return values

Dashboard UI overhaul (dashboard.js / dashboard.html / dashboard.css):

  • Rewrite rpc() as async/await; unified error message format
  • Add sync phase step strip (Scan→Diff→Plan→Execute→Finish) with
    progress bar advancing per phase and elapsed timer
  • Show "Already in sync" state when 0 files changed, no errors
  • Show sync duration in both success and error result modals
  • Add delete confirmation modal (replaces native confirm())
  • Add password toggle buttons for WebDAV/S3 credential fields
  • Add copy-to-clipboard buttons for demo server URL/user/pass
  • Add Cancel button in create/edit profile form with auto local_root
  • Theme-aware log viewer with per-level colors (dark + light mode)
  • Responsive layout: sidebar order, profile card stacking, nav tab scroll
  • Remove unused Unpoly CSS/JS assets
  • Fix editProfile not clearing cfgExclude when profile has no patterns
  • Fix relativeTime returning negative strings on clock skew
  • Fix esc() in onclick attrs not escaping ' and \ (add escOnclick helper)
  • Fix cancelSync using stale renderProfiles() instead of loadProfiles()
  • Null-guard res.cancelled in cancelSync

Engine and protocol:

  • Refactor executor and planner with improved sync logic
  • Improve WebDAV protocol handling
  • Add WebDAV e2e integration tests

Dependencies:

  • Update herolib_core to 0.4.2 (git)
  • Add hyper, hyper-util, tower to hero_sync_server
  • Add herolib_core to hero_sync_ui

Related issue: #1

Backend fixes: - Fix 4 RPC handlers (profiles.save, profiles.delete, profiles.save_toml, demo.stop) returning null result, which caused proxy to emit "Backend unavailable" errors — now return {"ok": true} - Update API docs table to reflect correct return values Dashboard UI overhaul (dashboard.js / dashboard.html / dashboard.css): - Rewrite rpc() as async/await; unified error message format - Add sync phase step strip (Scan→Diff→Plan→Execute→Finish) with progress bar advancing per phase and elapsed timer - Show "Already in sync" state when 0 files changed, no errors - Show sync duration in both success and error result modals - Add delete confirmation modal (replaces native confirm()) - Add password toggle buttons for WebDAV/S3 credential fields - Add copy-to-clipboard buttons for demo server URL/user/pass - Add Cancel button in create/edit profile form with auto local_root - Theme-aware log viewer with per-level colors (dark + light mode) - Responsive layout: sidebar order, profile card stacking, nav tab scroll - Remove unused Unpoly CSS/JS assets - Fix editProfile not clearing cfgExclude when profile has no patterns - Fix relativeTime returning negative strings on clock skew - Fix esc() in onclick attrs not escaping ' and \ (add escOnclick helper) - Fix cancelSync using stale renderProfiles() instead of loadProfiles() - Null-guard res.cancelled in cancelSync Engine and protocol: - Refactor executor and planner with improved sync logic - Improve WebDAV protocol handling - Add WebDAV e2e integration tests Dependencies: - Update herolib_core to 0.4.2 (git) - Add hyper, hyper-util, tower to hero_sync_server - Add herolib_core to hero_sync_ui Related issue: https://forge.ourworld.tf/lhumina_code/hero_sync/issues/1
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin development_sync:development_sync
git switch development_sync

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch development
git merge --no-ff development_sync
git switch development_sync
git rebase development
git switch development
git merge --ff-only development_sync
git switch development_sync
git rebase development
git switch development
git merge --no-ff development_sync
git switch development
git merge --squash development_sync
git switch development
git merge --ff-only development_sync
git switch development
git merge development_sync
git push origin development
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_sync!4
No description provided.