Skip to content

chore(selfhost): investigate duplicate check-run surfaces in one-shot review mode #2691

Description

@JSONbored

Context

Sub-issue of #1936 (beta-stable release readiness roadmap) — self-host optimization/cleanup item.

Problem

The self-hosted review stack posts two GitHub check-run surfaces on a PR:

  1. Gittensory Orb Review Agent — required check, the actual review/gate result (merge/close/block decision).
  2. Gittensory Context — a neutral/advisory check controlled by checkRunMode, posting "Gittensory context posted."

Live observation: setting check_run_mode=enabled (with dry-run disabled) causes Gittensory Context
to appear alongside the Orb Review Agent check. Audit metadata shows publishedOutputs containing both
gate_check_run and check_run. Gittensory Context isn't required by branch protection, but in a
one-shot review model (a PR should clearly merge/close/block through the single required Orb Review
Agent check) it reads as redundant CI noise that may confuse maintainers/contributors.

Relevant code paths

  • Check names: src/review/check-names.ts (GITTENSORY_CONTEXT_CHECK_NAME, GITTENSORY_GATE_CHECK_NAME)
  • Context check publisher: src/github/app.ts (createOrUpdateCheckRun())
  • Context check output copy: src/rules/advisory.ts ("Gittensory context posted")
  • Public surface publish path: src/queue/processors.ts (publishedOutputs.push("check_run") vs. "gate_check_run")
  • Settings: checkRunMode (Context check) vs. gateCheckMode (Orb Review Agent gate check)

Questions to answer (analysis first, no code changes until understood)

  1. What unique information does Gittensory Context provide that isn't already in the Orb Review
    Agent check output, the unified review comment, or the maintainer dashboard?
  2. Is Gittensory Context legacy/advisory-era behavior that should default OFF for self-host
    one-shot review mode?
  3. Should checkRunMode default to off everywhere, especially for self-host/orb one-shot mode?
  4. Should enabling gateCheckMode automatically suppress Gittensory Context unless explicitly requested?
  5. Should Gittensory Context be deprecated, folded into the Orb Review Agent output, or left as
    opt-in only?
  6. Do any branch-protection rules, permissions, onboarding flows, dashboard views, or existing
    tests rely on Gittensory Context existing?
  7. Do current docs/config examples accidentally encourage enabling both checks?

Expected direction (pending investigation)

For one-shot self-host review mode, prefer a single public check surface: keep
Gittensory Orb Review Agent, suppress Gittensory Context by default, and leave it available only
as an advanced opt-in if a real use case for it turns up. Any implementation must stay generic (no
hardcoded maintainer/repo identity), must not weaken gate finalization, and must not silently break
an existing install that explicitly enabled checkRunMode without a documented migration/defaulting
plan — plus updated docs/examples/private-config templates and tests covering both check-mode
combinations.

Findings from the investigation will be posted as a comment on this issue before any implementation PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainer-onlyOwner-only work — yields no Gittensor points.orbGittensory Orb related - maintainer self-hosting analytics.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions