Nhật ký thay đổi
Thay đổi của từng phiên bản, mới nhất ở trên. Tệp cài của mỗi bản ở trang phát hành trên GitHub.
Chưa phát hành
- (trống)
26.11.1001 - 10/11/2026
Bản làm lại toàn diện: giao diện PySide6, vá lỗ hổng chèn vCard, website contact.tsudev.com.
- Website
contact.tsudev.com(website/): trang chủ, hướng dẫn, chuẩn bị CSV, tải về (SHA-256 + chứng thực nguồn gốc), bảo mật, kiến trúc, nhật ký, bản quyền; Astro tĩnh, CSP chặt, WCAG 2.2 AA ở cả ba chế độ màu. - CI: workflow
CImỗi PR (ruff, pytest Linux + Windows, pip-audit, gitleaks ghim checksum); phát hành ghim action theo SHA, cài theo hash, kèm SBOM và chứng thực nguồn gốc bản build (gh attestation verify); Dependabot hằng tháng. - Giao diện mới bằng PySide6 (Qt 6): 3 bước trên một màn hình, kéo-thả tệp, tự ghép cột kèm giá trị mẫu, tự kiểm tra dữ liệu, bảng xem trước lọc/tìm không dấu/phân trang chuẩn
DATA_TABLE.md(QU-STD-TABLE), chủ đề Theo hệ thống/Sáng/Ấm/Tối, font Inter, hộp thoại Giới thiệu nối về tsudev.com. Bỏ màn hình hiệu ứng khởi động. - Tiếng Việt mặc định + tiếng Anh (
src/i18n/). - Bảo mật: sửa lỗ hổng chèn vCard (ô chứa xuống dòng sinh được liên hệ giả); thoát ký tự RFC 6350 và gập dòng mọi trường; bỏ ký tự vô hình/đảo chiều chữ; trần kích thước tệp/dòng/cột/ô; không còn bỏ lặng lẽ ký tự hỏng; báo cáo lỗi chống chèn công thức; danh bạ chỉ giữ trong RAM và xóa CSDL tạm bản cũ để lại trong %TEMP%; ghi tệp nguyên tử.
- Dữ liệu: chuẩn hóa SĐT Việt Nam (+84, thêm số 0 bị Excel làm mất, nhiều số một ô), email, ngày sinh (cả số ngày kiểu Excel), phát hiện trùng số; thêm trường Chức vụ; vCard có
N, CRLF,REVtheo UTC thật. - Chuỗi cung ứng: phụ thuộc khóa phiên bản + hash, SBOM CycloneDX đi kèm bản phát hành, pip-audit, ruff.
- Bản
.execó siêu dữ liệu nhà phát hành tsudev, bỏ UPX, loại module Qt không dùng (kể cả mạng). - Bỏ liên kết Facebook; liên kết hỗ trợ trỏ về trang sản phẩm
https://contact.tsudev.com. Nhà phát hành ghitsudev. - Icon ứng dụng sinh từ dấu hiệu thu gọn tsudev (
tools/gen_icons.py,.iconhiều lớp 16 tới 256); bỏicon.ico,icon.png,lock.pngcũ. - Giao diện đọc token thẳng từ
.standards/tokens/(QU-STD-1); xóatokens/và bản sao quy ước cũ trongdocs/(QU-STD-2). - README theo nhận diện tsudev, ghi hạng sản phẩm C.
- Cửa sổ xem trước hiển thị nhãn vCard (Tên, SĐT, Email...) thay cho tên cột CSV, thêm cột
Dòng CSVvà dòng chú thích cột CSV nguồn (src/features/preview/columns.py, 6 test). - Tự động hóa kiểm thử GUI:
tests/test_gui_smoke.py+scripts/test-gui-win.ps1chạy đúng kịch bảndocs/ARCHITECTURE.mdmục 8 (5 test); máy không có màn hình thì tự bỏ qua. Workflow phát hành chạy luôn phần này trênwindows-latest. - Sửa lỗi tiềm ẩn: thread chuyển đổi gọi
root.aftertrực tiếp (tkinter không an toàn đa luồng) → chuyển sang hàng đợi do main thread rút, hủy lượt hẹn khi đóng cửa sổ. - Thêm
scripts/sign-win.ps1: ký Authenticode + đóng dấu thời gian bằng công cụ có sẵn của Windows (không tốn phí);scripts/build-win.ps1thêm cờ-Signvà tự ghirelease/SHA256SUMS.txt. - Repo chuyển sang public để GitHub Actions chạy miễn phí không giới hạn và ai cũng tải được bản phát hành.
26.8.2002 - 20/08/2026
- Thêm menu Giao diện: chủ đề Sáng / Ấm / Tối đổi ngay lúc chạy, ghi nhớ trong
settings.jsonở thư mục tạm (src/services/settings.py, 5 test). - Chủ đề ấm/tối chuyển ttk theme sang
clamvà tô lại Entry/Combobox/Button/Treeview/Progressbar/Scrollbar từ tokens; ô nhật ký đổiScrolledText→Text+ttk.Scrollbar(thanh cuộn cổ điển không đổi màu được trên Windows). - Sửa lỗi nút "BẮT ĐẦU CHUYỂN ĐỔI" mất chữ trên Windows (theme
vistabỏ qua nền của nút ttk) - chuyển sangtk.Buttondùng màu từ tokens. - Đoán cột CSV thông minh hơn:
converter.guessHeader+FIELD_ALIASES(Anh/Việt, bỏ dấu, khớpPhone 1 - Valuekiểu Google Contacts); trước đây trường bắt buộc SĐT luôn phải chọn tay. - Chạy thử GUI thật trên Windows (Python 3.11) cho cả 3 chủ đề: 3 màn hình hiệu ứng → chuyển đổi 30 dòng → 20 vCard → cửa sổ xem trước hiển thị đúng, dòng lỗi tô đỏ.
- Chuẩn hóa tên bản phát hành theo
docs/DESIGN_SYSTEM.mdmục 6:APP_VERSION5.2 →26.8.2001;Contacts.specchuyển sang gói 1-file, xuấttsudev-contact_26.8.2001_x64-setup.exe. - Thêm
scripts/build-win.ps1: cài phụ thuộc → chạy test → PyInstaller → đưa sản phẩm vàorelease/. - Chuẩn hóa repo theo bộ quy ước v1.0.0: khởi tạo git, ignore dữ liệu danh bạ PII, bổ sung
CHANGELOG.md/docs/ARCHITECTURE.md/.env.example. - Tách
contacts.pyw(455 dòng) thànhsrc/theodocs/PROJECT_STRUCTURE.md;contacts.pywgiữ vai trò điểm khởi chạy mỏng. - Toàn bộ màu/cỡ chữ/spacing của giao diện lấy từ
tokens/design-tokens.jsonquasrc/services/tokens.py(hết hard-code). - Sửa 3 lỗi:
sqlite3.Row.get()làm hỏng hoàn toàn chức năng xuất VCF và cửa sổ xem trước; sai số tham số_update_progress; rò rỉ kết nối SQLite. Chi tiết:docs/ARCHITECTURE.mdmục 6. - CSDL tạm chuyển sang thư mục temp của người dùng (thư mục cài đặt có thể chỉ-đọc, và file đó chứa PII).
- Thêm
tests/test_csv_to_vcf.py- 8 test tích hợp luồng CSV → SQLite → vCard.
Ghi chú phát hành
26.8.2001là bản build nội bộ đầu tiên theo quy ước tên mới, không phát hành (bị thay bởi 26.8.2002 trong cùng ngày sau khi thêm chủ đề + sửa lỗi giao diện).- Các bản build trước 20/08/2026 dùng tên
Contacts.exe(không theo quy ước).
Nguồn trang: CHANGELOG.md trên GitHub.