TaskServer 3 (CCSync v3) Bugs and Improvements
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu bằng cách đọc origin.dart, complete.dart, manage_task_champion_creds_controller.dart, task.dart, profiles_list.dart và profile_view.dart để lập bản đồ cho từng thay đổi được yêu cầu. Thêm hoặc cập nhật các unit test cho TaskForC.fromJson, xử lý ngoại lệ của completeTask và cấu hình timeout. Hoàn thành khi cả năm tiêu chí chấp nhận đều đạt và các regression test được liệt kê bao quát các thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Several issues were identified in the TaskServer 3 (CCSync v3) integration of the Flutter application.
These include bugs affecting reliability, missing parsing functionality, and UI improvements to make configuration clearer.
This issue proposes fixes and enhancements to improve stability, error handling, and usability.
Problems Identified
1. Hardcoded Origin URL
File: origin.dart
Problem
The origin parameter is currently hardcoded to:
http://localhost:8080
This prevents the application from connecting to remote or user-configured backend servers.
Proposed Solution
Replace the hardcoded value with a dynamic function:
Future getOrigin()
This function retrieves the backend URL from:
CredentialsStorage.getApiUrl()
2. Invalid ScaffoldMessenger Context
File: complete.dart
Problem
The code attempts to call:
ScaffoldMessenger.of(context as BuildContext)
This may cause runtime crashes when the BuildContext is invalid or disposed.
Proposed Solution
Remove the unsafe UI call and instead:
- Throw exceptions for non-200 HTTP responses
- Allow the caller to handle UI feedback.
3. Excessive Timeout Duration
File: manage_task_champion_creds_controller.dart
Problem
The HTTP timeout is set to:
Duration(seconds: 10000)
(~166 minutes)
This prevents the application from failing quickly when the server is unreachable.
Proposed Solution
Reduce the timeout to:
Duration(seconds: 10)
This improves responsiveness when the TaskServer is unavailable.
4. Missing Annotation Parsing
File: task.dart
Problem
The TaskForC model initializes annotations as an empty list:
annotations = []
This ignores annotation data returned by the server.
Proposed Solution
Update the fromJson method to parse annotations dynamically using:
Annotation.fromJson
5. Mode Selector Visibility
Files
profiles_list.dartprofile_view.dart
Problem
The TW2 / TW3 / TW3C mode selector is buried inside the profile view and lacks visibility.
Users cannot easily determine the currently active mode.
Proposed Solution
Add a getModeLabel callback to display the currently selected mode as a subtitle in the Change Mode option.
Acceptance Criteria
- Origin URL is dynamically retrieved
- ScaffoldMessenger crash is removed
- Timeout duration is reduced
- Task annotations are parsed correctly
- Current mode is visible in the profile UI
Tests
Unit tests should verify:
- Annotation parsing in
TaskForC.fromJson - Exception handling in
completeTask - Timeout configuration regression
- Ngôn ngữ chính
- Dart
- Star
- 244
- Fork
- 179
- Merge trung bình
- 20 phút
- Pull request đã merge (30 ngày)
- 3
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 CCExtractor/taskwarrior-flutter
-
Fix misaligned text "Select the directory" in settings tileCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
CCExtractor/taskwarrior-flutter#639 · 2 bình luận ·
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
Drawer should close automatically when navigating to a new screenCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Replica add-task silently drops due and wait dates (DateTime.toString is not RFC3339)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 78/100
CCExtractor/taskwarrior-flutter#662 · 3 bình luận ·
-
bug
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
CCExtractor/taskwarrior-flutter#645 · 1 bình luận ·
Tất cả issue của CCExtractor/taskwarrior-flutter
Issue tương tự
-
feat: Order macOS versionsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
quickemu-project/quickgui#328 ·
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ApplETS/Notre-Dame#1393 ·
-
(fix) Wrong dateĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Solvro/mobile-topwr#1239 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
linagora/twake-on-matrix#3435 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Regression in v1.6.0: per-error-group update-check notifications flood the notification shadeĐang mởbug to check
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày