
MultiView - Flashback Addon
Merges multiple Flashback replays from the same session into a single unified replay — an “omniscient observer” view combining the union of chunks, players, and events seen from each POV.
Оцените первым
4.2K
8
Список изменений
0.4.0-beta.1 — audit-driven beta
Multi-agent audit pass surfaced 35 findings across security, correctness, cross-version compatibility, and the merge algorithm itself. This beta closes the 2 CRITICAL and 10 HIGH-severity items. Marked as a beta until the deferred follow-ups land and the mod has more real-world validation.
Fixed — CRITICAL
- MoveEntities entity-id remap (the underlying cause of GitHub issue #1 for overlapping merges): the bulk-tick
MoveEntitiesaction is now decoded, everyVarInt entityIdis remapped throughsafeRemap, and the new bytes are re-emitted. Previously secondary sources' local ids collided with the primary's global namespace, producing the "frozen mobs / default rotations / missing equipment" symptoms. SET_ENTITY_LINKwire format: read/writeint32instead ofVarInt(which mis-decoded any id above 127). Sentinel for "no holder" treated as<= 0to cover both legacy (-1) and modern (0) encodings — leashes no longer randomly attach to the wrong entity.
Fixed — HIGH (security)
- Path traversal guard in
FlashbackReader.open: every segment path is normalised and confined to the replay folder. - Zip-bomb entry-count cap (65 536 entries per source) on top of the existing 5 GB byte cap.
OverlapValidatorrefuses to probe replays whose first segment exceeds 256 MB (OOM guard).
Fixed — HIGH (correctness)
- PIU bulk re-emit no longer fires on mid-segment intercalation (5-arg overload bug closed).
copyPrimarySnapshotForTickusesFileChannel.mapinstead ofFiles.readAllBytes, avoiding OOM on long replays.HURT_ANIMATIONandPLAYER_COMBAT_KILLreclassifiedEGO → ENTITYso their entity id is remapped through the global namespace.
Fixed — HIGH (cross-version)
fabric.mod.jsonjavadependency is now templated: 1.21.x jars declare>= 21, the 26.1.x jar declares>= 25. Previously the 26.1 jar advertised>= 21and crashed at classload on JDK 21 instead of failing cleanly via Fabric.addRenderableWidgetreflection on 26.1+ iteratesScreen.class.getDeclaredMethods()and binds to the first overload accepting ourButton— resilient to method-rename churn.
Fixed — i18n
- English users no longer see French progress labels:
MergeOrchestratoremitsmultiview.merge_progress.phase.*translation keys and the screen picksComponent.translatablevsComponent.literalbased on the"multiview."prefix.
Deferred to follow-up
EntityMergerUUID-overwrite race andsafeRemapphantom-ID race (H8, H9) — real but carry regression risk; separate focused session.SOUND_ENTITY/LEVEL_EVENTremap (H7) — non-trivial wire format.MergeOrchestratorrefactor (still ≥ 1300 lines).
Файлы
multiview-0.4.0-beta.1-mc1.21.11.jar(178.05 KiB)
ОсновнойМетаданные
Канал релиза
Beta
Номер версии
0.4.0-beta.1+mc1.21.11
Загрузчики
Fabric
Версии игры
1.21.11
Загрузок
444
Дата публикации
19.05.2026
