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 801–850 of 1,543

Page 17 of 31

19 commits
  1. refactor: Clean up console logs and enhance sample selection behavior

    Armin Naimi 55423159

    Commit notes

    This commit removes unnecessary console log statements from the Waveform component to streamline the code and improve performance. Additionally, it updates the sample selection logic in the library page to clear the selection and stop playback when the sample list changes, ensuring a better user experience.

    Files
    2
    Added
    +3
    Removed
    −13
  2. feat: Add footer support to Drawer component and integrate into PackEditDrawer and SampleEditDrawer

    Armin Naimi 9d64a18e

    Commit notes

    This commit enhances the Drawer component by introducing a footer prop, allowing for customizable footer content. The PackEditDrawer and SampleEditDrawer components have been updated to utilize this new footer feature, providing users with action buttons for delete and save functionalities directly within the drawer's footer. New features: - Footer support in Drawer component - Integration of footer in PackEditDrawer and SampleEditDrawer with action buttons - Improved user experience for managing pack and sample edits

    Files
    3
    Added
    +117
    Removed
    −104
  3. feat: Enhance PackEditDrawer with audio sample preview functionality

    Armin Naimi 14fc45ac

    Commit notes

    This commit adds audio sample preview capabilities to the PackEditDrawer component. Users can now play and pause audio samples directly within the drawer, with a visual waveform representation for each sample. The implementation includes a new query for fetching pack samples, state management for audio playback, and UI updates to display sample information and controls. New features: - Audio sample preview with play/pause functionality - Waveform visualization for audio samples - Dynamic loading and display of samples in the pack

    Files
    1
    Added
    +123
    Removed
    −1
  4. feat: Implement sample addition to packs functionality

    Armin Naimi fa4d66d9

    Commit notes

    This commit introduces the ability to add samples to existing sample packs through a new API endpoint and corresponding frontend functionality. The backend now supports a POST request to add samples, ensuring that only samples owned by the user can be added. The frontend includes a new mutation hook for adding samples and updates the library page to allow users to select and drag samples into packs. New features: - Backend endpoint for adding samples to packs - Frontend mutation hook for adding samples - UI enhancements for sample selection and drag-and-drop functionality

    Files
    5
    Added
    +453
    Removed
    −14
  5. feat: Add PackEditDrawer component for editing sample packs

    Armin Naimi e1e59f72

    Commit notes

    This commit introduces the PackEditDrawer component, allowing users to edit details of sample packs, including name, description, tags, visibility settings, price, and license. The component integrates with existing state management and query hooks for seamless updates and deletions of packs. Additionally, the library page is updated to include functionality for opening the PackEditDrawer and handling pack-related mutations. New features: - PackEditDrawer component with form handling - Integration with pack creation, update, and deletion mutations - UI enhancements for pack visibility and pricing options

    Files
    3
    Added
    +3657
    Removed
    −4088
  6. Refactor: Infer types from Eden API responses

    Cursor Agent 2d8c3337

    Commit notes

    This change removes manually defined types and infers them directly from the Eden API. This ensures type safety and reduces maintenance overhead. Co-authored-by: armin.naimi <[email redacted]>

    Files
    3
    Added
    +63
    Removed
    −224
  7. Refactor: Improve query hooks and update dependencies

    Cursor Agent ffd4d328

    Commit notes

    This commit refactors query hooks for better organization and adds utility functions. It also updates dependencies and cleans up imports. Co-authored-by: armin.naimi <[email redacted]>

    Files
    11
    Added
    +4764
    Removed
    −3269
  8. refactor: Update Drawer component to accept dynamic snapPoints

    Armin Naimi 61915d6c

    Commit notes

    This commit modifies the Drawer component to accept snapPoints as a prop instead of a default value. The SampleEditDrawer component is updated accordingly to remove the hardcoded snapPoints, enhancing flexibility in drawer configurations.

    Files
    2
    Added
    +2
    Removed
    −2
  9. feat: Integrate TanStack Query for data fetching and state management

    Armin Naimi 86373124

    Commit notes

    This commit introduces TanStack Query to manage data fetching and caching for the library and sample functionalities. It includes the creation of query and mutation hooks for library samples, user authentication, and sample metadata updates. The frontend layout is updated to include the QueryClientProvider and Devtools for enhanced development experience. Additionally, the pnpm-lock.yaml is updated to include new dependencies for TanStack Query. New files added: - Query client and keys management - Hooks for library and authentication queries - Sample mutation hooks for updating and deleting samples Refactors existing components to utilize the new query system, improving data handling and UI responsiveness.

    Files
    10
    Added
    +3694
    Removed
    −4212
  10. feat: Implement upload session cleanup and audio validation

    Cursor Agent 3e702daa

    Commit notes

    Adds background cleanup for stale upload sessions and enhances audio file validation using magic bytes. Includes virus scanning integration and improved error handling for uploads. Co-authored-by: armin.naimi <[email redacted]>

    Files
    7
    Added
    +1155
    Removed
    −18
  11. Refactor: Update Drizzle schema and relations

    Cursor Agent 7de27dc9

    Commit notes

    This commit updates the Drizzle schema and relations to reflect recent changes in the database structure. It includes adding new fields, modifying existing ones, and adjusting relationships between tables. Co-authored-by: armin.naimi <[email redacted]>

    Files
    95
    Added
    +15446
    Removed
    −13407
  12. Refactor: Transition to unified upload system and remove legacy chunked session management

    Armin Naimi 6acd5b10

    Commit notes

    This commit introduces a unified upload system that consolidates chunked and resumable uploads into a single flow, supporting files up to 5GB with improved session management. The legacy chunked upload scripts and session handling have been removed, and new scripts for clearing upload sessions have been added. The upload routes have been updated to reflect this change, ensuring backward compatibility with legacy routes. Additionally, the pnpm-lock.yaml has been updated to reflect dependency changes and version upgrades.

    Files
    12
    Added
    +5019
    Removed
    −5192
  13. Update pnpm-lock.yaml to downgrade dependencies and adjust versions

    Armin Naimi f176ff53

    Commit notes

    This commit modifies the pnpm-lock.yaml file to downgrade several dependencies, including Elysia and Svelte, to specific versions for compatibility. The lockfile version is also changed from '9.0' to '6.0'. Additionally, it introduces new optional dependencies for various platforms and updates the resolution integrity for several packages, ensuring a more stable build environment.

    Files
    1
    Added
    +3102
    Removed
    −4040
