Ghost FTP v0.95.44 — Transfer Center selector modularization (development preview)
Published predecessor: v0.95.43 Preview. Public tag is immutable; this is a candidate source train, not an announced new release.
PERF-02 P1 scoped implementation
- Extract pure, stateless
countTransferStatuses,filterTransferViewandrecentTransferLogfromTransferCenterDialog.tsxtosrc/lib/transferViewModel.ts. - Keep existing transfer IDs/references, active/failed/done/skipped semantics, direction, keyword matching, time boundaries, log history order and native actions.
- Add
scripts/check-transfer-view-model.mjsto the frontend CI check script: six negative/edge/synthetic-history cases; no claims of production performance gains without real measurements. - Sync
version.json, Android versionCode954400, Tauri/Rust/Cargo/npm, Go runtime and installer, updater template and active docs to v0.95.44 Preview.
Required verification, still pending
- All six CI families plus native Windows/Linux builds on one exact final PR SHA.
- After authorized merge, rerun on exact merged-main SHA; never retarget published release tags.
- Real usability test with 5–8 users finding failed transfers in under 10 seconds and measured coupling/bundle-size diff.
- Site-based grouping, sticky progress, richer error/retry UI, Monaco/CodeMirror, editor conflicts, import/export matrices, IPv6/proxy E2E, keepalive, optional Master Password research, safe batch scheduling — separate features with their own acceptance.
- Live server/installer/visual/accessibility/signing tests as required by outstanding previous phases.
No user profiles, keys, passwords, transfer state, backups, sync root or release artifacts are deliberately changed by this PR. Preview only; no release requested.