Objective
Move Every Code issue-triggered automation from a GitHub API polling script into Launchplane-owned durable ingress, queueing, status, and future UI records.
Finish Line
Every Code issue labels create durable Launchplane work requests that a local Mac worker can claim and run visibly
Current Status
State: Core Launchplane-backed Every Code automation is implemented and deployed. Main now has durable work-request records/API/storage, signed GitHub issues.labeled webhook ingress, a local every-code run-once tmux worker handoff, and every-code reconcile-issue for missed/manual issue-label reconciliation without high-volume GitHub polling.
Next action: Validate with a real every-code labeled issue in the live GitHub webhook setup, then decide whether to add a follow-up for a long-running worker daemon or scheduled wrapper.
Blocked by: Real-world webhook/label setup only; the tracked implementation scope is complete.
Last verified: 2026-05-06, PR #290 main CI/Security/CodeQL passed and Deploy Launchplane succeeded for ac426f4.
Scope
- Add Launchplane contracts for Every Code webhook deliveries, normalized work requests, worker claims, status transitions, and result metadata.
- Add DB-backed storage and idempotency around GitHub delivery IDs and work-request claims.
- Add authenticated GitHub webhook ingress for
issues.labeled events carrying label every-code.
- Add worker-facing APIs for a registered local host to claim work and report progress/results.
- Preserve the local Mac as the executor for visible tmux/Code sessions; Launchplane should coordinate, not directly open local terminals.
- Add read models that a future Launchplane UI can use to show queued/running/done/blocked automation.
- Keep a low-frequency reconciliation path for missed webhook deliveries.
Acceptance Criteria
- A GitHub webhook payload for
issues.labeled + every-code creates exactly one durable work request per delivery/issue trigger.
- Duplicate webhook deliveries are deduped by
X-GitHub-Delivery and/or normalized work-request identity.
- Untrusted or out-of-scope requests fail closed with an inspectable blocked/skipped status.
- A local worker can claim one pending request without races and report running/done/blocked status.
- Work-request state is queryable from Launchplane service read endpoints for future UI use.
- GitHub API usage is event-driven and does not require per-minute scans across all active repos.
- A fallback reconciliation flow can identify missed labeled issues without reintroducing high-volume polling.
Relationships
Validation
- Unit tests for webhook payload adaptation, signature/idempotency handling, request-state transitions, trust gating, worker claim concurrency, and read models.
- Service-level tests for ingress, worker claim/status routes, and duplicate webhook delivery behavior.
- A manual local smoke test can post a captured webhook fixture to Launchplane, claim it from the local worker, and verify the tmux job launcher receives repo/issue coordinates.
Decisions
- Launchplane owns durable coordination; the local Mac owns visible execution.
- Repository topic
every-code remains enrollment metadata, not the hot-path polling mechanism.
- Issue label
every-code remains the human approval/trigger.
- The standalone poller should become fallback/prototype material rather than the final trigger architecture.
Open Questions
- Should ingress use a GitHub App webhook from the start, or start with repository webhooks and migrate to an App?
- What is the first worker authentication mechanism: Launchplane-issued worker token, Tailscale identity, or another host registration flow?
- Should trusted-label authorization be based on GitHub App permission lookup, explicit Launchplane allowlist, or both?
- How much of the existing shell worker should stay in
code versus become a Launchplane companion worker command?
Objective
Move Every Code issue-triggered automation from a GitHub API polling script into Launchplane-owned durable ingress, queueing, status, and future UI records.
Finish Line
Every Code issue labels create durable Launchplane work requests that a local Mac worker can claim and run visibly
Current Status
State: Core Launchplane-backed Every Code automation is implemented and deployed. Main now has durable work-request records/API/storage, signed GitHub
issues.labeledwebhook ingress, a localevery-code run-oncetmux worker handoff, andevery-code reconcile-issuefor missed/manual issue-label reconciliation without high-volume GitHub polling.Next action: Validate with a real
every-codelabeled issue in the live GitHub webhook setup, then decide whether to add a follow-up for a long-running worker daemon or scheduled wrapper.Blocked by: Real-world webhook/label setup only; the tracked implementation scope is complete.
Last verified: 2026-05-06, PR #290 main CI/Security/CodeQL passed and Deploy Launchplane succeeded for ac426f4.
Scope
issues.labeledevents carrying labelevery-code.Acceptance Criteria
issues.labeled+every-codecreates exactly one durable work request per delivery/issue trigger.X-GitHub-Deliveryand/or normalized work-request identity.Relationships
Validation
Decisions
every-coderemains enrollment metadata, not the hot-path polling mechanism.every-coderemains the human approval/trigger.Open Questions
codeversus become a Launchplane companion worker command?