From fffef17056a4e609de0f273cc30d76a073072266 Mon Sep 17 00:00:00 2001 From: MarioYang Date: Wed, 28 Jan 2026 09:48:02 +0800 Subject: [PATCH] feat: sort time entries by ID in tree structure building --- .claude/skills/week_work_package_log/work_package_logger.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.claude/skills/week_work_package_log/work_package_logger.py b/.claude/skills/week_work_package_log/work_package_logger.py index 0ec4da2..1d0146c 100644 --- a/.claude/skills/week_work_package_log/work_package_logger.py +++ b/.claude/skills/week_work_package_log/work_package_logger.py @@ -617,6 +617,9 @@ class WeekWorkPackageLogger: def _build_tree_structure(self, time_entries: List[Dict]) -> Dict[str, TreeNode]: """Build tree structure from time entries""" + # Sort time entries by ID ascending (oldest first) + time_entries_sorted = sorted(time_entries, key=lambda x: int(x.get('id', 0))) + # Create root nodes for projects project_trees = {} @@ -625,7 +628,7 @@ class WeekWorkPackageLogger: # which may not be the root project but a child project in the hierarchy project_entries = defaultdict(lambda: defaultdict(list)) - for entry in time_entries: + for entry in time_entries_sorted: try: # Extract basic information spent_on = entry.get('spentOn', 'Unknown')