Skip to content

feat(queue): ULID-based task IDs - #4

Closed
DerekStride wants to merge 1 commit into
mainfrom
id-gen
Closed

feat(queue): ULID-based task IDs#4
DerekStride wants to merge 1 commit into
mainfrom
id-gen

Conversation

@DerekStride

@DerekStride DerekStride commented Mar 21, 2026

Copy link
Copy Markdown
Owner

What

Switch task ID generation from random 3-character IDs with collision scanning to canonical uppercase ULIDs. This removes the need to load historical IDs during creation and makes future queue/archive file splitting safe from cross-file ID conflicts.

Impact

The previous 3-char IDs were nice when you needed to type them, however, using a proper ID scheme will let us remove the scan of the entire file to determine if there are any collisions.

This also unblocks future work to implement task archival to allow moving closed tasks out of the main task list into a searchable archive. The main blocker to this feature was duplicate IDs.

🎩

$ cargo run -- add -q .sift/queue.jsonl --title "New ULID id's"
01KM74845MYF398PXTHR63M8K4
Added item 01KM74845MYF398PXTHR63M8K4 with 0 source(s)
$ sq list -q .sift/queue.jsonl
01KM74845MYF398PXTHR63M8K4  [pending]  New ULID id's    2026-03-21T02:40:34.996Z
$ sq list -q .sift/queue.jsonl --json
[
  {
    "id": "01KM74845MYF398PXTHR63M8K4",
    "title": "New ULID id's",
    "status": "pending",
    "sources": [],
    "metadata": {},
    "created_at": "2026-03-21T02:40:34.996Z",
    "updated_at": "2026-03-21T02:40:34.996Z"
  }
]

Replace random 3-char collision scanning with canonical uppercase
ULIDs.

This removes the need to read the full queue to allocate a new ID
and makes future active/archive file splitting safe from historical
ID conflicts.

Validated with cargo fmt and cargo test.

Agent: pi
Co-authored-by: ChatGPT <codex@openai.com>
@DerekStride DerekStride self-assigned this Mar 21, 2026
@DerekStride DerekStride changed the title feat(queue): prototype ULID-based task IDs feat(queue): ULID-based task IDs Mar 21, 2026
@DerekStride
DerekStride deleted the id-gen branch March 23, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant