LOADING…
0%
Build history

Every step,
from the first commit.

A complete build timeline of Grainstash taking shape—from early sequencer experiments to the product it is today.

Commits
1,543
Since
2024
Through
2026

Showing 751–800 of 1,543

Page 16 of 31

12 commits
  1. Refactor: Centralize formatting utilities to $lib/utils

    Cursor Agent 38ac53cd

    Commit notes

    Moves formatting functions like formatBytes and formatDuration to a new shared utility module. This reduces duplication and promotes consistency across the application. Co-authored-by: armin.naimi <[email redacted]>

    Files
    10
    Added
    +114
    Removed
    −106
  2. Update project to use Bun as the package manager and add bunfig.toml for dependency management

    Armin Naimi e03c193e

    Commit notes

    - Replaced pnpm commands with bun commands in AGENTS.md and package.json. - Added bunfig.toml to specify trusted dependencies and ensure reproducibility. - Updated bun.lock file to reflect new dependencies and removed pnpm-lock.yaml and pnpm-workspace.yaml for cleanup. - Updated backend package.json scripts to utilize bunx for pretty logging.

    Files
    7
    Added
    +50
    Removed
    −5992
  3. Add bun.lock file and sync script to package.json

    Armin Naimi 456c1c3b

    Commit notes

    - Introduced a new bun.lock file to manage dependencies for the backend. - Added a sync script in package.json to facilitate the copying of the bun.lock file from the parent directory.

    Files
    2
    Added
    +1554
    Removed
    −0
  4. Update dependencies and add new SQL migration for subscription features

    Armin Naimi 7f52342b

    Commit notes

    - Updated `@elysiajs/eden` to version `1.4.6` and `elysia` to version `1.4.19`. - Added `@mollie/api-client` as a new dependency. - Introduced new SQL migration file `0004_slow_franklin_richards.sql` to create tables and types for subscription management. - Updated `_journal.json` to include the new migration entry. - Created a new snapshot file `0004_snapshot.json` reflecting the current database schema state.

    Files
    5
    Added
    +5104
    Removed
    −38
30 commits
  1. Refactor: Optimize Docker builds and add distroless variant

    Cursor Agent c5f639fc

    Commit notes

    This commit refactors the Dockerfiles to optimize build times and reduce image sizes. It also introduces a new `Dockerfile.distroless` for a minimal production build without OpenTelemetry. Co-authored-by: armin.naimi <[email redacted]>

    Files
    5
    Added
    +191
    Removed
    −75
  2. Refactor: Update CI and dependencies

    Cursor Agent 34517116

    Commit notes

    This commit updates the CI workflow to use Bun for linting, testing, and building. It also includes dependency updates and refactors the DigitalOcean deployment script. Co-authored-by: armin.naimi <[email redacted]>

    Files
    12
    Added
    +5593
    Removed
    −3394
  3. feat: Add migration check script and docs

    Cursor Agent 032dabc9

    Commit notes

    Adds a script to check for pending migrations and comprehensive documentation on migration strategies. Co-authored-by: armin.naimi <[email redacted]>

    Files
    3
    Added
    +366
    Removed
    −0
  4. feat: Enhance SampleSelector component with keyboard navigation and search filtering

    Armin Naimi f0abd35a

    Commit notes

    This commit introduces keyboard navigation for selecting samples in the SampleSelector component, allowing users to navigate through the list using arrow keys and select samples with the Enter key. Additionally, it implements a search filtering mechanism that dynamically updates the displayed samples based on the user's input, improving the overall usability and accessibility of the component. The code has been refactored for clarity and consistency, ensuring a smoother user experience.

    Files
    1
    Added
    +183
    Removed
    −115
  5. feat: Add mobile responsiveness to library page columns

    Armin Naimi 8bdd7b06

    Commit notes

    This commit introduces a new `hiddenOnMobile` property to the column definitions in the library page, allowing specific columns to be hidden on mobile devices. Additionally, it updates the grid template styles to switch between mobile and desktop layouts, enhancing the user experience on different screen sizes. The layout adjustments ensure that unnecessary information is concealed on smaller screens, improving overall usability.

    Files
    1
    Added
    +50
    Removed
    −33
  6. feat: Enhance animation and popover functionality across components

    Armin Naimi 9e9ddaf2

    Commit notes

    This commit introduces a comprehensive set of animation utilities and popover enhancements across various components, including AnimatedDropdown, FullscreenLoader, GainMeter, Header, KeyboardShortcuts, MorphDeleteButton, SampleEditDrawer, and SequencerTrack. Key updates include the integration of new animation keyframes and utilities for smoother transitions, as well as the adoption of a unified popover base style for consistent behavior. These changes significantly improve the user experience by providing more dynamic and visually appealing interactions throughout the application.

    Files
    11
    Added
    +258
    Removed
    −557
  7. feat: Integrate Melt Select and Progress components in SampleEditDrawer and library page

    Armin Naimi fcc6c0f4

    Commit notes

    This commit enhances the SampleEditDrawer component by implementing Melt Select for category, genre, and key selection, replacing traditional select elements with a more interactive UI. Additionally, it introduces a progress indicator for upload status in the library page, utilizing Melt's Progress component for better visual feedback during file uploads. The overall user experience is improved with these updates, providing a more modern and responsive interface.

    Files
    2
    Added
    +387
    Removed
    −131
  8. feat: Integrate Melt popover functionality across components

    Armin Naimi 75a42f89

    Commit notes

    This commit introduces the Melt popover functionality in various components, enhancing user interaction. The AnimatedDropdown, GainMeter, Header, KeyboardShortcuts, and SequencerTrack components have been updated to utilize the new popover system for improved dropdown and menu management. Additionally, the Svelte version has been upgraded to 5.33.0, and the Melt package has been added to the project dependencies for better UI handling.

    Files
    7
    Added
    +401
    Removed
    −270
  9. chore: Update pnpm-lock.yaml and remove dotenv imports from backend files

    Armin Naimi 45eca004

    Commit notes

    This commit updates the lockfile version in pnpm-lock.yaml to 6.0 and modifies various package versions for better compatibility. Additionally, it removes unnecessary dotenv imports from the backend configuration and migration files, streamlining the codebase.

    Files
    4
    Added
    +3133
    Removed
    −4084
  10. Refactor: Improve queue cleanup and graceful shutdown

    Cursor Agent 1c2cab75

    Commit notes

    This commit introduces several improvements: - **Queue Cleanup:** The `cleanupQueue` function now also handles orphaned jobs in the waiting and delayed queues, ensuring better data integrity. - **Graceful Shutdown:** The SSE publisher connection is now properly closed during graceful shutdown, preventing resource leaks. - **Redis TTL:** TTLs are now set and refreshed on user index and session keys to prevent premature expiration and unbounded growth. - **Dependency Updates:** Minor updates to various dependencies, including `pnpm-lock.yaml`. Co-authored-by: armin.naimi <[email redacted]>

    Files
    7
    Added
    +4218
    Removed
    −3143
  11. feat: Add is_loop filter to library routes and update frontend API

    Armin Naimi 2604c99b

    Commit notes

    This commit introduces an `is_loop` filter to the library routes, allowing users to query for looped or non-looped samples. The backend logic is updated to handle this new filter, enhancing the search functionality. Additionally, the frontend API is modified to include the `is_loop` property in the LibraryFilters interface, ensuring consistency across the application. This change improves the user experience by providing more refined search options in the library.

    Files
    3
    Added
    +25
    Removed
    −19
  12. feat: Enhance sample selection handling in SequencerTrack component

    Armin Naimi fa5ffd31

    Commit notes

    This commit updates the handleSampleSelect function to improve track loading management when a new sample is selected. It now stores the old track ID for cleanup purposes and ensures that audio data from the previous track is cleared if necessary. Additionally, the updateTrackSample function is modified to return the old track, allowing for better audio data management during transitions. These changes enhance the overall functionality and user experience of the sequencer.

    Files
    2
    Added
    +25
    Removed
    −9
  13. fix: Improve step division handling in StepGrid component

    Armin Naimi 8df1b01a

    Commit notes

    This commit updates the changeStepDivision function in the StepGrid component to ensure it uses the current step's division or defaults to the first division if the step does not exist. This change enhances the logic for managing step divisions, improving the overall functionality of the sequencer.

    Files
    1
    Added
    +3
    Removed
    −2
  14. feat: Implement sync functionality for audio steps during playback

    Armin Naimi 97d3943f

    Commit notes

    This commit introduces a new function, syncStepsToWorklet, to synchronize instrument steps and active bars with the audio worklet during playback. The sequencer is updated to call this function at various points, ensuring that changes in the step configuration are reflected in real-time, enhancing the audio playback experience.

    Files
    2
    Added
    +55
    Removed
    −2
  15. feat: Enhance StepGrid component with audio preview functionality

    Armin Naimi 36ae22ef

    Commit notes

    This commit updates the StepGrid component to integrate audio preview capabilities when toggling steps. It introduces a check for the current step's state and plays a sample preview if the step is activated while the sequencer is not playing. Additionally, it imports the audio context to facilitate this functionality, improving the user experience in the sequencer.

    Files
    1
    Added
    +14
    Removed
    −1
  16. feat: Refactor SampleSelector component to improve audio preview handling and integrate waveform visualization

    Armin Naimi f5794872

    Commit notes

    This commit refactors the SampleSelector component by simplifying the audio preview logic and removing unnecessary state management for the audio element. It introduces a new Waveform component to visually represent the audio waveform during playback, enhancing the user experience. The togglePreview function is updated to streamline sample playback, and the UI is adjusted to display the waveform alongside playback controls.

    Files
    1
    Added
    +29
    Removed
    −62
  17. feat: Add SampleSelector component for improved sample selection in sequencer

    Armin Naimi 2872dc01

    Commit notes

    This commit introduces a new SampleSelector component that allows users to search and select samples from their library. The component features a search input with debouncing, audio preview functionality, and displays sample information. It integrates with the SequencerTrack component to update tracks with selected samples, enhancing the user experience in the sequencer. Additionally, the sequencer store is updated to manage track sample updates effectively.

    Files
    4
    Added
    +358
    Removed
    −9
  18. feat: Add date-fns library for date formatting enhancements

    Armin Naimi 0db68014

    Commit notes

    This commit introduces the date-fns library to the project, adding it as a dependency in package.json. The library is utilized in the library component to improve date formatting logic, replacing the previous manual calculations with more robust functions for determining if a date is today or yesterday, and providing a more user-friendly display of time differences.

    Files
    3
    Added
    +26
    Removed
    −9
  19. feat: Refactor SSE implementation and enhance library event handling

    Armin Naimi 96b0335c

    Commit notes

    This commit updates the Server-Sent Events (SSE) integration in the backend to utilize Elysia's built-in sse() helper for proper event formatting. It improves the event handling in the eventsRoutes, ensuring better error reporting and connection management. Additionally, the sample pack routes are enhanced to publish SSE events upon creation, update, and deletion of sample packs. The frontend is updated to include a new ensureValidToken function for managing access tokens during SSE connections, improving the reliability of real-time updates in the library component.

    Files
    7
    Added
    +405
    Removed
    −1090
  20. feat: Implement real-time library updates with SSE integration

    Armin Naimi 87592495

    Commit notes

    This commit introduces a new events service for handling Server-Sent Events (SSE) to provide real-time updates for library changes. It adds the eventsRoutes for SSE connections, allowing clients to subscribe to library events. Additionally, the libraryEvents service is created to publish events related to sample processing and analysis. The frontend is updated to utilize the new useLibrarySSE hook, which automatically invalidates relevant queries upon receiving updates, enhancing the user experience with live data. This feature aims to improve interactivity and responsiveness in the library component.

    Files
    7
    Added
    +529
    Removed
    −12
