Code review 2026-09-09: fix PRs and deferred findings (tracking)
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
- 20/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- android, csharp, sqlite
- Lĩnh vực
- devtools, performance, security
Hướng nghiên cứu
This is a tracking issue summarizing completed fixes and deferred findings, not a request for a specific change. Read the linked issues #288–#302 to find an individual task with a defined scope; this issue itself has no implementation entry point or completion criteria.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Tracking issue for the senior architecture / security / performance review of main at 35d86e1 (2026-09-09). Earlier audit for context: #167.
Overall verdict: a well-engineered codebase with a few sharp, high-consequence defects. Domain is dependency-free, the reference graph is acyclic, warnings-as-errors + AnalysisMode=All + StyleCop are enforced everywhere, every analyzer suppression carries a justification, SQL values are fully parameterised, actions are SHA-pinned, and the sync protocol uses a closed [JsonDerivedType] allowlist. The problems were concentrated in persistence correctness, error observability, lifecycle management and a few security edges on the sync / attachment path.
Fix PRs (each with a regression test that failed on main first)
| Prio | Finding | PR |
|---|---|---|
| P0 | force_unit_edits never deleted on save → Stärke history duplicated on every save, file grows quadratically |
#279 |
| P0 | IIncidentStore.SaveFailed had no subscriber → disk-full / locked / corrupt-DB failures were invisible while the UI said "gespeichert" |
#280 |
| P0 | Workspace never disposed on navigate-home → abandoned workspaces kept ticking, could still write journal entries and play alarms | #284 |
| P1 | Remote-supplied attachment name reached a temp path and the OS launcher (path traversal + type confusion across peers) | #285 |
| P1 | Trust store read race on the TLS callback, non-atomic write, dead accept-any-certificate branch | #286 |
| P1 | CI token not read-only; @claude workflow triggerable by anyone with contents: write; format-check not in CI; Dependabot gaps |
#287 |
| P1 | Android FileProvider exposed the whole cache dir; provider display names used verbatim as path segments | #303 |
Suggested merge order: #287 first (CI), then #279, #280, #284 (independent), then #285 before the Android PR (the Android PR is robust to either order, but #289 assumes #285).
Deferred findings, filed as issues
- Security: #288 (sync host: 6-digit PIN, SAN, fingerprint), #289 (Android attachment gate + temp janitor)
- Performance: #290 (coalesce saves), #291 (recent-file probes on UI thread), #292 (quadratic BuildMatrix), #293 (checklist O(N²) fan-out), #294 (Clear+re-add resets), #295 (sync fire-and-forget), #296 (audio queue timeout)
- Architecture: #297 (MasterDataSet out of Persistence), #298 (session port location + 5-file ceremony), #299 (Incident aggregate + German text in Domain), #300 (logging + global exception handlers)
- Hygiene: #301 (coverage, deterministic builds, AnalysisLevel, changelog enforcement), #302 (small cleanups checklist)
Items in #167 that this review re-confirmed as still open: Local/Remote session lockstep (#298), DispatcherTimerTicker subscriber isolation and unbounded remote file cache (#302), BuildChildren full rebuild (#294).
- Ngôn ngữ chính
- C#
- Star
- 1
- Fork
- 3
- Merge trung bình
- 4 giờ 34 phút
- Pull request đã merge (30 ngày)
- 182
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CodeForFire/lagebuch
-
bug ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
CodeForFire/lagebuch#714 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
CodeForFire/lagebuch#713 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
CodeForFire/lagebuch#405 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
CodeForFire/lagebuch#349 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
CodeForFire/lagebuch#348 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của CodeForFire/lagebuch
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
KnifeLemon/Filee#363 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
area-Native untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
dotnet/machinelearning#7837 ·
Maintainer thường phản hồi trong vòng 2 ngày