Skip to content

refactor(reconcile): consume the shared runner from chant 0.11.0 (#20)#54

Merged
lex00 merged 1 commit into
mainfrom
feat/consume-runner
Jun 19, 2026
Merged

refactor(reconcile): consume the shared runner from chant 0.11.0 (#20)#54
lex00 merged 1 commit into
mainfrom
feat/consume-runner

Conversation

@lex00

@lex00 lex00 commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Completes #20 (for real this time) — the runner is the last piece.

chant 0.11.0 lifted the reconcile runner + Cycle interface into @intentius/chant/reconcile (chant#508). This swaps warden's vendored copy for it.

Changes

  • Bump @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 shared runReconcile:
    • diff injected (with nowMs defaulted for time-based diffs)
    • member-aware runGuardrails injected
    • config.orgs passed as the scopes map
    • Cycle<TScope> = the shared Cycle specialized to AppClient/OrgConfig/LiveOrgState
    • harness types/BudgetExhaustedError re-exported, so the ./runner.js import surface (and index.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 for forgejo-warden.

Verification

  • npx tsc --noEmit clean
  • npm test green (469)
  • Action bundle rebuilt
  • @intentius/chant@0.11.0 confirmed on npm with the runner in reconcile.d.ts

🤖 Generated with Claude Code

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>
@lex00 lex00 merged commit 98340fd into main Jun 19, 2026
2 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.

1 participant