PCLI2

v1.14.0

v1.14.0 Jul 30 2026 at 19:32 UTC

Changed

  • CSV match reports now stream to stdout instead of being buffered whole - folder geometric-match, folder part-match, and folder visual-match used to serialize the entire report into a byte buffer, copy that into a String, and print it in one go, holding the report in memory three times over before emitting a single byte. Rows now go straight to a buffered, locked stdout as they are produced: output starts appearing immediately, two of the three full copies are gone, and peak memory no longer scales with a second and third copy of the report. The bytes written are unchanged. Two consequences worth knowing: a failure partway through now leaves a truncated report on stdout rather than printing nothing at all (the error still goes to stderr and the exit code is still non-zero), and closing the pipe early — pcli2 … | head — now ends with a clean error instead of a failed printing to stdout panic. JSON output deliberately still buffers, because half a JSON document is not a document.

Added

  • --progress now covers report building as well as matching - On a large result set, folder match reports spend minutes turning matches into a table and serializing them, and that work happens after the match progress bar has already reached 100% — so the command looked wedged (one run sat silent for several minutes at 22,378 assets). With --progress, each phase now reports itself with a running elapsed time, and the phases whose size is known up front (flattening matches, collecting metadata columns, building rows, formatting CSV, writing worksheet cells) show a percentage bar and an ETA rather than an indeterminate spinner. Serializing JSON, sorting the workbook, sizing its columns, and saving it are named as they happen, so a long wait can be attributed to a specific step. A summary line closes the report (Built report of 1,743,201 row(s) in 2 minutes). Applies to folder geometric-match, folder part-match, and folder visual-match, in every output format including --format xls. All of it goes to stderr, so piped stdout is unaffected; without --progress the phase stays silent.
  • --progress now covers the recursive folder scan - With --recursive, folder match reports spend time walking the folder tree (one API call per folder) before any matching starts, which looked like a hang on a deep tree. When --progress is passed, that phase now reports live (Scanning /Creo Files: 46/312 folders, 1174 assets found) and prints a summary before matching begins (Scanned 1 folder path(s), found 3182 asset(s) to match). All of it goes to stderr, so piped stdout is unaffected; without --progress the scan stays silent.