Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
673a606
test(cli): Add Bubble Tea TUI state tests
andkirby Mar 12, 2026
80d0879
feat(DEVPT-001): Add multi-service batch commands with glob patterns …
andkirby Mar 12, 2026
667c874
feat(DEVPT-002): Add viewport mouse navigation and highlight cycling
andkirby Mar 17, 2026
18edc71
fix: invalidate table content hash when returning from logs to table …
andkirby Mar 26, 2026
467cbd0
fix: add cloudflared to dev process patterns
andkirby Mar 26, 2026
808b932
fix: never filter out processes belonging to managed services
andkirby Mar 26, 2026
fb2bedb
chore: update dependencies
andkirby Mar 26, 2026
8d4232b
fix: cherry-pick command/search mode input fix from origin/main
andkirby Mar 26, 2026
288820c
feat(UI): show inactive section selection in gray, active in purple
andkirby Mar 27, 2026
35eae29
refactor(cli): extract tui into subpackage, upgraded bubbles to v2.1
andkirby Mar 27, 2026
f72e3c1
fix(tui): stop ui corruption and repair mouse selection
andkirby Mar 27, 2026
63a64aa
fix(tui): stabilize process mapping and split table scrolling
andkirby Mar 27, 2026
0a4a478
feat(tui): add confirm modal overlay interactions
andkirby Mar 27, 2026
54a44d5
refactor(tui): consolidate modal help flow
andkirby Mar 27, 2026
5b09d53
refactor(tui): simplify table chrome
andkirby Mar 27, 2026
8ded121
fix(tui): restore enter actions and inline filter ux
andkirby Mar 27, 2026
953f0e2
feat(tui): use bubbles text input for filter
andkirby Mar 27, 2026
251e644
refactor(tui): polish table headers and filter chrome
andkirby Mar 27, 2026
c03c389
fix(tui): separate logs header and size viewport correctly
andkirby Mar 27, 2026
bd72e7a
fix(tui): remove stale table layout offsets
andkirby Mar 27, 2026
540cf9e
refactor(tui): simplify main header copy
andkirby Mar 27, 2026
49129ea
docs: tighten README and quickstart
andkirby Mar 27, 2026
2f930dc
Merge remote-tracking branch 'origin/main'
andkirby Mar 27, 2026
0c48a04
feat: bump version to 0.2.0
andkirby Mar 27, 2026
a0fa653
docs: add 0.2.0 changelog
andkirby Mar 27, 2026
4077e07
Add cross-platform release workflow for Linux/macOS/Windows
andkirby Mar 28, 2026
3c72878
feat(tui): add sorting controls for table view (DEVPT-003)
andkirby Mar 28, 2026
d87d2c5
Add devpt-release skill for changelog version bumps and commit grouping
andkirby Mar 28, 2026
7e1b1d8
Release 0.2.1
andkirby Mar 28, 2026
ec07f7c
Fix cross-platform build: separate Unix and Windows process control
andkirby Mar 28, 2026
4d8eee9
chore: bump version to 0.2.1
andkirby Mar 28, 2026
23a8a1c
chore: add lefthook pre-push validation and set-version script
andkirby Mar 28, 2026
f292126
fix: tolerate ErrNeedSudo in test cleanup
andkirby Mar 28, 2026
0c2a5f9
feat(DEVPT-003): Add Shift+S sort direction toggle
andkirby Mar 28, 2026
c376f11
fix(cli): validate managed service PID matches before binding or acting
andkirby Mar 29, 2026
0631768
docs: update changelog for 0.2.2
andkirby Mar 29, 2026
2fbce65
chore: bump version to 0.2.2
andkirby Mar 29, 2026
b1c4d11
Merge owner/main into codex/merge-owner-main
andkirby Mar 29, 2026
d954a56
feat(DEVPT-004): add managed split view to show status of process in …
andkirby Apr 2, 2026
f930305
docs: update changelog for 0.3.0
andkirby Apr 2, 2026
d23c2e2
chore: bump version to 0.3.0
andkirby Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .agents/skills/devpt-release/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
name: devpt-release
description: Increment version and update CHANGELOG.md from commits since last update. Use when making a release, bumping version, or updating changelog for dev-process-tracker.
---

# DevPT Release Skill

## Usage

```
<user asks: "make a patch release"> or "bump minor version" or "devpt release major"
```

## Workflow

1. **Read CHANGELOG.md** — extract current version from first `## X.Y.Z` header
2. **Find last update** — get SHA of the commit that last modified CHANGELOG.md
3. **Get commits since** — `git log <SHA>..HEAD --oneline --no-merges`
4. **Group & classify**:
- Parse commit messages for intent (add/fix/change/remove/refactor/docs)
- **Group related commits**: if a "fix" or "polish" follows a feature in time/subject, fold it into that feature line
- Prioritize user-facing changes over internal polish
5. **Determine bump**:
- `major` (0.x → 1.0 or breaking) / `minor` (features) / `patch` (fixes) — use user-specified if provided
6. **Generate entries** — write concise imperative-mood bullets:
- "Added X so Y" for features
- "Fixed Z so W" for bugs
- Group related fixes with their feature when they're clearly connected
7. **Update CHANGELOG.md** — prepend new version section
8. **Set version** — run `./scripts/set-version.sh <X.Y.Z>` to update version.go, commit, and tag
9. **Push** — `git push && git push origin v<X.Y.Z>`

## Version Management

- **Version file**: `pkg/buildinfo/version.go` (`const Version = "X.Y.Z"`)
- **Set version script**: `./scripts/set-version.sh <X.Y.Z>` — updates version.go, commits, creates tag
- **Tags use `v` prefix**: `v0.2.1`
- **Pre-push hook**: validates version.go matches latest tag (via lefthook)

## Grouping Heuristics

When classifying commits, apply these rules:

1. **Time proximity**: Fixes within 1-3 commits of a feature likely belong to it
2. **Subject overlap**: "fix search" after "add search input" → same entry
3. **Keyword clues**: "polish", "tweak", "adjust", "follow-up" often indicate related work
4. **When uncertain**: Keep separate rather than over-grouping

## Flags

- `--review` — show grouped commits and proposed entries before writing
- `--dry-run` — output the new section without modifying the file

## Example Output

```markdown
## 0.3.0

- Added dark mode toggle so users can switch themes without reloading
- Fixed theme persistence so preference survives across sessions
- Removed deprecated `/legacy` endpoint
```

## Edge Cases

- **No commits since last update**: Report "no changes since last release" and exit
- **Uncommitted changes**: Warn but proceed (commits are the source of truth)
- **Version is 0.x**: Treat as pre-release; minor bumps for features, patch for fixes
20 changes: 20 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,25 @@ Cache can be invalidated selectively. Important for performance (lsof calls are
- Exit conditions: user presses 'q', or explicit quit() command
- Key handlers prioritized: modal state (logs/input) takes precedence over list navigation

## Before Submitting Changes

Always run these checks before considering work complete:

```bash
# 1. Build succeeds
go build ./...

# 2. All tests pass
go test ./...

# 3. CLI runs without error
go build -o devpt ./cmd/devpt && ./devpt ls
```

If adding user-facing features, also update README.md and QUICKSTART.md.

## Common Tasks

## Common Tasks

### Add a New CLI Command
Expand Down Expand Up @@ -175,6 +194,7 @@ Cache can be invalidated selectively. Important for performance (lsof calls are
- **QUICKSTART.md** - Getting started guide for new users
- **IMPLEMENTATION_SUMMARY.md** - Architecture and feature overview (reference only)
- **techspec.md** - Original technical specification
- **.agents/skills/devpt-release/SKILL.md** - Release workflow (changelog + version bump)

Update README and QUICKSTART when adding user-facing features or commands.

Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version: '1.25'

- name: Build binaries
run: |
mkdir -p dist

# Linux
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o dist/devpt-linux-x64 ./cmd/devpt
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w" -o dist/devpt-linux-arm64 ./cmd/devpt

# macOS
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o dist/devpt-macos-x64 ./cmd/devpt
GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w" -o dist/devpt-macos-arm64 ./cmd/devpt

# Windows
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o dist/devpt-windows-x64.exe ./cmd/devpt

- name: Generate checksums
run: |
cd dist
sha256sum * > checksums.txt

- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: dist/*
generate_release_notes: true
24 changes: 22 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,26 @@
/.tmp-home/
/.tmp-home*/


# Local draft/working docs
/docs
/docs
/coverage.out

# Go
*.exe
*.exe~
*.dll
*.so
*.dylib
*.test
*.out
go.work
vendor/

# Coverage
*.coverprofile
coverage.html

# Test fixture binaries (no extension on macOS)
/sandbox/servers/*/go-basic
/sandbox/servers/*/*/node
/sandbox/servers/*/*/server.js
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@.github/copilot-instructions.md

@DEBUG.md
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Changelog

## 0.3.0

- Added a managed-services split view in the TUI so selection and navigation stay clear when browsing running and registered services
- Fixed TUI selection behavior so focus, row targeting, and split-pane navigation stay aligned while moving between running and managed services

## 0.2.2

- Added a Shift+S sort direction toggle in the TUI so sort order can be reversed without changing the active column
- Fixed managed service PID validation so stop and restart only act on processes that still match the registered service
- Fixed cross-platform builds by separating Unix and Windows process control paths

## 0.2.1

- Added table sorting controls with mouse support and reverse sort in the TUI

## 0.2.0

- Added multi-service `start`, `stop`, and `restart` commands with quoted glob pattern support so multiple managed services can be controlled in one invocation
- Added `name:port` targeting for managed services so ambiguous service names can be disambiguated from the CLI
- Extracted the Bubble Tea UI into `pkg/cli/tui` so the TUI logic is isolated from the main CLI package
- Added mouse row selection, mouse wheel scrolling, and viewport-focused navigation so table and log interaction works without keyboard-only control
- Added centered modal overlays for help and confirmation dialogs so help and destructive actions no longer replace the main table view
- Replaced the ad hoc search field with Bubbles text input so filter editing behaves like a real input control and updates inline in the footer
- Simplified the table chrome by moving counts into headers, bolding the active sort column, and removing redundant status text from the top of the screen
- Fixed `Enter` handling so the top section opens logs and the bottom section starts the selected managed service without being swallowed by confirm bindings
- Fixed log rendering so the header is separated from the first log line and the viewport uses the actual remaining terminal height
- Fixed stale table layout offsets so footer spacing, viewport sizing, and mouse hit-testing stay aligned after the filter moved into the footer
- Added shared keymap-driven help text with Bubble components so visible shortcuts and actual bindings stay in sync
- Added clearer TUI and quickstart documentation so the current footer filter, modal help, mouse controls, batch commands, and logs header behavior are documented
- Bumped the application version to `0.2.0` and rendered the version in the TUI header in muted gray
2 changes: 2 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@AGENTS.md
@.github/copilot-instructions.md
Loading