feat(artificer): add explicit local ticket delivery - #215
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Refs #157. Add the local Artificer adapter for explicitly authorized recurring ticket delivery, independently of the GitHub Actions follow-up.
What changed
darrow-artificerplugin with explicit-only management, launchd scheduling, model-free eligibility/reply/PR polling, shared-lock reservations, conservative cancellation/recovery and encrypted native archives.ticket-to-prwithout moving engineering ownership into the adapter; update paired manifests, specifications, catalog and guide fixtures.Verification
bun testpassed 632 tests across 56 files (2,343 assertions), with zero failures.bun run check:pythonpassed across all registered packages; finalbun run check:python --package plugins/automation/darrow-artificer/backendpassed 130 tests, Ruff, strict mypy, 99.26% statement and 96.83% branch coverage.uv run --isolated --python <3.10|3.11|3.12> --frozen --group dev --project plugins/automation/darrow-artificer/backend pytest plugins/automation/darrow-artificer/backend/testspassed 130 tests on each; primary quality run used Python 3.13.14.bun run lint,bun run lint:ts,bun run lint:shell,bun run typecheck,bun run check:decisionsbun run check:docsandbun run check:docs:externalpassed (95 external URLs).bash .agents/skills/darrow-guide/evals/fixtures/setup.test.shand/bin/bash .agents/skills/darrow-guide/evals/fixtures/setup.test.shpassed (Bash 3.2.57; Bash 5 unavailable).inspect-skill inspect; both changed plugins passedclaude plugin validate.uv run --quiet --frozen --no-dev python tests/live_native.py,tests/live_schedule.pyandtests/live_delivery.pypassed: encrypted restoration, retained parent/child history and routes, real launchd execution, and exact whitespace-bearing replies at WIP zero.Detailed evidence, commands, native IDs, diagnosed failures and independent review.
Review notes
Focus review on native identity/credential handling, admission correlation and conservative recovery. The fresh independent artifact challenge found and verified repairs for archive expiry stranding open PRs, false cancellation status, and read-only eval state escaping the assertions.
Execution support is macOS + Codex CLI 0.154.0; Claude can manage Artificer or invoke the ordinary human recipe, but unattended Claude execution is not supported. No real GitHub ticket-to-PR delivery, deliberate Desktop-close event, forced native token refresh or real subscription exhaustion was exercised; the live transport probe used isolated GitHub/recipe fixtures. These limits are explicit in the evidence, so this PR references rather than automatically closes #157. Account setup requires no paid credits or automatic reload. No Artificer schedule was enabled for this repository; temporary probe schedules were removed.
Checklist
CONTRIBUTING.md, including the contributionlicensing terms.
this change does not affect a capability invariant.
behavior.
change does not affect plugin content.
bun run check:python, or this change does not affect registeredPython packages or their repository quality infrastructure.