Skip to content

fix(harness-ops): accept a title-matched lane telemetry issue only when the lane's write identity authored it #11119

Closed

Description

@kyle-sexton

Refs: #7207

Agent Brief

Type: Bug
Summary: A lane's telemetry issue resolved by title is accepted only when its author is the lane's write identity, so an outside account cannot capture the telemetry home by opening an issue with the same title.

Current behavior:

Desired behavior:

  • Title-based resolution keeps only issues whose author is the lane's write identity: for restart-consumer, the lane's authorized author (the gh-authenticated login, or the lane's telemetry.author, as lane-launcher.sh around :1305-1338 already resolves it); for work-loop, babysit-loop and attend-queue, the write identity their telemetry upsert scripts resolve (gh api user, else <app-slug>[bot]).
  • A title match by any other author is skipped and named in the run's output; when no match by the write identity is left, the lane behaves as it does today with no issue (create one, or report none).

Done when

  • restart-consumer.sh's title resolver selects only an issue authored by the lane's authorized author.
  • restart-consumer.test.sh gains a case where a lower-numbered, exact-title issue by a foreign author and a higher-numbered one by the write identity are both open: the write identity's issue is selected and the foreign one never is. A second case with only the foreign issue resolves to no issue.
  • The telemetry-home paragraphs in work-loop, babysit-loop and attend-queue SKILL.md require the title-matched issue's author to be the lane's write identity, and say what the lane does with a foreign match.
  • The test files touched pass under scripts/run-test-file.sh.
  • scripts/check-changelog-fragments.sh passes with a fragment for each plugin changed.

Out of scope:

  • A telemetry issue pinned by number in lane config (lanes[].telemetry.issue): the operator chose it.
  • Triage's lane-infrastructure exclusion in plugins/work-items/skills/triage/SKILL.md.
  • The write-identity resolution order itself.

Activity

  1. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    area: securitySecurity-relevant: vulnerability, hardening, or disclosure follow-up.
    on Oct 30, 2026
  2. github-actions commented on Oct 30, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Medium
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: a lane's telemetry issue found by title should be accepted only if the lane's write identity authored it. Today any account can open an issue with the same title and take over the telemetry home. The fix covers the restart-consumer resolver, new tests for the foreign-author and write-identity cases, and the work-loop, babysit-loop and attend-queue skill text. Each changed plugin also needs a changelog fragment.

    The brief is specific, and the done-when items can all be checked in a lane run. I found no likely duplicates among the open issues. This is a hardening fix, so I'm treating it as ordinary work and not as a report of an unfixed high-severity hole.

    Automated triage, applied by the lanes App.

  3. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 30, 2026
  4. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.area: securitySecurity-relevant: vulnerability, hardening, or disclosure follow-up.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions