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 501–550 of 1,543

Page 11 of 31

5 commits
  1. feat(sharing): Replace raw audio elements with Waveform component in share page

    Cursor Agent 1c5def09

    Commit notes

    - Update share page to use Waveform component for audio preview - Add play/pause controls with visual waveform display - Show sample metadata (duration, BPM, key) inline - Improve overall styling to match SampleEditDrawer design - Add resource type icons and user info display - Better password-protected share UI Co-authored-by: armin.naimi <[email redacted]>

    Files
    1
    Added
    +247
    Removed
    −86
  2. feat(sharing): Add share button to library grid and redesign shares page as timeline

    Cursor Agent db345e39

    Commit notes

    - Add SharePopover component with inline share link creation - Add share button column to LibrarySampleGrid for quick sample sharing - Redesign shares page from create-link form to activity timeline view - Add quick filter sidebar to filter activity by share link - Add getAllShareActivity API endpoint for unified activity feed - Support filtering activity by specific share link - Display share link status (active, expired) and resource names Co-authored-by: armin.naimi <[email redacted]>

    Files
    9
    Added
    +11657
    Removed
    −83
22 commits
  1. refactor: update sample pack and workspace schemas for slug uniqueness

    Armin Naimi 62bff3ad

    Commit notes

    - Modified samplePacks schema to enforce unique slugs within projects and for users without projects. - Updated sample pack routes to validate slug uniqueness based on project context during creation and updates. - Removed slug from workspace schema as it is no longer required. - Adjusted workspace setup logic to simplify slug generation for new projects. - Updated frontend to use workspace IDs instead of slugs for better consistency.

    Files
    7
    Added
    +154
    Removed
    −134
  2. chore: update dependencies and enhance AI service configurations

    Armin Naimi fd079d6d

    Commit notes

    - Added @ai-sdk/openai version 3.0.12 and ai version 6.0.39 to dependencies. - Updated @ai-sdk/gateway and related packages to their latest versions. - Enhanced AI service functions to include provider options for reasoning effort in ai-copywriting, ai-tagging, and audio-analysis services. - Updated bun.lock and package.json files to reflect these changes.

    Files
    6
    Added
    +51
    Removed
    −8
  3. feat(ai-cover): add pack name text embedding support for FLUX.1 schnell

    Cursor Agent e8233e75

    Commit notes

    - Add embedPackName option to GenerateCoverRequest interface - Implement buildTextEmbeddingPrompt function for style-specific text rendering - Update buildCoverPrompt to append text embedding when enabled - Add output_format and guidance_scale parameters per FLUX.1 API schema - Update routes to accept and pass embedPackName parameter - Update frontend API client and query hooks with embedPackName option - Add UI toggle in AICoverGenerator for embedding pack name as visible text The pack name can now be embedded as visible typography in the generated cover image, with style-specific rendering for abstract, photographic, and illustrated styles. Co-authored-by: armin.naimi <[email redacted]>

    Files
    5
    Added
    +93
    Removed
    −10
  4. docs: Update AGENTS.md with comprehensive documentation

    Cursor Agent 2baffe5f

    Commit notes

    - Add missing backend routes: dashboard, mollie-connect, earnings, payouts - Add missing backend services: ai-cover-generation, mollie-connect, workspace-setup - Expand frontend components section with categorized tables: - Sequencer components (14 components) - Sample & library components (7 components) - Workspace & project components (4 components) - UI components (9 components) - User & subscription components (2 components) - Add Frontend Routes section with SvelteKit page documentation - Add Library Page Components subsection - Add API Client section documenting frontend/src/lib/api functions - Update monorepo structure to reflect dashboard and pack detail routes Co-authored-by: armin.naimi <[email redacted]>

    Files
    1
    Added
    +188
    Removed
    −81
  5. docs: Add comprehensive live migration strategy guide

    Cursor Agent dfd6a23d

    Commit notes

    - Create LIVE_MIGRATION_STRATEGY.md with detailed production migration guidance - Add PRE_DEPLOY migration job to .do/app.yaml for automatic migrations - Update DEPLOYMENT.md with improved migration documentation - Update AGENTS.md with new db:check and db:mark-applied commands - Fix missing 0015_mollie_connect entry in migration journal This guide covers: - Zero-downtime migration strategies - Breaking vs non-breaking changes - 3-phase deploy patterns for column changes - Rollback procedures - First-time deployment vs db:push transition Co-authored-by: armin.naimi <[email redacted]>

    Files
    5
    Added
    +374
    Removed
    −24
  6. feat: Add pack name/description toggles to AI cover generator

    Cursor Agent a40e33cb

    Commit notes

    - Add packName, packDescription, and projectName props to AICoverGenerator - Add toggle switches to include/override pack name and description - Show actual values when toggles are on, show input fields when off - Update API client and query hooks to pass override parameters - Update backend routes to accept packName, packDescription, projectName - Include project name in custom prompt when provided Co-authored-by: armin.naimi <[email redacted]>

    Files
    5
    Added
    +256
    Removed
    −30
  7. feat: add AI-powered pack cover generation with 3 style options

    Cursor Agent 8252dc79

    Commit notes

    - Add ai-cover-generation service using FAL.ai for image generation - Implement 3 cover styles: abstract, photographic, illustrated - Add routes for generating, refining, and applying AI covers - Create AICoverGenerator component with iterative refinement UI - Integrate AI cover generator into PackEditDrawer - Support custom prompts for influencing generation - Allow users to regenerate individual styles - Add FAL_KEY to config schema for FAL.ai integration Co-authored-by: armin.naimi <[email redacted]>

    Files
    10
    Added
    +1466
    Removed
    −15
  8. feat: add pack cover image preview and upload in Pack Editor Drawer

    Cursor Agent 4d518eaa

    Commit notes

    - Add uploadPackCover API function to frontend/src/lib/api/packs.ts - Add createUploadPackCoverMutation hook to frontend/src/lib/query/hooks/packs.ts - Export the new mutation from frontend/src/lib/query/index.ts - Update PackEditDrawer.svelte with: - Cover image preview display (shows current cover or fallback gradient) - Click-to-upload functionality with camera icon overlay on hover - File type validation (JPEG, PNG, WebP) - File size validation (max 10MB) - Upload progress spinner indicator - Error handling and display - Reset state when pack changes Co-authored-by: armin.naimi <[email redacted]>

    Files
    20
    Added
    +474
    Removed
    −131
  9. feat(audio-analysis): improve BPM, key, and loop detection accuracy

    Cursor Agent 2165f112

    Commit notes

    Major improvements to audio analysis algorithms: BPM Detection: - Replace first-order RC filters with 2nd-order Butterworth biquad filters (-12dB/octave) - Add beat tracking using Ellis-style dynamic programming for tempo verification - BPM detection only applied to detected loops (per design) Key Detection: - Implement proper HPSS (Harmonic-Percussive Source Separation) using median filtering - Add tuning detection for non-A440 audio with sub-bin frequency accuracy - Implement segment-wise key detection with majority voting for longer samples - Use ensemble of Krumhansl-Kessler and Temperley profiles Loop Detection: - Increase start/end comparison window from 50ms to 150ms - Add circular cross-correlation for phase-invariant matching - Add spectral continuity check at loop boundaries - Add amplitude discontinuity detection at loop points Feature Extraction: - Integrate Meyda.js for improved MFCC and spectral feature extraction - More accurate spectralCentroid, spectralSpread, spectralRolloff, spectralFlatness - More accurate zero-crossing rate calculation Co-authored-by: armin.naimi <[email redacted]>

    Files
    3
    Added
    +1104
    Removed
    −335
8 commits
  1. fix: address sharing system code issues

    Cursor Agent a402669d

    Commit notes

    - Remove duplicate ShareDialog import in SampleEditDrawer.svelte - Fix incorrect $derived usage in ShareLinkCard.svelte (was returning function) - Fix incorrect $derived usage in UploadLinkCard.svelte (was returning function) - Remove redundant onMount in SharePermissions.svelte (already handled by $effect) Co-authored-by: armin.naimi <[email redacted]>

    Files
    4
    Added
    +10
    Removed
    −14
  2. Update sharing spec with strategic alignment analysis

    Cursor Agent f85f6259

    Commit notes

    - Add section on how sharing fits the all-in-one vision - Map sharing features to producer jobs-to-be-done - Add feature gating by subscription tier (Free/Pro/Label) - Include concrete use cases for music producers - Add competitive positioning analysis - Include risk assessment and final recommendation - Clarify upgrade prompts and revenue alignment Co-authored-by: armin.naimi <[email redacted]>

    Files
    1
    Added
    +303
    Removed
    −2
  3. Add detailed specification for file and pack sharing system

    Cursor Agent d2c8ed8b

    Commit notes

    - Document existing sharing infrastructure (shareLinks, sharePermissions) - Specify upload links feature for receiving files from collaborators - Design comments and annotations system for feedback on shared content - Plan activity tracking and notification system - Outline frontend routes and components needed - Include database migration summary and API routes - Prioritize implementation phases (MVP -> Advanced) Co-authored-by: armin.naimi <[email redacted]>

    Files
    1
    Added
    +532
    Removed
    −0
1 commit
  1. docs: add UI design principles and constraints for interface development

    Armin Naimi 2c91a37d

    Commit notes

    - Introduced comprehensive UI design principles focusing on accessibility, interactions, feedback, and performance. - Added opinionated constraints for building better interfaces, including guidelines for stack usage, components, interaction, animation, typography, layout, and design. - Created new documentation files for UI skills to standardize interface development practices across projects.

    Files
    5
    Added
    +492
    Removed
    −0
14 commits
  1. feat: highlight duplicate samples within project

    Cursor Agent 6a3dbb4b

    Commit notes

    - Add contentHash to library API response for duplicate detection - Add duplicate detection state and methods to LibraryState - Add visual highlighting in LibrarySampleGrid: - Colored left border for duplicate sample rows - Duplicate icon indicator in sample row - Header badge showing duplicate set count with toggle - Different duplicate groups use distinct colors for easy identification - Users can toggle duplicate highlighting on/off Co-authored-by: armin.naimi <[email redacted]>

    Files
    3
    Added
    +169
    Removed
    −13
  2. feat: scope sample similarity search to project

    Cursor Agent 85da6acc

    Commit notes

    - Add projectId option to SimilaritySearchOptions interface - Update findSimilarSamples to filter by project ID - Update findSimilarSamplesFallback fallback function similarly - When projectId not provided, inherit from source sample's project - Add project_id query parameter to /library/samples/:id/similar endpoint Co-authored-by: armin.naimi <[email redacted]>

    Files
    2
    Added
    +20
    Removed
    −1
  3. refactor: update Header component for improved navigation and workspace context

    Armin Naimi a70c3faf

    Commit notes

    - Changed the import statement to include both `resolve` and `resolveRoute` from `$app/paths`. - Refactored the workspace context display logic to improve layout and visibility on desktop. - Adjusted the command palette button to remove the icon and streamline the keyboard shortcut display.

    Files
    1
    Added
    +14
    Removed
    −12
  4. feat: enhance AI copywriting service and improve waveform component color handling

    Armin Naimi dffb265b

    Commit notes

    - Added a system prompt to the AI copywriting service to guide the model in generating sample pack descriptions. - Implemented a function in the waveform component to resolve CSS custom properties for color values, ensuring proper color rendering for waveforms, progress, and cursor indicators.

    Files
    2
    Added
    +49
    Removed
    −21
  5. feat: update subscription tiers - Free 5GB, Pro 100GB, Team 500GB with 5 seats

    Cursor Agent eff47373

    Commit notes

    - Update storage limits: Free 5GB, Pro 100GB, Team/Label 500GB - Add Team/Label tier with 5 seats support (€29/mo or €290/yr) - Remove fake/misleading features from SubscriptionDrawer - Add accurate feature list: 0% fees for Pro, storage amounts - Update database schema with team_monthly/team_yearly plans - Update subscription service, routes, and API for new tiers - Update frontend stores and query hooks for team plans - Both Pro and Team plans get 0% marketplace fee Co-authored-by: armin.naimi <[email redacted]>

    Files
    9
    Added
    +316
    Removed
    −175
  6. docs: add business model review with critical findings

    Cursor Agent cd3cc283

    Commit notes

    Key findings: - Storage claim in UI is misleading (says '50x more' but both tiers get 100GB) - Pro features list includes unimplemented items (priority processing) - Adverse selection economics: power sellers pay flat fee, casual sellers pay % - No monetization path for buyers - Marketplace fee structure is sound Recommendations: - Fix false storage claims (legal risk) - Differentiate storage limits (e.g., 5GB free, 100GB pro) - Consider 5% Pro fee instead of 0% to capture power seller revenue - Add buyer monetization (subscriptions, credits) Co-authored-by: armin.naimi <[email redacted]>

    Files
    1
    Added
    +231
    Removed
    −0
  7. fix: address critical issues in subscription and marketplace functionality

    Cursor Agent 72b15559

    Commit notes

    Critical fixes: 1. OAuth state storage: Move from in-memory Map to Redis for production reliability and horizontal scaling support (mollie-connect.ts) 2. Purchase completion: Wrap status update and earnings credit in a database transaction to ensure atomicity (purchases.ts) 3. Redirect URL validation: Add isValidRedirectUrl() check to subscription checkout and resume endpoints to prevent open redirect attacks (subscription.ts) Medium fixes: 4. Webhook logging: Improve error logging from debug to warn level when no handler processes a webhook, with detailed error information (subscription.ts) 5. Payout race condition: Use transaction for atomic balance update and payout creation, with accurate error messages on failure (purchases.ts) Minor fixes: 6. Structured logging: Replace console.log/error with structured logger in sample-packs.ts for consistent log formatting Co-authored-by: armin.naimi <[email redacted]>

    Files
    5
    Added
    +280
    Removed
    −186
  8. docs: add comprehensive review of subscription and marketplace functionality

    Cursor Agent b0871e15

    Commit notes

    - Identify 3 critical issues: OAuth state in-memory, missing transaction in purchase completion, missing redirect URL validation - Document 2 medium issues: silent webhook error handling, payout race condition - List 3 minor issues: console.log usage, confusing storage logic, missing index - Include positive observations and actionable recommendations - Prioritized action items for remediation Co-authored-by: armin.naimi <[email redacted]>

    Files
    1
    Added
    +315
    Removed
    −0