BBS: TELESC.NET.BR Assunto: src/syncterm/sftp_degraded.c sftp_degraded.h sftp_queue_screen.c sftp_ De: Deuc¨ Data: Fri, 24 Apr 2026 14:19:28 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/ee5c974d4d3a606579257d47 Added Files: src/syncterm/sftp_degraded.c sftp_degraded.h sftp_queue_screen.c sftp_queue_screen.h Modified Files: src/syncterm/CMakeLists.txt GNUmakefile sftp_browser.c sftp_queue.c sftp_queue.h ssh.c term.c Log Message: SyncTERM: SFTP queue screen, per-BBS persistence, degraded mode Queue persistence: each BBS's cache dir now holds sftp_queue.ini. On connect, sftp_queue_attach_bbs() reloads any pending jobs; ACTIVE rows come back as QUEUED so interrupted transfers restart cleanly. Every state transition atomically rewrites the file. Alt-Q opens the queue screen: live per-job progress (done/total %), sorted ACTIVE first, then QUEUED then terminal rows. Del cancels the highlighted job; Esc closes. Uses WIN_DYN + gen_ctr polling so the view updates as workers tick but the bar only repaints on real change. Browser keys finalised around uifc's built-in letter-jump: Enter downloads a file (and stays in the list), Ins uploads, Del cancels. Directories descend on Enter as before. Shell-dead degraded mode: if ssh_chan closes while the SFTP queue still has work, ssh_input/output threads now leave conn_api.terminate clear so sftp_send and the recv thread keep flowing. term.c's disconnect branch runs sftp_degraded_run() first a small overlay that blocks until the queue drains or the user chooses "Hang up now" / Esc. Queued-but-unfinished jobs are preserved on disk for the next connection. Co-Authored-By: Claude Opus 4.7 (1M context)n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]