-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Overview
Implement remaining views to reach full feature parity with the macOS app.
Home Dashboard
Match PPG CLI/PPG CLI/HomeDashboardView.swift:
- Per-project cards showing: name, branch tag, worktree count
- Agent status dots (colored circles, up to 5 per status with +N overflow)
- 91-day commit heatmap (13×7 grid, 5 color levels, cairo drawing on
gtk::DrawingArea) - 10 most recent commits (hash, message, author, relative time)
- Data fetched via
git logsubprocess on background thread
Command Palette
Match PPG CLI/PPG CLI/CommandPalettePanel.swift:
- Overlay dialog (centered, dismissible with Escape)
- Phase 1: Searchable list of agent variants (Claude/Codex/OpenCode/Terminal/Worktree)
- Phase 2: Prompt text entry (multi-line
gtk::TextView) - Enter submits, Escape goes back/dismisses
- Triggered by Ctrl+N or sidebar "+" button
- Use
adw::Dialogor custom floatinggtk::Window
Settings
Match PPG CLI/PPG CLI/SettingsViewController.swift:
- Use
adw::PreferencesWindowwith groups:- Connection: Server URL, token (masked input), test connection button
- Terminal: Font family (monospace filter), font size (8-24), shell path, history limit
- Appearance: System/Light/Dark toggle
- Shortcuts: Rebindable keyboard shortcuts table (Ctrl+D, Ctrl+Shift+D, Ctrl+W, etc.)
- Persist to
~/.config/ppg-desktop/settings.json
Prompts View
Match PPG CLI/PPG CLI/PromptsView.swift:
- Split pane: file list (left) + editor (right)
- Lists
.ppg/prompts/*.mdand.ppg/templates/*.md - Segmented filter: All / Prompts / Templates
- Editor: monospace
gtk::TextViewwith markdown highlighting {{VAR}}placeholders highlighted in orange- Create / rename / delete prompts
- Also scan global
~/.ppg/prompts/and~/.ppg/templates/
Swarms View
Match PPG CLI/PPG CLI/SwarmsView.swift:
- Split pane: swarm list + form editor
- Lists
.ppg/swarms/*.yamlfiles - Form fields: name, description, strategy (shared/isolated), per-agent prompt + type
- YAML parsing (use
serde_yamlcrate) - Create / edit / delete
- Also scan
~/.ppg/swarms/
Schedules View
Match PPG CLI/PPG CLI/SchedulesView.swift:
- Calendar view with Day/Week/Month modes
- Parse cron expressions from
schedules.yamlfiles - Show scheduled runs as colored blocks
- Implement cron parser in Rust (5-field: min/hour/DOM/month/DOW, supports *, /N, ranges, lists, name aliases)
Agent Config View
Match PPG CLI/PPG CLI/AgentConfigView.swift:
- 3 tabs: CLAUDE.md editor, Skills viewer, config.yaml editor
- CLAUDE.md: file picker per project, full text editor, save button
- Skills: list
~/.claude/skills/*/SKILL.md, show YAML frontmatter as form - config.yaml: YAML editor with syntax highlighting
Acceptance Criteria
- Home dashboard shows project cards with stats, heatmap, commits
- Command palette spawns agents via REST API
- Settings persist and apply live (font, theme, shortcuts)
- Prompts view with create/edit/delete and markdown highlighting
- Swarms view with YAML form editor
- Schedules view with calendar and cron parsing
- Agent config view with CLAUDE.md + Skills + config editors
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request