1 commit
4 commits
  1. Refactor: Improve audio processing and resumable uploads

    Cursor Agent 942d8821

    Commit notes

    This commit introduces several improvements: - **Audio Processing:** - New `generatePreviewToFile` and `generateSequencerFileToFile` functions in `ffmpeg.ts` allow generating output files directly, avoiding unnecessary buffering. - `extractRawAudioFromFilePath` in `audio-analysis.ts` enables analysis on existing file paths, reducing memory usage. - `analyzeAudioFromFile` provides a memory-efficient way to analyze audio files. - The worker process now uses these new functions for more efficient audio processing. - **Resumable Uploads:** - The upload system is refactored to use a single resumable upload mechanism. - Uploads are now initiated via `/api/v1/uploads/chunked/initiate`. - Chunk status and upload progress are managed more robustly. - Local storage is used to resume interrupted uploads. - The `uploads-resumable` route handles the new upload logic. - **API and Frontend:** - Error handling for API responses is improved in `auth.ts` and `library.ts`. - `eden.ts` is updated to correctly handle headers and fetchers. - The library page now correctly displays upload completion status. - **Dependencies:** - `pnpm-lock.yaml` is updated to reflect dependency changes. Co-authored-by: armin.naimi <[email redacted]>

    Files
    14
    Added
    +4996
    Removed
    −3445
  2. feat: Add SampleEditDrawer component and integrate sample metadata management

    Armin Naimi 4301fdd0

    Commit notes

    This commit introduces the SampleEditDrawer component, allowing users to edit sample metadata, including name, tags, category, genre, musical key, BPM, and notes. It integrates functionality for saving and deleting samples, enhancing the user experience in the library view. Additionally, the pnpm-lock.yaml and package.json files are updated to include the new vaul-svelte dependency, supporting the drawer component's implementation.

    Files
    6
    Added
    +685
    Removed
    −8
11 commits
  1. feat: Add FullscreenLoader component for improved loading experience

    Armin Naimi dab649a3

    Commit notes

    This commit introduces a new FullscreenLoader component that provides a visually engaging loading animation with progress indication. The loader supports customizable duration and completion callbacks, enhancing user experience during data loading processes. Additionally, the layout is updated to integrate the FullscreenLoader, ensuring it displays while the initial loading state is active.

    Files
    2
    Added
    +233
    Removed
    −0
  2. feat: Integrate Elysia API client and refactor authentication handling

    Armin Naimi 827e73c2

    Commit notes

    This commit replaces the existing Axios-based API client with a new type-safe client using Elysia, enhancing the authentication flow and token management. It updates various API calls across the application to utilize the new client, ensuring better type safety and error handling. Additionally, it refactors the Waveform component to include authorization headers for audio streaming, improving user experience when accessing protected resources. The pnpm-lock.yaml and package.json files are also updated to reflect new dependencies and versions.

    Files
    12
    Added
    +544
    Removed
    −521
  3. feat: Add script to clear chunked upload sessions and enhance upload routes

    Armin Naimi 1c74c61a

    Commit notes

    This commit introduces a new script for clearing all chunked upload sessions from Redis, providing a nuclear option for managing stuck sessions. Additionally, it updates the upload routes to include a DELETE endpoint for forcefully clearing all chunked sessions and refines the existing cleanup logic to handle abandoned uploads more effectively. The frontend is also enhanced with a file dropzone for uploading audio files, integrating the new upload functionality and improving user experience.

    Files
    4
    Added
    +740
    Removed
    −58
  4. feat: Add Waveform component and integrate wavesurfer.js for audio visualization

    Armin Naimi 070b4f13

    Commit notes

    This commit introduces a new Waveform component that utilizes wavesurfer.js to visualize audio samples. It includes the implementation of audio playback controls and integrates the component into the library view, allowing users to preview audio tracks with a visual representation of the waveform. Additionally, the pnpm-lock.yaml and package.json files are updated to include wavesurfer.js as a dependency, enhancing the audio experience in the application.

    Files
    5
    Added
    +1446
    Removed
    −5
  5. refactor: Update Header and SequencerTrack components for improved layout and styling

    Armin Naimi 461675b5

    Commit notes

    This commit modifies the Header component to change the background color and update the logo text from "BeatStep" to "Samplestep." Additionally, it adjusts the padding in the main layout and refines the layout of the SequencerTrack component by enhancing the flex properties for better alignment. These changes aim to improve the visual consistency and user experience across the application.

    Files
    4
    Added
    +8
    Removed
    −8
  6. refactor: Enhance step cloning and validation in audio and sequencer stores

    Armin Naimi c050bbf7

    Commit notes

    This commit improves the cloning process for instrument steps in the audio store by adding validation to filter out null or invalid steps. Additionally, it ensures proper array sizing in the sequencer store when copying bars, enhancing the handling of typed arrays for velocity and pitch. These changes contribute to better data integrity and performance in the audio processing pipeline.

    Files
    2
    Added
    +26
    Removed
    −11
  7. feat: Implement authentication and API proxy for user management

    Armin Naimi bcacb512

    Commit notes

    This commit introduces a comprehensive authentication system using OAuth, integrating Google sign-in functionality. It adds a new API proxy to handle requests to the backend, ensuring secure communication and token management. Additionally, it establishes user state management through a dedicated store, enhancing the user experience with features like login, logout, and session persistence. New components for the header and library views are also included, improving the overall application structure and user interface.

    Files
    13
    Added
    +777
    Removed
    −21
  8. chore: Update frontend dependencies and configurations for improved development experience

    Armin Naimi ad1b829b

    Commit notes

    This commit updates the frontend dependencies in package.json, including major upgrades to ESLint, Prettier, and related plugins. It introduces a new ESLint configuration file and a Prettier ignore file to streamline code formatting and linting processes. Additionally, it enhances the Prettier configuration to include the tailwindcss plugin, improving integration with Tailwind CSS styles. These changes aim to enhance the development workflow and maintainability of the project.

    Files
    5
    Added
    +468
    Removed
    −161
  9. chore: Remove biome configuration and related files for project cleanup

    Armin Naimi 7c827ab1

    Commit notes

    This commit deletes the biome.json configuration file, the core binary, and the package-lock.json file, streamlining the project structure. Additionally, it updates the package.json and pnpm-lock.yaml files to remove references to the @biomejs/biome package and its dependencies, enhancing maintainability and reducing clutter in the codebase.

    Files
    5
    Added
    +9
    Removed
    −13165
  10. refactor: Remove unused constants and functions from sequencer utilities and envelopes

    Armin Naimi 9f35ba88

    Commit notes

    This commit cleans up the codebase by removing unused constants, such as NUM_BARS and TRACK_COLORS, as well as the applyADSREnvelope function from the envelopes module. Additionally, it streamlines the sequencer utilities by eliminating redundant functions and optimizing the structure of step creation. These changes enhance maintainability and reduce clutter in the codebase.

    Files
    6
    Added
    +59
    Removed
    −273
15 commits
  1. refactor: Update pnpm lockfile and frontend dependencies for improved compatibility and performance

    Armin Naimi 1cd80e0a

    Commit notes

    This commit modifies the pnpm lockfile version to 6.0 and updates various package versions in the frontend, including `prettier-plugin-svelte` and `@sveltejs` packages. Additionally, it refines the hotkey definitions and improves the handling of keyboard shortcuts in the sequencer components. These changes enhance the overall performance and maintainability of the project.

    Files
    13
    Added
    +3616
    Removed
    −7783
  2. refactor: Improve parameter handling in SequencerProcessor for better clarity and consistency

    Armin Naimi efd9bb14

    Commit notes

    This commit refactors the SequencerProcessor class to enhance the handling of optional parameters across various audio effects. It replaces nullish coalescing with explicit checks for undefined values, improving code readability and ensuring consistent behavior. Additionally, it updates the logic for handling division values in step creation and copying, further streamlining the sequencer's functionality. These changes contribute to better maintainability and performance of the audio processing pipeline.

    Files
    1
    Added
    +50
    Removed
    −43
  3. refactor: Update sequencer utilities and types for improved performance and memory efficiency

    Armin Naimi 62078591

    Commit notes

    This commit refactors the sequencer utilities and types to utilize typed arrays for velocity and pitch in the Step type, enhancing memory efficiency and performance. The convertPatternDataFromJson function is updated to support bitmask operations for active bars, replacing Set and array structures. Additionally, various functions are modified to accommodate these changes, ensuring compatibility with the new data structures. The overall code quality is improved, and the sequencer's functionality is optimized for better performance.

    Files
    7
    Added
    +391
    Removed
    −209
  4. feat: Add frontend components and configurations for step sequencer

    Armin Naimi b1558693

    Commit notes

    This commit introduces a comprehensive set of new components and configurations for the step sequencer application. Key additions include the `StepSequencer`, `SequencerTrack`, and various control components such as `BpmControl`, `TransportControls`, and `StepButton`. Additionally, it establishes a new audio and sequencer store to manage state and functionality effectively. The layout and routing are updated to support the new structure, enhancing user interaction and overall experience within the application. This implementation lays the groundwork for a fully functional step sequencer.

    Files
    73
    Added
    +5142
    Removed
    −5143
  5. chore: Remove unused frontend files and configurations

    Armin Naimi 54483e5a

    Commit notes

    This commit deletes several unused files from the frontend, including configuration files, assets, and components that are no longer needed. This cleanup helps streamline the codebase and reduces clutter, improving maintainability and project organization.

    Files
    232
    Added
    +0
    Removed
    −50962
  6. refactor: Clean up and standardize audio store code

    Armin Naimi 0c153a97

    Commit notes

    This commit refactors the `audio.svelte.ts` file by standardizing the formatting, including consistent use of semicolons and spacing. It also improves the clarity of type definitions and message handling within the audio engine. Additionally, several functions are updated for better readability, and unnecessary comments are removed to streamline the codebase. These changes enhance maintainability and improve overall code quality.

    Files
    1
    Added
    +266
    Removed
    −204
  7. feat: Enhance keyboard shortcuts in SequencerHotkeys component

    Armin Naimi 507eeb28

    Commit notes

    This commit adds new keyboard shortcuts for cycling through divisions, toggling step states, cycling velocity, and adjusting pitch in the `SequencerHotkeys.svelte` component. The handling of the space bar for play/stop has been updated to be global, and additional key events are now managed to improve user interaction and accessibility within the sequencer interface.

    Files
    1
    Added
    +79
    Removed
    −8
  8. feat: Implement hotkey management for sequencer functionality

    Armin Naimi f238a5c9

    Commit notes

    This commit introduces a new hotkey management system in `hotkeys.ts`, defining key combinations and their corresponding actions for the sequencer. The `SequencerHotkeys.svelte` component is updated to handle keyboard events for play/stop, navigation, division changes, velocity cycling, and pitch adjustments. Additionally, the `StepButton.svelte` component is refactored for improved pitch control via mouse drag. The main page is also updated to initialize mock tracks effectively. This enhancement improves user interaction and accessibility within the sequencer interface.

    Files
    4
    Added
    +289
    Removed
    −215
  9. feat: Enhance dark mode support and improve UI components

    Armin Naimi 5f46c74a

    Commit notes

    This commit introduces custom dark mode styles in app.css, ensuring smooth transitions between light and dark themes. It also updates various components, including BarControls, BpmControl, and GainMeter, to enhance user interaction and visual feedback. New GrooveControls and KeyboardShortcuts components are added to improve functionality and user experience. Additionally, the sequencer store is updated to manage groove settings, and the layout is modified to apply dark mode based on system preferences.

    Files
    14
    Added
    +774
    Removed
    −309
  10. refactor: Enhance frontend structure with new components and updates

    Armin Naimi 8bb47edb

    Commit notes

    This commit introduces several new components, including ErrorBoundary, ActionIcon, and various UI primitives, to improve the frontend structure. It also updates existing components and routes, enhancing functionality and maintainability. Additionally, the pnpm lockfile is updated, and the zod package is marked as a non-development dependency. This refactor streamlines the codebase and improves user experience across the application.

    Files
    147
    Added
    +32122
    Removed
    −2528
  11. refactor: Update pnpm lockfile and improve Svelte frontend components

    Armin Naimi 8a0bc377

    Commit notes

    This commit downgrades the pnpm lockfile version to 6.0 and updates various package versions, including '@types/node' and 'svelte-check'. It also enhances the Svelte frontend by refactoring components such as SequencerHotkeys and StepSequencer to improve keyboard navigation and user interaction. Additionally, it cleans up the app.css file and modifies the StepButton and StepGrid components for better functionality and maintainability.

    Files
    9
    Added
    +5278
    Removed
    −6692
  12. chore: Update pnpm lockfile version and dependencies, add svelte-frontend package

    Armin Naimi cfdffb48

    Commit notes

    This commit updates the pnpm lockfile to version 9.0 and modifies several package versions, including '@types/node' and '@opentelemetry/auto-instrumentations-node'. Additionally, it introduces a new 'svelte-frontend' package with various components, configurations, and utilities for a step sequencer application, enhancing the project's structure and functionality. Unused VSCode configuration files have also been removed to streamline the project.

    Files
    37
    Added
    +11453
    Removed
    −4933
  13. feat: Add AGENTS.md for setup instructions and MCP tools

    Armin Naimi e13fe990

    Commit notes

    This commit introduces a new AGENTS.md file that provides setup commands, code style guidelines, and details on available MCP tools for Svelte and SvelteKit. The document includes instructions for installing dependencies, starting the development server, and running tests, as well as outlining the use of tools like list-sections, get-documentation, svelte-autofixer, and playground-link to enhance user experience and documentation access.

    Files
    4
    Added
    +55
    Removed
    −206