Reported OCR problem catalogue — experimental Alpha

Start at reported-issues.html. Choose a reported lead, then Prepare a separate review. The source reference and locator are carried; source bytes/OCR/corrections are not fetched or invented. Read the original issue and source before writing a reason. Open/closed upstream state is distinct from our unverified/reproduced/disputed/reviewed evidence state.

The Local catalogue section retains source references, explicit unknown file/version/hash fields, attributed status history, and links to correction sidecars. Filter by evidence state. Export catalogue metadata for backup; JSON import validates fields and a 2 MiB metadata limit. Original source files do not belong in this format. Confirmed imports show entry count, bytes and sample titles. Before replacement, the current saved catalogue is preserved and read back; failure stops replacement. Expand Recover a replaced catalogue to select and restore a saved copy. Restore also preserves the catalogue being replaced. These copies exclude unsaved form drafts and remain on this browser origin until its data is cleared; export metadata separately for an external backup. Copies are never automatically pruned, so unavailable space can stop replacement. Existing corrupted catalogue storage is held rather than overwritten. Cooperative same-origin catalogue writers serialize with Web Locks and reject stale baselines; export your displayed copy, reload and reconcile manually. Unsupported locks fail closed for edits; reading/export remain available. This is not a collaborative server, signature verifier, protection from hostile storage writers, or Sybil-resistant vote system.

Submit an issue opens a prefilled GitHub draft. The contributor reviews and submits; no automatic post occurs. Check the destination and visibility before submitting; the Alpha repository accepts public-safe software reports. Do not attach full source files. GitHub itself can accept attachments outside this app; this app does not enforce platform-wide upload policy. Prepare a small correction sidecar opens correction.html. This text-only exporter requires an exact filename/version reference, locator, original/proposed passage, reason, uncertainty and explicit assistance label. Inspect the JSON before downloading; edits invalidate the prepared download. Reopen validates a canonical-content SHA-256 digest without replacing the current form draft. Maximum file size is 64 KiB, with bounded fields and no source-file/image bytes. Source pins and identities remain assertions. A previous digest is a reference only, not a verified chain or signature. The experimental Alpha also includes a bounded static-PNG crop exporter (correction-crop.html); its limits and validation scope are in CROP_PROTOTYPE_LIMITS.txt. It remains a bounded experimental exporter; existing full creator-history JSON is not automatically a minimal correction submission. Nothing is uploaded or admitted to Archive by this exporter.

Optional permitted-source cache (local utility; not a downloader)
Run python3 scripts/cache-permitted-source.py --help. All options are required: source, cache-root, rights-basis, rights-evidence, source-url, archive-item, filename, version, max-bytes. Choose a local cache outside Git, normally in approved private storage. The utility copies a selected regular local original in 1 MiB chunks, preserves source bytes, verifies SHA-256 readback, refuses conflicting cached bytes and records a separate permission assertion receipt. No source is downloaded, uploaded, edited or sent to Archive. Permission basis is an operator assertion, not a legal determination. Follow source privacy restrictions; never put personal/family material in GitHub even if private. Large files require an explicit byte budget and adequate drive space. Cache receipts and objects stay separate from review sidecars and catalogue exports.

Publication boundary
The approved Alpha includes a static seed list. Local user changes are not automatically shared with everyone; a real shared moderated catalogue would need a separate admission/distribution process. Peer review is not Internet Archive approval. No automated Archive collection-note ingestion or poisoning protection is claimed. Coordinate destination, rights, duplicate/conflict handling, reviewer authority, rate controls and correction/removal procedures with Archive before any such integration.

Current three seeds are AI-prepared public leads, not verified transcription fixes: BookReader1517 text-copying problem;1260 search failure;1074 closed historical OCR/text-layer issue. Missing exact filename/version and current reproduction remain explicit gaps.

Developer validation: node scripts/catalogue-walkthrough.mjs [output directory] exercises actual catalogue status/sidecar export and fresh-profile import, unchanged source references, and refusal of an import delayed past a newer saved decision. It uses synthetic reviews and refuses off-host requests. Playwright and a local Chromium build are developer dependencies; set PLAYWRIGHT_MODULE and CHROMIUM_PATH as needed. This is not human acceptance or identity verification.

Add a new source-specific report
Expand Add a new source-specific report in the catalogue. Supply source URL, Archive item (or explicitly say it is not established for a direct publisher source), filename, version reference, page/region, title/problem and your self-declared reporter label. A source SHA-256 and an existing upstream report URL are optional. Do not invent a version, hash, issue or reproduction result. This adds a separate unverified report; it never rewrites older entries or transfers their reviews/sidecars to a new file. Inputs remain available after save or refusal.

Compatibility: v1 files remain readable without schema conversion. A deliberate new-report save produces catalogue v2 so a missing upstream report URL can be null; the source URL is never substituted as an issue URL. Earlier v1-only tools may reject v2. Export uses compact validated UTF-8 JSON within the same 2 MiB limit as import. Keep prior exports when exchanging with older tools.

Source worklist queue validation
The optional browser walkthrough also checks source-sorted held-file Next/Skip, return to skipped items, retention of a held integrity-review item, and a separate missing-download filter without retry links. It opens all three bundled practice tasks with external requests blocked and asserts zero attempted off-host requests. These are synthetic software fixtures for queue and file-handling tests; they are not a public inventory or human review evidence.
