PCLI2
v1.14.0
v1.14.0
Jul 30 2026 at 19:32 UTC
Changed
- CSV match reports now stream to
stdoutinstead of being buffered whole -folder geometric-match,folder part-match, andfolder visual-matchused to serialize the entire report into a byte buffer, copy that into aString, 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, lockedstdoutas 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 onstdoutrather 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 afailed printing to stdoutpanic. JSON output deliberately still buffers, because half a JSON document is not a document.
Added
--progressnow 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 tofolder geometric-match,folder part-match, andfolder visual-match, in every output format including--format xls. All of it goes to stderr, so pipedstdoutis unaffected; without--progressthe phase stays silent.--progressnow 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--progressis 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 pipedstdoutis unaffected; without--progressthe scan stays silent.