Skip to content

Plan: artifact events reach the job (pod release on merge, auto-fix on failing checks) - #122

Open
Evanfeenstra wants to merge 6 commits into
mainfrom
docs/job-artifact-events-plan
Open

Evanfeenstra wants to merge 6 commits into
mainfrom
docs/job-artifact-events-plan

Conversation

@Evanfeenstra

Copy link
Copy Markdown
Contributor

A plan only, no code: plans/job-artifact-events.md, plus a four-line pointer in plans/jobs.md's status header.

What it decides

  • An event about an artifact a job reported — first, a pull request merging, closing or failing its checks — becomes a turn on the job with a machine-written prompt. The agent, which knows which pod made which pull request and what else is pending in it, releases, fixes or keeps. Hive models no lifecycle; the job's thread is the state.
  • One door for every kind of artifact: a kind-agnostic index of every ref a job reports, by URL; one event line, [artifact-event] <kind> <url> <what happened>, specifics below. Event sources (the GitHub webhook) are adapters; card actions (the PR card's "Fix") are per-viewer prompt composers. Neither adds a seam.
  • Hive's pool API takes a ?job= claimant in the usage_status_marked_by column it already has — no migration — and the drop path checks ownership, which closes a real hole: today a stale release can drop a pod hive has already handed to a task.
  • Auto-fix is a card action first; automatic forwarding later with a per-(artifact, state) cap.
  • Strut is unchanged on this path. The idle sweep stays the backstop; a job inbox in strut (POST /jobs/:id/events) is named as the later, fully generic door and not taken now.

Work order is in §9: hive pool API → mcp pod steps + the Pod page → hive's door → the Fix action.

…ix on failing checks

plans/job-artifact-events.md. An event about an artifact a job reported
(first: a pull request merging, closing or failing its checks) becomes a
turn on that job with a machine-written prompt, and the agent decides
what it means for the pod it holds. One door for every kind of artifact:
a kind-agnostic index of reported refs by URL, one `[artifact-event]
<kind> <url> <what happened>` line; event sources and card actions are
plug-ins. Hive's pool API takes a `?job=` claimant in the column it has.
Strut changes nothing; jobs.md's header points at the plan.
…h notes found from control, a busy job queues the event on its index row for the settle handler, the launch as a service the webhook and the Fix route both call, check links, two pool-API one-liners
…low_run not check_suite, the Fix route under continue_job's owner rule, the hold note appended, the reason through both claim functions, the job id threaded to the PR viewer, the normalized URL and one slot per (job, ref); the settle wake kept and told its origin, with one entry at launch
…keyed on the workspace and the webhook's lookup scoped to it, a null claimant releasable (the pods claimed before the steps send a job), the launch-time entry as an assistant row with its own source kind the pending card accepts, hive items branch from master
… hive#5447, hive#5448); the origin row after the dispatch, the job_busy requeue
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