Skip to content

feat(jobrunner): automated PR workflow system#329

Merged
VioletCorvin merged 0 commit intodevfrom
feat/job-runner
Feb 5, 2026
Merged

feat(jobrunner): automated PR workflow system#329
VioletCorvin merged 0 commit intodevfrom
feat/job-runner

Conversation

@Snider
Copy link
Collaborator

@Snider Snider commented Feb 5, 2026

Summary

  • Event-driven PR automation poller (5min cycles)
  • 11 workflow handlers (link → publish → merge → tick)
  • Journal-backed state, first-match dispatch
  • core-ide headless mode + MCP integration
  • Systemd service for Linux deployment

Test plan

  • 39 unit tests passing
  • go vet clean
  • Deploy to test environment
  • Verify systemd service
  • Run through full PR workflow

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings February 5, 2026 06:42
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a comprehensive automated job runner system for the core-ide application that polls GitHub for pull request pipeline work and executes typed handler actions. The system introduces an event-driven architecture with pluggable sources, priority-based handler dispatch, and JSONL journal logging for training data capture.

Changes:

  • Adds core jobrunner package with poller, journal, and handler infrastructure
  • Implements GitHub source adapter with ETag-based conditional requests
  • Creates 11 workflow handlers (publish_draft, resolve_threads, enable_auto_merge, tick_parent, etc.)
  • Integrates headless mode into core-ide with systemd service support
  • Establishes Go workspace for cross-module development

Reviewed changes

Copilot reviewed 30 out of 33 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
go.work Creates Go workspace linking root and core-ide modules
pkg/jobrunner/types.go Defines core interfaces (JobSource, JobHandler) and data structures (PipelineSignal, ActionResult)
pkg/jobrunner/journal.go Implements JSONL journal writer for training data capture
pkg/jobrunner/poller.go Core polling orchestrator with multi-source dispatch logic
pkg/jobrunner/github/source.go GitHub API adapter implementing JobSource interface
pkg/jobrunner/github/signals.go GitHub response parsing and signal building logic
pkg/jobrunner/handlers/*.go Handler implementations for PR workflow automation
internal/core-ide/headless.go Headless daemon mode startup and configuration
internal/core-ide/headless_mcp.go MCP HTTP bridge for external tool access
internal/core-ide/build/linux/core-ide.service Systemd service definition

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

github-merge-queue bot pushed a commit that referenced this pull request Feb 5, 2026
The security logging in io/local creates a cycle:
  pkg/log/rotation.go imports pkg/io (for Medium)
  pkg/io/local/client.go imports pkg/log (for Security())

Remove the log import and rely on the os.ErrPermission return value
to signal sandbox escape attempts. Callers can log at their level.

Fixes build failure on dev branch introduced by #329.

Co-authored-by: Claude <developers@lethean.io>
Merged via the queue into dev with commit dff1b63 Feb 5, 2026
10 of 17 checks passed
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.

2 participants