propresenter7-php-lib/doc/internal/issues.md
Thorsten Buss 4d10db4f17 Initial public release
PHP 8.4 library and CLI tools to read, modify, and generate ProPresenter 7
files: songs (.pro), playlists (.proplaylist), bundles (.probundle), themes,
and the global library files (Macros, Labels, Groups, ClearGroups, CCLI,
Messages, Timers, Stage, Workspace, Props, TestPatterns, Calendar,
KeyMappings, CommunicationDevices).

Built on the MIT-licensed ProPresenter7-Proto schema by greyshirtguy
(v7.16.2). Includes 18 CLI parsers, comprehensive API docs in doc/,
binary-format specs, and a synthetic 369-test PHPUnit suite covering
RTF extraction, translation slides, ZIP64 repair, round-trip fidelity,
and end-to-end generation.
2026-05-03 22:21:01 +02:00

12 lines
1.1 KiB
Markdown

# Issues & Gotchas
(Agents will log problems encountered here)
- 2026-03-01 task-2 edge case: `Du machst alles neu_ver2025-05-11-4.pro` is 0 bytes; `protoc --decode rv.data.Presentation` returns empty output (no decoded fields).
- 2026-03-01 task-6 fidelity failure: `Rv\Data\Presentation::mergeFromString()->serializeToString()` is not byte-preserving for current generated schema/runtime (`169/169` mismatches, including `Test.pro` with `length_delta=-18`, first mismatch at byte `1205`), so unknown/opaque binary data is still being transformed or dropped.
- 2026-03-01 task-7: no new parser blockers found; UTF-8 filename handling is stable when using raw PHP filesystem functions (`is_file`, `filesize`, `file_get_contents`).
- 2026-03-01 task-2 test gotcha: `unzip` may render UTF-8 filenames with replacement characters; entry-comparison tests normalize names before asserting equality with `ZipArchive` listing.
- 2026-03-01 21:23:59 - Generated header color values deserialize with float precision drift; fixed by assertEqualsWithDelta in generator interoperability test.