Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

TaskServer 3 (CCSync v3) Bugs and Improvements

Đã đóng
#617 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
dart, flutter
Lĩnh vực
mobile

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.dart
  • profile_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

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 CCExtractor/taskwarrior-flutter

Tất cả issue của CCExtractor/taskwarrior-flutter

Issue tương tự

Thêm issue về Dart

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.