feat: port GitHub remote research adapter #2

Merged
lost-rob0t merged 14 commits from feature/github-remote-adapter into main 2026-09-01 00:25:51 +00:00
lost-rob0t commented 2026-08-30 03:28:23 +00:00 (Migrated from github.com)

What this ports

Moves the last reusable behavior out of the Doom dotfile implementation so the old research dashboard can be deleted after dotfile wiring switches over.

Unified remote discovery

  • adds a generic async :dashboard-provider plugin contract
  • streams external items into the existing M-x auto-research dashboard
  • ports authenticated-user + visible-org repository discovery through gh
  • scans current default-branch Git trees with bounded concurrent tree/blob fetches
  • shows canonical PENDING research, with legacy review-ready documents opt-in
  • keeps GitHub entirely optional; core auto-research has no GitHub dependency

Approval PR delivery

  • remote a / R uses the same human actor/evidence UX
  • canonical metadata repair/decision is delegated to auto-research-metadata
  • verifies reviewed blob/content against the current branch head
  • shows the approval preview
  • rechecks branch head and blob/content immediately before delivery
  • creates an approval-only branch and [skip ci] commit
  • opens an approval PR
  • defaults to expected-head guarded immediate rebase merge, matching the old dashboard behavior
  • can leave the approval PR open instead via configuration

Migration / tests

  • documents the GitHub adapter and new async backend contract
  • marks the old dotfile remote discovery/delivery boundary as ported
  • adds ERT coverage for async external dashboard items, GitHub candidate filtering, pending items, and legacy opt-in behavior
  • adds PR/push GitHub Actions to run make test with Emacs

Migration consequence

Once this PR is green and the dotfiles load auto-research + (auto-research-github-enable), the old research-dashboard.el implementation no longer owns unique reusable behavior and can be removed instead of kept as a compatibility fork.

## What this ports Moves the last reusable behavior out of the Doom dotfile implementation so the old research dashboard can be deleted after dotfile wiring switches over. ### Unified remote discovery - adds a generic async `:dashboard-provider` plugin contract - streams external items into the existing `M-x auto-research` dashboard - ports authenticated-user + visible-org repository discovery through `gh` - scans current default-branch Git trees with bounded concurrent tree/blob fetches - shows canonical `PENDING` research, with legacy review-ready documents opt-in - keeps GitHub entirely optional; core `auto-research` has no GitHub dependency ### Approval PR delivery - remote `a` / `R` uses the same human actor/evidence UX - canonical metadata repair/decision is delegated to `auto-research-metadata` - verifies reviewed blob/content against the current branch head - shows the approval preview - rechecks branch head and blob/content immediately before delivery - creates an approval-only branch and `[skip ci]` commit - opens an approval PR - defaults to expected-head guarded immediate rebase merge, matching the old dashboard behavior - can leave the approval PR open instead via configuration ### Migration / tests - documents the GitHub adapter and new async backend contract - marks the old dotfile remote discovery/delivery boundary as ported - adds ERT coverage for async external dashboard items, GitHub candidate filtering, pending items, and legacy opt-in behavior - adds PR/push GitHub Actions to run `make test` with Emacs ## Migration consequence Once this PR is green and the dotfiles load `auto-research` + `(auto-research-github-enable)`, the old `research-dashboard.el` implementation no longer owns unique reusable behavior and can be removed instead of kept as a compatibility fork.
Sign in to join this conversation.
No description provided.