Skip to content

Commit 6ae7d06

Browse files
adnankurt16claudedcramer
authored
fix(sync): Add in-progress label and preserve non-dex labels (#120)
Two fixes for GitHub label management: 1. Add dex:in-progress label for started tasks. Previously both "not started" and "in progress" tasks got dex:pending, making them indistinguishable on GitHub. Now buildLabels() checks task.started_at to produce three states: pending, in-progress, completed — matching Shortcut's three-state workflow support. 2. Preserve non-dex labels during sync updates. The GitHub API replaces all labels when updating, so manually-added labels (bug, team:frontend, etc.) were silently destroyed on every sync. Now CachedIssue stores allLabels, and updateIssue() merges non-dex labels back into the update payload. Fixes #119 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: David Cramer <dcramer@gmail.com>
1 parent 2ecf329 commit 6ae7d06

File tree

7 files changed

+465
-61
lines changed

7 files changed

+465
-61
lines changed

specs/sync.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@ When remote is newer, these fields are pulled:
4747
- `started_at` timestamp
4848
- `commit` metadata (if present)
4949

50+
## Labels
51+
52+
Dex manages labels on GitHub issues (using the configured prefix, default `dex`):
53+
54+
| Label | Meaning |
55+
| ------------------ | --------------------------------- |
56+
| `dex` | Base label identifying dex-managed issues |
57+
| `dex:pending` | Task not yet started |
58+
| `dex:in-progress` | Task started but not completed |
59+
| `dex:completed` | Task completed and verified |
60+
| `dex:priority-N` | Task priority level |
61+
62+
Non-dex labels are preserved during sync updates. If you add labels like `bug`, `enhancement`, or custom team labels to a dex-managed issue, sync will not remove them.
63+
5064
## Issue State Behavior
5165

5266
### Closing Issues
@@ -131,3 +145,4 @@ dex sync --shortcut # Only Shortcut
131145
| Remote issue is closed | Never reopen, update local if needed |
132146
| Task has verified commit | Close issue on sync |
133147
| Task has no commit | Keep issue open |
148+
| Non-dex labels on issue | Preserved during sync |

0 commit comments

Comments
 (0)