8 commits
  1. fix: Handle errors during cleanup in Waveform component

    Armin Naimi da4192f1

    Commit notes

    This commit adds error handling to the cleanup process in the Waveform component, specifically when destroying the WebSocket and wavesurfer instances. It suppresses expected AbortErrors during destruction, improving stability and preventing console errors during active loads. Additionally, it removes the "New Pack" button from the library page to streamline the UI.

    Files
    2
    Added
    +15
    Removed
    −9
  2. feat: Enhance drag-and-drop functionality with custom drag ghost in library component

    Armin Naimi 193cadcd

    Commit notes

    This commit introduces a custom drag ghost feature for the sample drag-and-drop functionality in the library component. It creates a visually appealing stacked card effect during drag operations, displaying the number of samples being dragged. Additionally, it cleans up the drag ghost upon drag end, improving user experience and visual feedback during sample interactions.

    Files
    1
    Added
    +104
    Removed
    −11
  3. chore: Update pnpm lockfile version and dependencies in PackEditDrawer component

    Armin Naimi aa589c56

    Commit notes

    This commit downgrades the pnpm lockfile version from 9.0 to 6.0 and updates various dependencies in the project, including adjustments to the PackEditDrawer component by removing an unused MusicNote icon. These changes aim to improve compatibility and maintainability of the project.

    Files
    2
    Added
    +3127
    Removed
    −4070
  4. refactor: Enhance queue management and loading state handling in Waveform component

    Armin Naimi 60e8bb92

    Commit notes

    This commit refines the queue management system by introducing cancellation capabilities for queued load functions, ensuring that only active loads are processed. It also updates the component's mounting state handling to prevent operations on unmounted components, improving stability during audio loading and playback. Additionally, the code is cleaned up for better readability and maintainability.

    Files
    1
    Added
    +71
    Removed
    −53
  5. fix: Improve queue management and loading behavior in Waveform component

    Armin Naimi 1791341d

    Commit notes

    This commit enhances the queue management system by increasing the maximum concurrent loads from 3 to 4 and introduces a unique ID for each load function in the queue. It also adds checks for component mounting status to prevent operations on unmounted components, ensuring better resource management and stability during audio loading and playback. Additionally, the root margin for lazy loading has been adjusted to optimize loading behavior.

    Files
    1
    Added
    +56
    Removed
    −22
  6. Refactor: Improve UI components and update dependencies

    Cursor Agent db25a82d

    Commit notes

    This commit introduces several UI improvements, including animations for popovers and dropdowns, and refactors the delete confirmation flow to use a dedicated component. It also updates various dependencies, including Svelte and OpenTelemetry, to their latest versions. Co-authored-by: armin.naimi <[email redacted]>

    Files
    14
    Added
    +4822
    Removed
    −3509
  7. feat: Implement lazy loading and queue management for waveform component

    Armin Naimi 7c8e2668

    Commit notes

    This commit introduces lazy loading functionality for the Waveform component, allowing it to load audio only when it becomes visible in the viewport. Additionally, a queue management system is implemented to limit concurrent waveform loads, enhancing performance and user experience. The component now supports a 'lazy' prop to toggle this behavior, improving resource management during audio playback.

    Files
    1
    Added
    +152
    Removed
    −63