Skip to content

Comments

feat: Sprint 2.1 - Add Zed terminal infrastructure dependencies#14

Merged
randlee merged 7 commits intodevelopfrom
feature/sprint-2-terminal-integration
Jan 26, 2026
Merged

feat: Sprint 2.1 - Add Zed terminal infrastructure dependencies#14
randlee merged 7 commits intodevelopfrom
feature/sprint-2-terminal-integration

Conversation

@randlee
Copy link
Owner

@randlee randlee commented Jan 25, 2026

Summary

Sprint 2.1 Phase 1: Add Zed crates as git dependencies (v0.220.3) for terminal integration.

Dependencies Added

  • settings - Zed settings system (GPL-3.0)
  • theme - Zed theme system (GPL-3.0)
  • terminal - Core terminal emulation with alacritty_terminal (GPL-3.0)
  • ui - Pre-built GPUI components (GPL-3.0)
  • collections, util - Zed utilities (Apache-2.0)

License Change

Updated from MIT OR Apache-2.0 to GPL-3.0-or-later due to Zed dependencies as documented in docs/architecture/zed-reuse-strategy.md.

Design Document

Full architecture at docs/sprints/phase-2-sprint-2-design.md

Test plan

  • cargo check passes
  • cargo build succeeds
  • cargo test - 58/58 tests passing
  • cargo clippy -- -D warnings - no warnings
  • cargo fmt -- --check - properly formatted

🤖 Generated with Claude Code

randlee and others added 7 commits January 25, 2026 14:26
Architecture blueprint for Sprint 2.1 and 2.2:
- Zed dependencies strategy (git deps, v0.220.3)
- Settings/theme migration to Zed systems
- TerminalPane component design
- Build sequence with 7 phases

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sprint 2.1 Phase 1: Add Zed crates as git dependencies (v0.220.3):
- settings: Zed settings system (GPL-3.0)
- theme: Zed theme system (GPL-3.0)
- terminal: Core terminal emulation with alacritty_terminal (GPL-3.0)
- ui: Pre-built GPUI components (GPL-3.0)
- collections, util: Zed utilities (Apache-2.0)

License updated to GPL-3.0-or-later due to Zed dependencies.
All 58 tests passing, clippy clean.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sprint 2.1 Phase 2-3 implementation:

- Add settings_adapter.rs to register TerminalSettings with Zed's
  SettingsStore for terminal configuration management
- Add theme_adapter.rs to initialize Zed's theme system and provide
  theme access utilities
- Update main.rs to initialize Zed systems in correct order:
  settings::init() → settings_adapter::init() → theme_adapter::init()
- Migrate workspace.rs from custom Theme global to Zed's ActiveTheme
  trait pattern using cx.theme()
- Mark legacy settings/theme modules as deprecated with dead_code allow

This prepares the foundation for terminal pane integration in Sprint 2.2.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add TerminalPane component wrapping Zed's Terminal crate
- Add TerminalTab for managing individual terminal sessions
- Integrate TerminalPane into WorkspaceView replacing placeholder
- Wire up terminal spawning with workspace root as working directory
- Handle terminal events (title changes, close, wakeup, bell)
- Add basic terminal content rendering from TerminalContent cells
- Add keystroke-to-terminal input conversion using Zed's key mappings
- Support multiple terminal tabs with tab bar and new tab button

Sprint 2.2 deliverables complete:
- src/terminal/pane.rs (~360 lines)
- src/terminal/tab.rs (~67 lines)
- Updated src/terminal/mod.rs
- Integrated into src/ui/workspace.rs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix import line formatting (cargo fmt)
- Mark Sprint 2.1 and 2.2 as complete in design doc
- Update success criteria and build sequence

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@randlee randlee merged commit 0d89551 into develop Jan 26, 2026
5 of 10 checks passed
randlee added a commit that referenced this pull request Jan 26, 2026
- PR #14 merged (was pending)
- 63 tests passing (was 60)
- Added per-workspace terminal persistence details
- CI passing on all platforms (macOS, Linux, Windows)
- Updated Session 5 effort to ~8 hours

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant