Skip to content

test(e2e): add containerized install and daemon tests#558

Closed
easel wants to merge 9 commits intogastownhall:mainfrom
easel:e2e-tests
Closed

test(e2e): add containerized install and daemon tests#558
easel wants to merge 9 commits intogastownhall:mainfrom
easel:e2e-tests

Conversation

@easel
Copy link
Copy Markdown
Contributor

@easel easel commented Jan 15, 2026

Summary

  • Add e2e tests verifying gt install creates a functional system
  • Tests run in isolated Docker container for reproducibility
  • Includes GitHub Actions workflow for CI

Changes

  • TestInstallDoctorClean: verifies structure creation, rig/crew add, basic commands
  • TestInstallWithDaemon: extends above with daemon lifecycle testing
  • Dockerfile.e2e: container for isolated test environment
  • Makefile: adds test-e2e and test-e2e-container targets
  • .github/workflows/e2e.yml: CI workflow for containerized tests

Test plan

  • Tests pass locally in Docker container
  • CI workflow passes on PR

🤖 Generated with Claude Code

easel and others added 9 commits January 15, 2026 00:15
The gt mq list command with --status=open filter was incorrectly displaying
CLOSED merge requests as 'ready'. This occurred because bd list --status=open
was returning closed issues.

Added manual status filtering in three locations:
- mq_list.go: Filter closed MRs in all list views
- mq_next.go: Skip closed MRs when finding next ready MR
- engineer.go: Skip closed MRs in refinery's ready queue

Also fixed build error in mail_queue.go where QueueConfig struct (non-pointer)
was being compared to nil.

Workaround for upstream bd list status filter bug.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Implements two new commands for managing Gas Town processes:

1. gt ps - List all tmux sessions with process information
   - Shows session names, status (alive/dead), commands, PIDs
   - Displays work-on-hook status for polecats
   - Supports --json and --verbose flags
   - Highlights Gas Town sessions

2. gt cleanup - Manage orphaned processes and sessions
   - cleanup orphans: Find work assigned to dead agents
   - cleanup sessions: Clean up dead/zombie tmux sessions
   - cleanup stale: Clean up stale polecats (wraps gt polecat stale)
   - Supports --dry-run flag for safe inspection

Both commands integrate with existing daemon orphan detection logic
and provide manual inspection/triggering of cleanup operations.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove --force flag from cleanup sessions command that was declared but never used
- Fix extractRigFromAgentID to handle rig names with hyphens by finding the "-polecat-" delimiter
- Fix extractPolecatNameFromAgentID to handle polecat names with hyphens by taking everything after "-polecat-"

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The test now uses t.Setenv() which cannot be used with t.Parallel() in Go.
This completes the conflict resolution from the rebase.
Add e2e tests that verify gt install creates a functional system:
- TestInstallDoctorClean: verifies structure, rig/crew add, commands
- TestInstallWithDaemon: extends above with daemon lifecycle testing

Tests run in isolated Docker container for reproducibility.

Includes:
- Dockerfile.e2e for test container
- Makefile targets: test-e2e, test-e2e-container
- GitHub Actions workflow for CI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@easel
Copy link
Copy Markdown
Contributor Author

easel commented Jan 15, 2026

Closing - need to rebase on upstream main to exclude unrelated fork changes

@easel easel closed this Jan 15, 2026
@easel
Copy link
Copy Markdown
Contributor Author

easel commented Jan 16, 2026

Correctly closed: This PR was rebased to exclude unrelated fork changes and reopened as #559.

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