A campaign's export carries quest details, character sheets and parties (export schema 17) (#991) #1053
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/991-export-quests-sheets"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part 1 of #991. Part 2 (maps and handout files) waits on the owner's size limit, Q145, so #991 stays open.
Summary
Built on 1 October on top of #1016 (schema 16, since merged). Main has been merged in, and a privacy review was run before this PR.
wiki_bin.statsis not a stat block is refused rather than imported broken.CATALOGUE.mdwas rebuilt from the sources withsources/build.ps1, not hand-merged. That exposed a drift on main: #1049 hand-edited the catalogue (the account menu's Accessibility row) without touching the sources, so a rebuild would have dropped it. The same words are now insources/headers.mdand the IS-197 ledger row. With that, main's sources reproduce main's catalogue byte for byte.Privacy review
Audiences must never widen across a round trip. One defect was found and fixed, failing-first:
quest_archive.plan()now refuses past the form's limits (50 objectives, text 1000, note 2000, giver note 1000, reward 2000) before anything is written. Six new tests failed on the old code.Checked and judged sound, with reasons in the review notes:
mine,chosen, a non-main party, anything unparseable). They are never dropped to a wider default.archive_jsonchecks shapes, NUL, lone surrogates, NaN/Infinity and depth.Noted, not fixed here:
data.jsonwith no cap on its decompressed size; only the 100 MB upload is capped. That predates this PR and affects every schema version, and it is filed separately.datahave no import limit beyond the row and roll counts.Changelog
Test plan
tests/export, parties, title readers and campaigns: 384 passed.test_export_quests_sheets.pyat HEAD: 189 passed.quest_archive.pyand its test.🤖 Generated with Claude Code