Skip to content

fix: readable_from_unique_id handles prefixed IDs from generate_unique_id#101

Merged
BeckettFrey merged 3 commits intoreleasefrom
copilot/fix-readability-issue-with-prefixed-ids
Apr 14, 2026
Merged

fix: readable_from_unique_id handles prefixed IDs from generate_unique_id#101
BeckettFrey merged 3 commits intoreleasefrom
copilot/fix-readability-issue-with-prefixed-ids

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 14, 2026

readable_from_unique_id always parsed with %Y%m%d_%H%M%S_%f, crashing with ValueError on any ID produced by generate_unique_id(prefix=...) (e.g. "test_20260413_140000_123456").

Fix — src/voxkit/storage/utils.py

  • Scan underscore-delimited parts for the first 8-digit segment to locate the date, stripping any leading prefix before parsing.
  • Add for/else to raise a descriptive ValueError("No valid timestamp found in unique ID: ...") instead of a cryptic strptime failure when no date segment exists.
  • Updated docstring to document both plain and prefixed ID forms.
# Now works for both:
readable_from_unique_id("20260413_140000_123456")        # plain
readable_from_unique_id("test_20260413_140000_123456")   # prefixed

Tests — tests/storage/test_utils.py

Three new cases in TestReadableFromUniqueId:

  • Live round-trip via generate_unique_id(prefix="test")
  • Asserts prefixed and plain IDs with identical timestamps produce equal output
  • Asserts descriptive ValueError on input with no recognisable timestamp

Release Branch PR

Target Release:

Changes

  • readable_from_unique_id now strips optional <prefix>_ segments before timestamp parsing
  • Raises descriptive ValueError when no 8-digit date segment is found
  • Docstring updated to reflect accepted input formats
  • Three new unit tests covering prefixed round-trip and invalid input

Testing

  • Test testable logic
  • Edge cases addressed

Testing Notes: Validated plain IDs, prefixed IDs, and malformed input (no date segment). Ruff lint/format clean.

Documentation

  • README updated (if applicable)
  • Code comments added/updated
  • User-facing documentation updated (if applicable)

Documentation Notes: Docstring on readable_from_unique_id updated to document [prefix_]YYYYMMDD_HHMMSS_ffffff input format.

Checklist

  • Code follows project conventions
  • No breaking changes (or documented if intentional)
  • All CI checks pass

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • releases.astral.sh
    • Triggering command: /home/REDACTED/.local/bin/uv uv run invoke run-tests (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Fix ValueError in readable_from_unique_id for prefixed IDs fix: readable_from_unique_id handles prefixed IDs from generate_unique_id Apr 14, 2026
Copilot AI requested a review from BeckettFrey April 14, 2026 21:02
@BeckettFrey BeckettFrey marked this pull request as ready for review April 14, 2026 21:29
@BeckettFrey BeckettFrey merged commit 2b0d5e2 into release Apr 14, 2026
3 checks passed
@BeckettFrey BeckettFrey deleted the copilot/fix-readability-issue-with-prefixed-ids branch April 14, 2026 21:40
BeckettFrey added a commit that referenced this pull request Apr 14, 2026
* fixes #64: add ai optimized documentation file

* fix: replace localhost help_url defaults with production URL (#92)

* Initial plan

* fix: replace localhost help_url defaults with production URL

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/496f7ed1-fdaa-4df9-b574-5ab55254c136

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* fix: dataset panel empty state non-responsive when splitter resized (#94)

* Initial plan

* fix: prevent helper_label and empty_label from resizing with splitter

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/ede8fa76-ccf4-4940-bd76-7f46adde44c5

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* setup-logging (#95)

* Refactor configuration and update release workflow process (#96)

* refactor: remove shadowed config

* replace: move to invoke for os agnostic clarity

* remove release workflow in favor of more manual steps

* Configure shredguard for blocking regex patterns (#98)

* fix: don't mark first launch complete on startup script error (#99)

* Initial plan

* fix: don't mark first launch complete on startup script error

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/e51a7557-a81e-4972-a7e6-45133b115413

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* fix: readable_from_unique_id handles prefixed IDs from generate_unique_id (#101)

* Initial plan

* fix: handle prefixed IDs in readable_from_unique_id

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565

Co-authored-by: BeckettFrey <[email protected]>

* fix: raise descriptive ValueError when no timestamp found in readable_from_unique_id

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* Initial plan (#103)

Co-authored-by: copilot-swe-agent[bot] <[email protected]>

* Revert "Initial plan (#103)" (#106)

This reverts commit b9ab4a0.

* Fix problem with dedicated internal function (#107)

* fix: add empty-ID guard to delete_model to prevent wiping engine models directory (#100)

* Initial plan

* fix: add empty-ID guard to delete_model to prevent wiping engine models directory

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/0cce5a70-83a5-4c00-b1e8-19f85cb895d1

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* fix: validate_dataset checks stem-name pairing between audio and label files (#102)

* Initial plan

* fix: validate_dataset checks stem-name pairing between audio and label files

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/73d34692-65d9-48a2-9621-7127982837a2

Co-authored-by: BeckettFrey <[email protected]>

* chore: remove accidentally committed root conftest.py

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/46f1cfe0-1564-47a8-85ea-4c404b6b23f8

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* 82/fix view btn width (#105)

* Fix button width inconsistency

* Migrate to table style

---------

Co-authored-by: Copilot <[email protected]>
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.

readable_from_unique_id crashes on prefixed IDs from generate_unique_id

2 participants