Files
ps5upload/client
phantomptrandClaude Opus 5.5 cc02f7b40b Organize on servers: odd names, FTP target checks, undo fingerprint
- Names that look like escapes or separators: the scanner built remote://
  paths from raw server names, which parse() then percent-decoded, so
  "a%20b.pkg" read "a b.pkg" and "100% Orange.pkg" could not be read. Each
  name is now encoded (%, \) into the path and the relative path decoded
  back; parse() accepts an encoded backslash (never one hiding ".."). The
  organizer's server tree keeps raw server paths and never decodes them;
  only on Windows is a "\" turned into "/" (there a name holding one is
  left alone). Container strings go through one path_string everywhere.
- FTP no-overwrite: a rename target counts as free only when its folder
  could be listed (550 is not "absent"), no entry has the name in any case,
  and SIZE/MDTM on the exact path do not find it (LIST hides dot-files).
  stat() probes the same way, so apply's destination check sees hidden
  files too.
- Undo fingerprint: a run's log records protocol, host, port, share and
  folder. Undo is refused when the saved connection now points at another
  server; an older log is undone on the same connection id with a note.
- redact(): a short secret right after a %XX escape, and the secret's
  percent-encoded form, are masked too.
- Tests: odd names through the scanner and the organizer, case-variant
  collisions, FTP unlistable parent / hidden target / case twin, the undo
  fingerprint, URL-encoded redaction. Re-checked plan/apply/undo on Samba,
  vsftpd, OpenSSH and Apache WebDAV with such names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:52:40 -07:00
..
2026-10-16 12:32:11 -07:00
2026-10-18 20:25:20 -07:00
2026-10-18 20:25:20 -07:00
2026-10-18 20:25:20 -07:00
2026-09-27 04:31:13 -07:00
2026-09-27 04:31:13 -07:00