Skip to content

docs(review): resolve the review.linked_issue_satisfaction / gate.linkedIssueSatisfaction phantom-field confusion #4149

Description

@JSONbored

Context

Found while auditing review-control wiring for #1681. There are two distinctly-named
linked-issue-satisfaction fields
, and only one of them does anything:

The near-identical names make it easy for a self-host operator to set the wrong one and get no error and
no effect.

Evidence

  • src/types.ts:761-769 explicitly documents the two as distinct: linkedIssueSatisfactionGateMode's
    doc comment says "Distinct from the config-as-code-only review.linkedIssueSatisfaction manifest field
    (feat(config): add review.linkedIssueSatisfaction config knob (off/advisory/block, default off) #2173) — this is the DB-backed, dashboard-settable gate-mode counterpart; .gittensory.yml gate.linkedIssueSatisfaction overrides it exactly like every other gate: field."
  • Every real consumer in src/queue/processors.ts (e.g. :6638, :7949, :8978) reads
    settings.linkedIssueSatisfactionGateMode — none reads manifest.review.linkedIssueSatisfaction.
  • resolveReviewPromptOverrides (src/signals/focus-manifest.ts:250), the resolver every other
    review.* prompt/display field flows through, does not include linkedIssueSatisfaction in its
    returned shape at all.
  • Re-verified against current main (post-feat(review): wire linked-issue satisfaction into the deterministic gate #4069): that PR wired gate.linkedIssueSatisfaction deeper
    into the deterministic gate, but did not touch the separate review.linkedIssueSatisfaction manifest
    field.

The ask

Pick one:

  1. Fold it in as an alias: treat review.linkedIssueSatisfaction as a settings-layer alias for
    gate.linkedIssueSatisfaction, following the same gate: > settings: precedence pattern already
    used for every other typed gate.* alias (see applyGateConfigOverrides in
    src/signals/focus-manifest.ts), so setting either spelling has the same real effect.
  2. Remove the phantom field: drop review.linkedIssueSatisfaction from the manifest schema/parser
    and docs so there is exactly one place (gate.linkedIssueSatisfaction) to set this, removing the
    confusable near-duplicate.

Not presuming which — flagging so a maintainer can decide.

Related

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions