Export carries binned wiki pages, and import puts them straight into the bin (#1009) #1016
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/x1-binned-pages-travel"
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?
Closes #1009. The owner's answer to Q134 (X1), over the recommendation; recorded as D262.
#998 (for #990) left everything in a bin out of the export, because before it a binned page was exported and an import brought it back as a live page players could read. This carries binned wiki pages again, safely: they arrive in the bin.
The file (export schema 16)
wiki_bin: {audience: {kind: "gm"}, pages: [...]}. Each page is what alore_entriespage is, plusdeleted_at(the time it was binned) anddeleted_by_member_key. A binned page is never inlore_entries, so a reader that knows nothing of the bin finds none in "the wiki".wiki/, no count inREADME.md(it gains one line saying how many pages are in the bin, indata.jsononly), its picture undermedia/bin/lore/.wiki_binin a file claiming schema ≤15 is ignored. An older server refuses a schema 16 file by version; this one now says "made by a newer Quest Board … update, then import it again" for a file newer than it reads.The import
deleted_atin the constructor. A test listens tobefore_insert/before_updateduring a real import and asserts every binned row carried its stamp at insert and none changed afterwards.wiki_bin.pagesat schema ≥16 bins a page; a marked row anywhere else is skipped. A binned page claiming a live page's key cannot take it over, and keeps its own owners.Reviewed
An independent read-only review tried to make a binned page reach a player or come back live, through hand-edited archives, ordering, the purge and every reader. It found no such path. Its hardening points are fixed here: owners resolved by page rather than by key on a key collision (was a 500), non-object
lore_entriesrows and oddschema_versionstrings refused with a 422 rather than a 500, absurd binned times normalised, and tests for the forward-reference change.Also changed, for live pages
A fact or timeline row naming a page further down the file now keeps its link on import; it used to be dropped silently. Page ids are assigned up front, which binned targets needed.
For the owner (Q142)
A page already past the bin's days when it arrives is deleted by the next daily purge, which could be minutes after the import. Recommended: give an overdue page a week from arrival. Built as "original time kept"; a follow-up either way.
Not in this change
Binned transcripts, audio and campaigns keep their behaviour. Attachments, sheets, quest details, map markers and page history still do not travel for any page (#991).
Checked
tests/exportand the reader allowlists, 46 passed (350 across the wider targeted set).docs/API.mdand the bin ledger intests/export/test_export_bin.pyupdated; changelog fragment.🤖 Generated with Claude Code