Report what an apply changed, cascades included

Đang mở
#641 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
csharp, typescript
Lĩnh vực
api, backend

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
TypeScript
Star
2
Fork
0
Merge trung bình
1 ngày 1 giờ
Pull request đã merge (30 ngày)
107

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của sillsdev/interlinearizer-extension

Tất cả issue của sillsdev/interlinearizer-extension

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.