feat: add mod editing, revision merges and secure game storage

Add immutable revisions, PGVN editor, asset replacement, merge and rebase workflows, authenticated media delivery and reachability GC. Harden the script interpreter, pin unrpyc and remove tracked build metadata. Include current compatibility checks, Naninovel import and regression tests.
This commit is contained in:
mrleo1nid committed 2026-10-25 04:42:48 +03:00
1 parent 06ff19ac4a
commit c8d83b3fe7
65 files changed
+3825 -68

No files matched your search

+13
View File
@@ -56,6 +56,19 @@ def test_merge_languages_keeps_target_untouched(manifest):
assert "de" not in (tr.file_json(manifest, "game.json").get("locales") or {})
def test_three_way_publication_keeps_independent_lines(manifest):
a, b = [line.tid for line in tr.text_index(manifest).lines[:2]]
left = tr.apply_changes(manifest, "de", lines={a: {"t": "One"}})
right = tr.apply_changes(manifest, "de", lines={b: {"t": "Two"}})
merged, conflicts = tr.merge_translation(manifest, left, right)
assert not conflicts
lines = tr.locale_tables(merged, "de")[0]
assert lines[a]["t"] == "One" and lines[b]["t"] == "Two"
conflict = tr.apply_changes(manifest, "de", lines={a: {"t": "Other"}})
_, conflicts = tr.merge_translation(manifest, left, conflict)
assert conflicts and any(a in c["path"] for c in conflicts)
def test_po_and_csv_roundtrip(manifest):
tid = tr.text_index(manifest).lines[0].tid
m = tr.apply_changes(manifest, "de", lines={tid: {"t": "Zeile 1\nZeile \"2\""}},