Discard unreadable books when the host starts a draft over

Aperta
#573 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
backend

Direzione di ricerca

Start by reading the host New and Open paths introduced by prerequisite issue #453, then inspect DraftRepository and its tests. Confirm that New and Open clear unreadableShards before writing, while opening a session remains load-only; add flag-on tests showing that no book remains unreadable and edits to it apply.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Part of Phase 4 (#427). Needs 4a (#453). Blocks 4b (#454).

Background

A draft book whose stored analysis can't be read (a torn write, or outside damage) is kept as stored and never written over (#475).

On the WebView write path:

  • An edit that reaches the book stays on screen, but writes leave that book out.
  • Save to an existing project is refused. Save As leaves the book out.
  • New and Open discard the book. This is how the user recovers.

That discard lives in whole-draft saveDraft, through replaceAll's discardUnreadable option. 4c deletes both.

On the host path:

  • apply refuses any edit that reaches such a book (#486).
  • A discard keeps the book's stored analysis and shows the book empty (#524).
  • Opening a session only loads; it never discards. This matches main, which discards only on saves that start the draft over.
  • 4a brings New and Open to the host, but doesn't cover this case.

So on the host path nothing gets the user out yet.

Scope

  • Host New and Open discard each unreadable book, so later writes treat it like any other book.
    • In DraftRepository today, this is clearing unreadableShards before the write.
  • Do it in whatever path 4a gives New and Open, not through replaceAll.
  • Opening a session stays load-only.

Why it blocks 4b

4b ships the host path by default. Without this issue, a user with an unreadable book has no way out on the default path, short of the rollback release.

Done when

  • With the flag on, New or Open on a draft with an unreadable book leaves no book unreadable, and edits that reach the book apply.
  • Tests cover this on the flag-on path.

Then

  • Remove "Books whose stored analysis can't be read" from 4c's body.
Lingua principale
TypeScript
Stelle
2
Fork
0
Merge medio
1g 10h
PR unite (30g)
74

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sillsdev/interlinearizer-extension

Tutte le issue di sillsdev/interlinearizer-extension

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.