-
b3961257f6
fix(backup): live Pending/Safe counters now count down during active backup
main
Robin Kutesa
2026-05-30 22:49:35 +03:00
-
8fb425344d
feat(backup): parallel uploads via connection pool + TaskGroup
Robin Kutesa
2026-05-28 20:24:20 +03:00
-
920888efc1
fix(backup): Pending stat goes gray when 0, orange only when items need backup
Robin Kutesa
2026-05-26 12:33:06 +03:00
-
5602ca8e6a
fix(backup): add 8pt top padding to page 1 stats to match page 0 offset
Robin Kutesa
2026-05-22 03:51:34 +03:00
-
ce53d17afc
fix(backup): replace flexible Spacers with fixed heights for consistent stat alignment
Robin Kutesa
2026-05-22 03:46:11 +03:00
-
3df8b61e52
fix(backup): hard-lock status area to 66pt on all pages for consistent stat alignment
Robin Kutesa
2026-05-22 03:35:38 +03:00
-
d14f0a3446
fix(backup): pixel-align page 1/2 stats to page 0 stats strip position
Robin Kutesa
2026-05-22 03:29:13 +03:00
-
5751d1e36d
fix(backup): align page 1 stats to same position as page 0 stats strip
Robin Kutesa
2026-05-22 03:20:44 +03:00
-
1fe24f5719
fix: remove stray character at end of NASBackupApp.swift
Robin Kutesa
2026-05-22 03:12:49 +03:00
-
5049cfc7d6
feat(backup): toggleable backed-up photos in clean sheet; anchor page 1 stats to bottom
Robin Kutesa
2026-05-22 03:08:44 +03:00
-
255addd9f8
feat(backup): page 2 pull-down triggers refresh instead of clean
Robin Kutesa
2026-05-22 02:19:14 +03:00
-
8bd0149a60
Add Recently Deleted + screenshot sizes to cleanup page
Robin Kutesa
2026-05-21 15:44:37 +03:00
-
5a55931233
Replace clean confirm dialog with multi-option sheet
Robin Kutesa
2026-05-21 15:06:43 +03:00
-
02feba092c
Add pull-to-clean on page 1 (storage) — pull zone now on all pages
Robin Kutesa
2026-05-21 15:00:32 +03:00
-
1a40d4c1b6
Extend swipe and pull gestures to full screen
Robin Kutesa
2026-05-21 14:54:23 +03:00
-
c33bf08b5e
Remove DONE button from cleanup page
Robin Kutesa
2026-05-21 14:52:09 +03:00
-
7a03afaea1
Reduce stat values 30% — 30pt → 21pt light
Robin Kutesa
2026-05-21 14:48:46 +03:00
-
5f98dfc15c
Match storage stats to stats strip — plain inline, no card background
Robin Kutesa
2026-05-21 14:44:38 +03:00
-
54b8ac59be
Match storage card font weight to light — consistent with stats strip
Robin Kutesa
2026-05-21 14:41:00 +03:00
-
91879f2411
Revert stats strip to light weight — 30pt light monospacedDigit
Robin Kutesa
2026-05-21 14:36:28 +03:00
-
fa75e00326
Match stats strip to design — 32pt rounded semibold values
Robin Kutesa
2026-05-21 14:30:29 +03:00
-
e8cb48b6d0
Scale storage stat card values to match design — 36pt rounded
Robin Kutesa
2026-05-21 14:20:33 +03:00
-
76c1189412
Add pull-to-clean on page 2 — mirrors pull-to-backup on page 0
Robin Kutesa
2026-05-21 14:12:54 +03:00
-
a877f34e7d
Animate page indicator button with cascading pull-down hint
Robin Kutesa
2026-05-21 14:01:16 +03:00
-
3674e5fb06
Anchor ring to all 3 pages — page 2 cleanup uses same circle
Robin Kutesa
2026-05-21 13:58:50 +03:00
-
5361d03a5c
Remove HOLD TO CLEAN button from page 1 — pull-down only
Robin Kutesa
2026-05-21 13:55:24 +03:00
-
93682cb72c
Match page 1 storage layout to design — larger card, black button
Robin Kutesa
2026-05-21 13:51:38 +03:00
-
0fd025de3e
Replace page nav arrows with segmented indicator + square chevron
Robin Kutesa
2026-05-21 13:44:24 +03:00
-
e8f47fd734
Add missing source files to NASBackup.xcodeproj
Robin Kutesa
2026-05-21 11:57:31 +03:00
-
eb028d32b6
Lock circle during page swipes — unified ring for pages 0 and 1
Robin Kutesa
2026-05-21 11:31:01 +03:00
-
1d7cf63409
Anchor circle — pull zone floats above ring via overlay, no layout shift
Robin Kutesa
2026-05-21 00:07:01 +03:00
-
13806a2089
Fix pull gesture, ring size, and manifest NAS count consistency
Robin Kutesa
2026-05-20 20:31:43 +03:00
-
ca333918a6
Remove destinationRow from backup page — not in HTML prototype
Robin Kutesa
2026-05-20 20:12:51 +03:00
-
92541b8d7e
Match ring tracks and stats to HTML prototype exactly
Robin Kutesa
2026-05-20 19:55:23 +03:00
-
c96f28cd06
Fix stats labels/colors and ring center content to match HTML prototype
Robin Kutesa
2026-05-20 19:39:51 +03:00
-
da6f1926d2
Rewrite BackupView circle widget with 6-state pull gesture UX
Robin Kutesa
2026-05-20 19:15:42 +03:00
-
f59f79bad6
style: glow on NAS arc, darken ring tracks
Robin Kutesa
2026-05-19 18:34:33 +03:00
-
99ca4a9e21
chore: increase ring diameter from 210 to 240
Robin Kutesa
2026-05-19 18:31:53 +03:00
-
5f6d1a676b
feat: add iPhone Storage and Cleanup pages to ring carousel
Robin Kutesa
2026-05-19 18:24:55 +03:00
-
2eaf6620f1
feat: replace ProgressRing with KisaniRingView, update ring typography
Robin Kutesa
2026-05-19 17:56:23 +03:00
-
b9b91bbb35
Replace static NAS status label with live sync status indicator
Robin Kutesa
2026-05-19 10:05:47 +03:00
-
0bcb8f849c
Force uniform 1:1 square crop on all gallery cells
Robin Kutesa
2026-05-19 09:53:42 +03:00
-
47867f2ef3
Remove newFilesOnly toggle; add functional notifications; fix WiFi status
Robin Kutesa
2026-05-19 01:33:36 +03:00
-
089c9dfd67
Add screenshot cleanup and NAS quarantine features
Robin Kutesa
2026-05-19 01:19:43 +03:00
-
20b2b8eeb8
Gallery: fix sync dot colors — match phone photos against NAS directory
Robin Kutesa
2026-05-19 00:58:17 +03:00
-
fae13eba9f
Gallery: show all NAS files; Settings: fix WiFi label + cellular row
Robin Kutesa
2026-05-19 00:47:28 +03:00
-
6ae567d008
Fix Already Safe = 0: hybrid ManifestIndex preserves localIdentifiers + NAS filenames
Robin Kutesa
2026-05-19 00:32:03 +03:00
-
d5b1f13434
Settings: fix appearance picker in dark mode
Robin Kutesa
2026-05-18 23:54:34 +03:00
-
777024e9c7
Activity menu: add cellular row, replace Retry header with Clear Errors
Robin Kutesa
2026-05-18 23:42:43 +03:00
-
9cb1bc29ca
feat: add screen recordings filter, exclude by default
Robin Kutesa
2026-05-18 23:33:47 +03:00
-
fb6ecc10be
fix: pending queue uses NAS directory filenames when manifest is sparse
Robin Kutesa
2026-05-18 23:24:46 +03:00
-
6c38893374
fix: always refresh NAS dir count, show connection status, fix screenshot filter reactivity
Robin Kutesa
2026-05-18 23:15:51 +03:00
-
78a6b377f2
feat: move check status below ring, remove checking spinner, re-enable auto-backup
Robin Kutesa
2026-05-18 21:12:35 +03:00
-
2384a74517
fix: use NAS directory filenames for already-safe matching when manifest is sparse
Robin Kutesa
2026-05-18 21:07:00 +03:00
-
809929e0ed
fix: update local manifest cache immediately after upload, before NAS write
Robin Kutesa
2026-05-18 20:52:40 +03:00
-
0e65a548f2
fix: NAS operation timeouts, fast-path warm-up, 30-min stale threshold
Robin Kutesa
2026-05-18 20:41:49 +03:00
-
788262502d
fix: detect SMB Object Name Collision as already-safe, not failure
Robin Kutesa
2026-05-18 19:33:26 +03:00
-
8d8b6c4418
fix: resolve duplicate-file failures, alreadySafe reset, and backup restart loop
Robin Kutesa
2026-05-18 18:55:27 +03:00
-
0acf111d32
fix: NAS Archive always shows real directory count, not manifest entry count
Robin Kutesa
2026-05-18 18:03:56 +03:00
-
00e4ecc506
Fix NAS Archive reset and Already Safe regression
Robin Kutesa
2026-05-18 17:24:56 +03:00
-
ae22d7a739
Finish backup spec: button state, invariant assertion, NAS error surfacing
Robin Kutesa
2026-05-18 16:56:16 +03:00
-
d2190bce8a
Fix backup loop, NAS Archive regression, and manifest validity check
Robin Kutesa
2026-05-18 16:07:41 +03:00
-
3beea88fab
Fix backup loop, phone count invariant, and auto-start behaviour
Robin Kutesa
2026-05-18 10:01:09 +03:00
-
b18a2aad14
fix: remove NAS directory healing (inflated archive count) and record skipped files
Robin Kutesa
2026-05-18 00:25:45 +03:00
-
2b2d869ae7
fix: backup loops because isFilenameOnly gate disables filename fallback for mixed manifests
Robin Kutesa
2026-05-18 00:17:16 +03:00
-
0169486c72
fix: manifest out of sync with NAS causes gallery to show stale item count
Robin Kutesa
2026-05-18 00:11:10 +03:00
-
c7555a2001
fix: manifest cache not updated after backup causes NAS Archive = 1 and backup loop
Robin Kutesa
2026-05-18 00:03:10 +03:00
-
a98822d7b2
fix: NAS gallery shows backed-up files even when caches are cold
Robin Kutesa
2026-05-17 23:40:18 +03:00
-
1afcbaff96
perf: eliminate full rescans with local caches; add queue tracking, notifications, SyncView redesign
Robin Kutesa
2026-05-17 23:28:29 +03:00
-
025326f2b2
feat: redesign Gallery as photo timeline with sync state, deduplication, and detail view
Robin Kutesa
2026-05-17 21:30:31 +03:00
-
5b68fde62f
feat: automatic backup on launch, foreground, and photo library change
Robin Kutesa
2026-05-17 17:28:11 +03:00
-
0f62268af1
perf: move heavy work off main actor, throttle progress updates, add signposts
Robin Kutesa
2026-05-17 16:42:48 +03:00
-
f40cf9ee37
Fix backup progress state machine: pending queue, resolvedStatus, failure resolution
Robin Kutesa
2026-05-17 15:58:54 +03:00
-
819f2b949e
Fix backup state logic, ring colors, Already Safe invariant, and dedup
Robin Kutesa
2026-05-17 15:30:52 +03:00
-
c11ce6d644
Overhaul Connect flow with proper state machine and progressive UX
Robin Kutesa
2026-05-17 15:03:12 +03:00
-
44f290da54
Show destination folder row always, activate after auth
Robin Kutesa
2026-05-17 14:08:37 +03:00
-
00f68eebcd
Redesign Connect flow with step-based UX and matching logo
Robin Kutesa
2026-05-17 13:58:03 +03:00
-
97dfb62dc7
Fix foregroundStyle iOS 16 compatibility in BackupView
Robin Kutesa
2026-05-17 13:17:13 +03:00
-
4a7ba9b332
Make backup status reconciliation memory-safe
Robin Kutesa
2026-05-17 13:06:44 +03:00
-
2225629dd8
Fix invalid await inside ?? autoclosure in BackupStatusService
Robin Kutesa
2026-05-17 12:57:05 +03:00
-
712e110f57
Add live backup status reconciliation with NAS manifest
Robin Kutesa
2026-05-17 12:51:03 +03:00
-
1312ebb278
Rebuild Activity screen as a live backup activity center
Robin Kutesa
2026-05-17 12:12:26 +03:00
-
a68cf0e5ec
Fix NAS badge color and icon in AppMenuView
Robin Kutesa
2026-05-17 12:01:42 +03:00
-
a077964d75
Fix AppMenuView Connection Status UX and add smart sync dashboard
Robin Kutesa
2026-05-17 11:54:43 +03:00
-
59bdad803f
feat: Kisani UI overhaul — brand identity, gallery, visual polish
Robin Kutesa
2026-05-17 11:17:13 +03:00
-
6cad8d9d6c
feat: set kisani app icon (server.rack, black bg, white icon)
Robin Kutesa
2026-05-16 19:23:53 +03:00
-
2bdf41502e
fix: pin Connect button to bottom, dynamic protocol badge
Robin Kutesa
2026-05-16 19:19:37 +03:00
-
2b6e2d145d
refactor: swap disk icon for server.rack on all logo marks
Robin Kutesa
2026-05-16 19:13:05 +03:00
-
6f7d05a6c2
fix: internaldrive.fill icon, ink/inkInverse adaptive colors
Robin Kutesa
2026-05-16 19:08:43 +03:00
-
6f7e80023f
fix: use SF Symbol in logo mark, bold kisani. wordmark
Robin Kutesa
2026-05-16 19:03:29 +03:00
-
b46fc20975
fix: render ugreen_logo correctly using template mode on green bg
Robin Kutesa
2026-05-16 18:59:36 +03:00
-
a40ec86362
refactor: make stats strip much more compact
Robin Kutesa
2026-05-16 18:47:54 +03:00
-
2e40aa5683
fix(signing): remove Access Wi-Fi entitlement (unsupported on free teams)
Robin Kutesa
2026-05-16 18:39:35 +03:00
-
15f9da843c
feat: Sync tab, hamburger menu, network status, browse UX
Robin Kutesa
2026-05-16 17:58:00 +03:00
-
e1e851360b
feat: logo fix, session hierarchy, Switch User, lock vs signOut
Robin Kutesa
2026-05-16 16:59:23 +03:00
-
19d14e58fb
fix: SMB share enumeration, BrowseView polish, sign out, Login branding
Robin Kutesa
2026-05-16 16:41:16 +03:00
-
ae38f6e417
feat: Kisani rebrand, step-based onboarding flow, dark mode fixes
Robin Kutesa
2026-05-16 16:20:53 +03:00
-
03d63e60de
Add cellular data toggle, Tailscale remote access, fix ToggleRow padding
Robin Kutesa
2026-05-16 11:40:07 +03:00
-
07b5e45c78
Revert default protocol to SMB — UGreen NAS uses standard SMB
Robin Kutesa
2026-05-16 11:17:17 +03:00
-
c34dada2b5
Redesign ConnectView for UGreen NAS, default to SFTP
Robin Kutesa
2026-05-16 11:11:52 +03:00