The previous implementation joined the user-supplied path with the configured upload directory, but the resulting path was not validated against the intended base directory. This change removes the base path join entirely, leaving the path resolution to the caller or a separate validation layer. The fix prevents potential directory traversal attacks where a malicious path could escape the upload directory.
The activation script path in the installation instructions was missing a forward slash, changing 'bin/activate' to 'bin.activate'. This fix restores the correct path for sourcing the Python virtual environment.
Implements a complete blacked-out visual state where all content is replaced by a solid black overlay covering the entire viewport. The overlay includes smooth fade-in animation and prevents any user interaction with underlying elements. This creates an immersive dark experience suitable for cinematic transitions or focus modes.
Updated the main layout component's background styling by swapping the previous static image URL for a CSS linear-gradient using brand colors. This change improves page load performance and aligns the visual theme with the updated design system.
The handle_index function now properly constructs HTML anchor tags by splitting the message at the "here: " prefix instead of using the raw upload URL, fixing broken link rendering when the upload URL appears in the success message. The handle_upload function also adds a trailing space after the "here:" prefix to ensure consistent parsing.
The previous implementation used a hardcoded offset of `len("here: ")` from the start of the string after `"here:"`, which would fail if the URL appeared at a different position or if the message structure changed. This commit replaces the brittle slice with a dynamic `str.find()` call to locate the `"here: "` substring, ensuring the URL is correctly extracted regardless of its position in the message. The fix applies to the `handle_index` handler in `src/rupload/app.py`.