Commit Graph

26 Commits

Author SHA1 Message Date
perf3ct 67ae68745c
fix(dev): remove unneeded docs 2025-08-13 20:51:13 +00:00
perf3ct abd55ef419
feat(storage): abstract storage to also support s3, along with local filesystem still 2025-08-01 04:33:08 +00:00
perfectra1n 0fbb106668 fix(tests): resolve typescript compilation and test compilation errors 2025-07-30 20:03:13 -07:00
perf3ct 32983c3fba feat(server): implement #106 for per-user watch directories 2025-07-31 00:10:10 +00:00
perf3ct 7da99cd992 feat(server): implement websockets over sse 2025-07-30 02:04:44 +00:00
perf3ct d7a0a1f294 feat(server): do a *much* better job at determining file types thanks to infer rust package 2025-07-29 21:28:33 +00:00
perf3ct cfeb6c5c93 feat(tests): wrap the tests so that even if they fail, they still close their db connections 2025-07-28 18:15:08 +00:00
perf3ct c37014f924 feat(tests): work on resolving tests that don't pass given the large rewrite 2025-07-28 04:13:14 +00:00
perf3ct 023d424293 feat(server/client): I have no words, hopefully this lesser abstraction and webdav tracking works now 2025-07-27 19:29:45 +00:00
perf3ct 2c0ef814d9 feat(client/server): implement better source sync output 2025-07-27 05:02:13 +00:00
perf3ct 1939c4aec3 feat(webdav): create dedicated module for managing the mess that is WebDAV XML responses 2025-07-26 23:37:09 +00:00
perf3ct 8c9d5dc12b feat(webdav): move to tracking all subdirectory etags 2025-07-22 19:59:25 +00:00
perf3ct 305c6f1fb1 feat(server): show source metadata EVEN better 2025-07-10 21:51:30 +00:00
perf3ct ea43f79a90 feat(server): show source metadata better, and implement tests 2025-07-10 21:40:16 +00:00
perf3ct b7f1522b4a feat(server): updating the watcher.rs file to preserve source metadata 2025-07-10 21:18:08 +00:00
perf3ct b356017484 feat(server): implement better error checking for sources 2025-07-07 19:10:45 +00:00
perf3ct 922478d995 fix(server): resolve compilation errors due to splitting up the large files 2025-07-04 03:06:29 +00:00
perf3ct 497b34ce0a fix(server): resolve type issues and functions for compilation issues 2025-07-04 00:53:32 +00:00
perf3ct 0e84993afa fix(server): resolve import issues 2025-07-03 23:58:11 +00:00
perf3ct b9e0e5b905 feat(dev): also break up the large webdav_service.rs file into smaller ones 2025-07-03 19:57:31 +00:00
perf3ct 7074a8d868 feat(webdav): add validation statuses to sources 2025-07-03 14:03:26 +00:00
perf3ct 459b8622bb feat(webdav): also add some crazy source automatic validation 2025-07-03 05:26:36 +00:00
perf3ct be29316ff4 fix(tests): resolve compilation error in tests and source scheduler 2025-07-02 23:49:46 +00:00
perf3ct 92b21350db feat(webdav): track directory etags
✅ Core Optimizations Implemented

  1. 📊 New Database Schema: Added webdav_directories table to track
directory ETags, file counts, and metadata
  2. 🔍 Smart Directory Checking: Before deep scans, check directory
ETags with lightweight Depth: 0 PROPFIND requests
  3. ΓÜí Skip Unchanged Directories: If directory ETag matches, skip the
entire deep scan
  4. 🗂️ N-Depth Subdirectory Tracking: Recursively track all
subdirectories found during scans
  5. 🎯 Individual Subdirectory Checks: When parent unchanged, check
each known subdirectory individually

  🚀 Performance Benefits

  Before: Every sync = Full Depth: infinity scan of entire directory
treeAfter:
  - First sync: Full scan + directory tracking setup
  - Subsequent syncs: Quick ETag checks → skip unchanged directories
entirely
  - Changed directories: Only scan the specific changed subdirectories

  📁 How It Works

  1. Initial Request: PROPFIND Depth: 0 on /Documents → get directory
ETag
  2. Database Check: Compare with stored ETag for /Documents
  3. If Unchanged: Check each known subdirectory (/Documents/2024,
/Documents/Archive) individually
  4. If Changed: Full recursive scan + update all directory tracking
data
2025-07-01 21:22:16 +00:00
perf3ct 9e43df2fbe feat(server/client): add metadata to file view 2025-06-30 19:13:16 +00:00
perf3ct 9a8bf72ff7 feat(server): reorganize components into their own modules and fix imports 2025-06-27 18:27:42 +00:00