Report what an apply changed, cascades included

Aperta
#641 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp, typescript
Ambito
api, backend

Direzione di ricerca

Start with the implementation of apply, the C# Apply path, onAnalysisChanged, and DraftRepository; the issue does not name file paths, so locate these entry points first. Read the linked issues #601 and #628 for context, then inspect how commit snapshots represent cascaded deletes. Done means apply reports links deleted with an analysis on both repositories, with conformance coverage and the earlier DeletedAt preserved.

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

Descrizione

Part of #601. Follows #628.

Why

The C# repository cascades deletes, and no change set reports a cascade.

  • #628's guard covers this client's edits, but not undo, redo, or re-anchor passes, which don't stage through ChangeBuffer.
  • Not covered: project deletes (#597), and synced commits that land a link deleted (#256).

Proposed direction

apply replies with what the commit actually changed, not what was staged.

  • C#: Harmony records each cascaded record as a snapshot under the commit that caused it, so Apply can read the commit's snapshots and return them.
  • TS: sessions report that reply on onAnalysisChanged in place of the staged changes.
  • DraftRepository: emulates the cascade, so the conformance suite can test both.

Fix along the way: RemoveReference overwrites the DeletedAt of a link that's already deleted. Have it keep the earlier one.

Open questions

  • Snapshots after the commit, or a projected-entity interceptor inside its transaction? The interceptor also sees synced commits, but it reports a whole replay.
  • A project delete's reply lists every record. Cap it the way #593 caps passChanges?

Context

  • A later sync can rewrite what an earlier commit did. #627's revert should recompute it rather than trust an earlier reply.

Done when

  • apply reports the links that an analysis delete took with it, on both repositories.

Drafted by Claude Opus 5.5 (Claude Code); partially human-reviewed.

Lingua principale
TypeScript
Stelle
2
Fork
0
Merge medio
1g 1h
PR unite (30g)
107

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.