Skip to content

fix: use UUID for podcast episode directory names#666

Merged
lfnovo merged 2 commits into
mainfrom
fix/podcast-uuid-directory
Mar 11, 2026
Merged

fix: use UUID for podcast episode directory names#666
lfnovo merged 2 commits into
mainfrom
fix/podcast-uuid-directory

Conversation

@lfnovo
Copy link
Copy Markdown
Owner

@lfnovo lfnovo commented Mar 11, 2026

Summary

  • Podcast episode names with spaces or special characters (e.g. My Episode: Part 1) were used directly as directory names, causing filesystem errors on Linux/Docker
  • Replaced episode name with UUID for directory and file naming, eliminating all path safety issues
  • Original episode name is preserved in the database for display purposes

Closes #663

Test plan

  • Added 6 unit tests in tests/test_podcast_path.py covering UUID format, path validity, no collisions, no unsafe characters, POSIX compatibility, and real filesystem creation
  • Manual test: create a podcast with spaces and special characters in the name and verify it completes successfully

Podcast episode names with spaces or special characters caused
filesystem errors when used directly as directory names.
Use UUID-based directory names instead, keeping the original
episode name in the database for display purposes.

Closes #663
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files

Confidence score: 3/5

  • There is a meaningful regression-risk gap in tests/test_podcast_path.py: the test reimplements path generation logic instead of calling the real podcast path builder, so failures in production logic may be missed.
  • Given the medium severity (6/10) and high confidence (9/10), this is more than a housekeeping issue—it weakens trust in test coverage for path handling behavior.
  • This PR may still be mergeable, but it carries some risk until the test is aligned to exercise the actual implementation and uses problematic_names as intended.
  • Pay close attention to tests/test_podcast_path.py - test logic may mask real path-builder breakages.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tests/test_podcast_path.py">

<violation number="1" location="tests/test_podcast_path.py:13">
P2: This test file reimplements path generation instead of invoking the actual podcast path builder, so it can pass even when production code is broken. In particular, `problematic_names` are never used to drive the generated path.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread tests/test_podcast_path.py Outdated
Tests were reimplementing UUID logic locally instead of testing the
actual production code path. Extract the path-building logic into a
testable helper function and import it directly in tests.
@lfnovo lfnovo merged commit a42e2a3 into main Mar 11, 2026
9 checks passed
@lfnovo lfnovo deleted the fix/podcast-uuid-directory branch March 11, 2026 22:11
devkavach22 pushed a commit to kavachglobaladmin/kavach-open-notebook that referenced this pull request Apr 15, 2026
fix: use UUID for podcast episode directory names
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.

[Bug]: Podcast name got space or special charactor

1 participant