Files
Fusion 063a839790 feat: implement repository clone mode with SSH key support
- Add clone_mode and branch fields to tool_instances
- Add ssh_key_id to git_repositories for per-repo SSH key assignment
- Implement host-side git cloning with branch selection (default: main)
- Mount SSH keys into containers for git operations in clone mode
- Add dirty state check on clone-mode instance deletion with confirmation
- Update SessionsPage with mount/clone selector, branch input, SSH key display
- Add SSH key selector to repository creation form
- Add dirty delete confirmation modal with changed files list
- Update API schemas and endpoints for new fields
- Sync delta specs to main specs (git-repo, tool-instances, repo-clone-mode)
- Archive completed OpenSpec change: repo-clone-mode-with-ssh
- Document git requirement for custom tool types

Quality gates: Frontend typecheck and build passed
OpenSpec: repo-clone-mode-with-ssh archived with all tasks complete
2026-05-22 22:56:35 +02:00

2.2 KiB

Sessions Hub - Tasks

Phase 1: Backend Config Update

  • Task 1.1: Update UserConfig model

    • Add last_session_id field to models/user_config.py
    • Create Alembic migration
  • Task 1.2: Update config API

    • Accept last_session_id in api/user_config.py
    • Update Pydantic schemas

Phase 2: Frontend Navigation

  • Task 2.1: Add Sessions tab to AppShell

    • Insert between Dashboard and Projects
    • Add sessions icon
    • Show badge with active count
  • Task 2.2: Update router

    • Add /sessions route
    • Create placeholder page

Phase 3: Sessions Page

  • Task 3.1: Create SessionsPage component

    • Page layout with sections
    • Loading and error states
  • Task 3.2: Implement Last Session section

    • Fetch from user config
    • Show session card with resume button
    • Handle no last session state
  • Task 3.3: Implement Active Sessions section

    • Fetch from sessions context
    • Grid of session cards
    • Action buttons (Open, Stop, Restart, Delete)
  • Task 3.4: Implement Recent Sessions section

    • Show last 5 sessions
    • Compact list view
    • Status indicators
  • Task 3.5: Implement Create Session section

    • Project selector (fetch all projects)
    • Repository selector (filtered by project)
    • Tool type selector
    • Display name input
    • Create button with validation

Phase 4: Session Actions

  • Task 4.1: Resume last session

    • Navigate to workspace
    • Update user config
  • Task 4.2: Open session

    • Navigate to workspace with session
  • Task 4.3: Create session

    • Call API to create instance
    • Update user config with last_session_id
    • Refresh sessions list

Phase 5: Polish

  • Task 5.1: Add CSS styles

    • Session cards layout
    • Badge styling
    • Responsive design
  • Task 5.2: Add icons

    • Session icon in navigation
    • Action icons on cards

Phase 6: Quality Gates

  • Task 6.1: TypeScript check

    • npm run typecheck
  • Task 6.2: Lint check

    • npm run lint
  • Task 6.3: Build check

    • npm run build
  • Task 6.4: Manual verification

    • Navigation shows Sessions tab
    • Badge shows correct count
    • Last session displays
    • Can create session from page
    • Config persists