Skip to content

Port to Go: 1:1 feature parity #4

@mrf

Description

@mrf

Summary

Port the existing Rust implementation to Go with 1:1 feature parity. No new features, no architectural changes - just a straight port.

Motivation

  • Faster iteration with Go's sub-second compile times
  • Leverage existing Go expertise
  • Foundation for future Bubble Tea improvements

Scope

Port all existing functionality:

Panels

  • Meetings panel (macOS Calendar.app via osascript)
  • PRs panel (gh CLI integration)
  • Ports panel (lsof parsing)
  • Git status panel (uncommitted work scanning)
  • Stashes panel

Features

  • Config file parsing (~/.config/dcc/config.toml)
  • Keyboard shortcuts (q, r, p, m, g, Tab, Shift+Tab)
  • Color coding (meeting buffer, PR age, stash age)
  • Auto-refresh interval
  • Panel focus/selection

Data Fetching

  • osascript for Calendar events
  • gh search prs for GitHub PRs
  • lsof -i -P -n for ports
  • git status --porcelain for repo status
  • git stash list for stashes

Out of Scope

  • Bubble Tea / Elm Architecture (separate issue)
  • New panels (Jira, Claude sessions)
  • Windows support
  • Architectural improvements

Technical Notes

Use basic Go TUI approach initially:

  • github.com/gdamore/tcell/v2 or raw terminal handling
  • Simple event loop matching current Rust structure
  • Direct port of current architecture

Acceptance Criteria

  • All panels render identically to Rust version
  • All keyboard shortcuts work
  • Config file compatible with existing format
  • go build produces working binary

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions