Add step library foundation and user preferences #24

Merged
chihlasm merged 6 commits from feature/step-library-and-preferences into main 2026-02-03 07:07:47 +00:00
chihlasm commented 2026-02-03 06:26:20 +00:00 (Migrated from github.com)

Summary

Implements 4 GitHub issues for Phase 2.5 step library foundation:

  • Issue #3: User Preferences - export format default setting
  • Issue #5: Step Categories - database table and seed data
  • Issue #6: Step Library - database schema and migrations
  • Issue #7: Step Library - CRUD API endpoints

Changes

Frontend:

  • New Settings page at /settings with export format dropdown
  • User preferences stored in localStorage via Zustand
  • SessionDetailPage uses default export format from preferences

Backend:

  • Migration 007: step_categories table with 10 seeded global categories
  • Migration 008: step_library, step_ratings, step_usage_log tables
  • /api/v1/step-categories - Full CRUD for step categories
  • /api/v1/steps - Full CRUD with search, filtering, and rating system

Database Tables Added

  • step_categories - Organize steps by technology area
  • step_library - Reusable troubleshooting steps
  • step_ratings - User ratings and reviews
  • step_usage_log - Track step usage in sessions

Test plan

  • Railway PR environment deploys successfully
  • Migrations run without errors
  • GET /api/v1/step-categories returns seeded categories
  • POST /api/v1/steps creates a step successfully
  • GET /api/v1/steps returns steps with visibility filtering
  • Frontend Settings page loads and persists export format
  • SessionDetailPage uses saved export format preference

🤖 Generated with Claude Code

## Summary Implements 4 GitHub issues for Phase 2.5 step library foundation: - **Issue #3**: User Preferences - export format default setting - **Issue #5**: Step Categories - database table and seed data - **Issue #6**: Step Library - database schema and migrations - **Issue #7**: Step Library - CRUD API endpoints ### Changes **Frontend:** - New Settings page at `/settings` with export format dropdown - User preferences stored in localStorage via Zustand - SessionDetailPage uses default export format from preferences **Backend:** - Migration 007: `step_categories` table with 10 seeded global categories - Migration 008: `step_library`, `step_ratings`, `step_usage_log` tables - `/api/v1/step-categories` - Full CRUD for step categories - `/api/v1/steps` - Full CRUD with search, filtering, and rating system ### Database Tables Added - `step_categories` - Organize steps by technology area - `step_library` - Reusable troubleshooting steps - `step_ratings` - User ratings and reviews - `step_usage_log` - Track step usage in sessions ## Test plan - [ ] Railway PR environment deploys successfully - [ ] Migrations run without errors - [ ] `GET /api/v1/step-categories` returns seeded categories - [ ] `POST /api/v1/steps` creates a step successfully - [ ] `GET /api/v1/steps` returns steps with visibility filtering - [ ] Frontend Settings page loads and persists export format - [ ] SessionDetailPage uses saved export format preference 🤖 Generated with [Claude Code](https://claude.com/claude-code)
railway-app[bot] commented 2026-02-03 06:26:33 +00:00 (Migrated from github.com)

🚅 Deployed to the patherly-pr-24 environment in selfless-grace

Service Status Web Updated (UTC)
patherly Success (View Logs) Web Feb 3, 2026 at 7:00 am
hopeful-liberation Success (View Logs) Web Feb 3, 2026 at 7:00 am
<!-- railway-bot-comment-version=2 --> <!-- railway-project-id="22b9b58c-271b-42e5-a10e-6fdec8d00134" railway-project-name="selfless-grace" --> 🚅 Deployed to the [patherly-pr-24](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134?environmentId=abda0414-7dae-44a9-ad7d-d98e7c24b79a) environment in **[selfless-grace](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134)** | **Service** | **Status** | **Web** | **Updated** (UTC) | | :--- | :--- | :--- | :--- | | patherly | ✅ Success ([View Logs](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134/service/95f556ff-5264-4116-a0c2-618a2fc53ba4?id=c6c3f2ff-5698-4649-9234-508e8a73a30a&environmentId=abda0414-7dae-44a9-ad7d-d98e7c24b79a)) | [Web](https://patherly-patherly-pr-24.up.railway.app) | Feb 3, 2026 at 7:00 am | | hopeful-liberation | ✅ Success ([View Logs](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134/service/e1db2ee3-d241-4f45-abe4-c9c5fdf483d5?id=9abc3a6f-0244-48be-8891-83dd8c525168&environmentId=abda0414-7dae-44a9-ad7d-d98e7c24b79a)) | [Web](https://hopeful-liberation-patherly-pr-24.up.railway.app) | Feb 3, 2026 at 7:00 am |
Sign in to join this conversation.