refactor(reconcile): consume the shared runner from chant 0.11.0 (#20)#54
Merged
Conversation
Replace warden's vendored runReconcile/Cycle with the generic harness now in @intentius/chant/reconcile. runner.ts (443 → ~90 lines) is a thin adapter that wires warden's GitHub diff (nowMs-defaulted) + member-aware guardrails + config.orgs into the shared loop, and re-exports the harness types so the in-repo surface is unchanged. Bump chant deps to ^0.11.0. This completes github-warden#20: the full provider-agnostic core (change set, diffCollection, guardrails, AND the runner) lives in chant — a gitlab/forgejo warden builds on it instead of vendoring. 469 tests green; action bundle rebuilt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Completes #20 (for real this time) — the runner is the last piece.
chant 0.11.0 lifted the reconcile runner +
Cycleinterface into@intentius/chant/reconcile(chant#508). This swaps warden's vendored copy for it.Changes
@intentius/chant+@intentius/chant-lexicon-github→^0.11.0.src/reconcile/runner.ts: 443 → ~90 lines, now a thin adapter that wires warden's GitHub pieces into the sharedrunReconcile:diffinjected (withnowMsdefaulted for time-based diffs)runGuardrailsinjectedconfig.orgspassed as thescopesmapCycle<TScope>= the sharedCyclespecialized toAppClient/OrgConfig/LiveOrgStateBudgetExhaustedErrorre-exported, so the./runner.jsimport surface (andindex.ts) is unchanged.The 13 cycles, cli, and tests are untouched — same behavior, same API.
Why this matters
The entire provider-agnostic core — change-set model,
diffCollection, guardrail framework, and the runner — now lives in one place. A second warden (gitlab/forgejo) builds cycles on the shared harness rather than copying it. That's the chant#20 bet paid off, and the green light forforgejo-warden.Verification
npx tsc --noEmitcleannpm testgreen (469)@intentius/chant@0.11.0confirmed on npm with the runner inreconcile.d.ts🤖 Generated with Claude Code