Repository navigation
feat(ci): request agent repair for fork nightly conflicts - #6
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Problem
This personal fork stops updating when the latest published upstream nightly conflicts with fork features. Its existing nightly workflow deliberately fails rather than discarding fork changes, but nothing currently requests an agent repair.
Change
Emit bounded conflict metadata only after Git reports unmerged entries. A fork-only, read-only
workflow_runnotifier verifies the live failed sync job/log, exact fork base and published nightly tag/SHA, reproduces the conflict in its disposable checkout, and posts metadata to a private T3 Connect webhook. Successful syncs, build failures, stale events, clean merges and existing deterministic repair claims do not invoke an agent.A persistent T3 task is now enabled, using the inherited agent subscription and isolated worktrees. Exact filters, replay/coalesce keys, maximum delivery age, independent GitHub verification and atomic repair-branch claims constrain future runs. The private endpoint is stored only in the fork's
FORK_CONFLICT_WEBHOOK_URLActions secret.Configuration merged and task activated on 2026-11-08, after the owner explicitly authorized a configuration-only merge following validation. Both the notifier and Fork nightly are active. Future agents may open repair PRs, but the user must merge each ready repair PR to unblock nightly sync. No unattended repair merges, forced pushes, test/policy bypasses, external AI API subscriptions or paid review activation. Existing CodeRabbit/Macroscope settings and the open files-diff PR are unchanged. The repair agent retains the inherited full-access credentials: its no-main/no-merge boundary is durable agent guidance, not a new credential-level restriction.
Scope and approval
The fork owner explicitly requested implementing persistent upstream-nightly conflict repair and authorized this fork-only configuration PR. This connects the existing fork nightly workflow to existing T3 webhook scheduled tasks; it changes no product clients, upstream workflows, review plans or live host state.
Verification
node --test .github\scripts\fork-nightly.test.cjsbefore the fix: failed as expected, because a real conflict emitted no trigger metadata.node --test .github\scripts\fork-nightly.test.cjs .github\scripts\fork-conflict-notify.test.cjs: passed, 10 tests. Real fixture merges preserve personal behavior and never push a conflicting sync; notifier cases cover exact routing, successful/non-conflict/stale inputs, claim deduplication, abort cleanup, dry-run with no delivery, private endpoint restrictions, stripped relay headers, offline queue receipts and explicit delivery failures.git --no-pager diff --check: passed.vp run check:changed origin/main: blocked locally by missing project dependencies.vp iattempted restoration but failed at the corporate proxy with@alchemy.run/testHTTP 404. No tests or policies were disabled. Hosted Fork PR validation subsequently passed on headb7247dac9eb48c7e951398cc65e6b58b9e20cdc1.vp run check:changed "$BASE"(base5cb8de196102a53f209b6b5bbb403fa4b6c8ddc3): passed format, lint, both knip passes, affected/dependent typechecks, targeted tests and both Node fixture files. Run: https://github.com/amv146/t3code/actions/runs/42524298502. Automatic CodeRabbit check passed on the same head with no actionable findings. Upstream-only Blacksmith checks were queued/inaccessible; they are not required by this fork and were not disabled or bypassed.vp fmt .github\scripts\fork-nightly.cjs .github\scripts\fork-nightly.test.cjs .github\scripts\fork-conflict-notify.cjs .github\scripts\fork-conflict-notify.test.cjs .github\workflows\fork-conflict-repair.yml docs\operations\fork-nightly.md: blocked by the same missing Vite+ installation. The already-restored Oxfmt 0.74.0 CLI formatted and checked these six files successfully using the repository's applicable formatting options.{"error":"hook_disabled"}. The task remained disabled withlastRunStatus: never; no coding agent was dispatched. GitHub's real sync job log endpoint was also verified to return text.gh pr merge 6 --repo amv146/t3code --merge --match-head-commit b7247dac9eb48c7e951398cc65e6b58b9e20cdc1: succeeded with owner authorization, merge commit28fee9478de4c278f0196a4261eb95688f595cdd. The notifier workflow is present and active on main.schedule_taskupdate withenabled: true: succeeded. Read-only persistence verification confirmedorigin/main,startFromOrigin: true, isolated worktrees/new threads, inheritedacpRegistry_agency_context/gpt-6.1-sol, and the exact filters/dedupe/max-age configuration.lastRunStatusremained never: zero coding agents dispatched.Implemented by GPT-6.1 Sol (
gpt-6.1-sol) through GitHub Copilot's T3 CodeacpRegistryharness.