Skip to content

[Feature] GitHub Issues panel with milestone grouping #4

Description

@tannerpolley

Scope boundary

This is the canonical implementation issue for the actual in-app GitHub Issues feature in T3-Code.

It is intentionally separate from the repository-maintenance issues that track changes to the personal fork:

Do not use this issue to track generic T3-Code bugs, sidebar work, branch configuration, or other fork housekeeping. Do not duplicate this feature specification in those issues.

No upstream pull request is requested. This feature is for the tannerpolley/t3code fork.

Goal

Add a repository-scoped GitHub Issues experience that complements the existing Pull Requests UI and is useful from the active T3-Code project/thread context.

The desired interaction is similar to Anchor's repository issue view where issues are organized by milestone, with a clear group for issues that have no milestone.

Required behavior

Entry point and layout

  • Reuse the existing GitHub/source-control authentication and the existing Pull Requests navigation/panel conventions.
  • Add an Issues entry point in the corresponding existing T3-Code UI rather than creating a second navigation system.
  • Keep the list/detail experience in the same panel and thread/project context used by the Pull Requests surface where possible.
  • Preserve the current project/thread organization model; the Issues view must not change sidebar grouping or project filtering.

Repository and scope

  • Resolve the GitHub repository from the selected environment/project/thread using the same source-control boundaries as Pull Requests.
  • Do not display issues from an unrelated repository or silently fall back to a global account-wide list.
  • Reuse the existing GitHub credential and capability checks.
  • If the repository cannot be resolved, credentials are missing, or the GitHub capability is unavailable, show an honest actionable unavailable state.

List view

  • Fetch and display repository issues using the existing GitHub integration patterns.
  • Group issues by milestone.
  • Provide a clearly named No Milestone group.
  • Preserve useful milestone ordering and stable issue ordering within each group.
  • Show enough issue metadata to scan the list, including title, number, state, labels, assignee information when available, and milestone.
  • Handle loading, empty, inaccessible, rate-limited, and upstream-error states explicitly.
  • Respect the repository's issue state and pagination behavior rather than assuming a small fixed result set.

Detail view

  • Open an issue detail view without losing the current project/thread context.
  • Display the issue title, number, state, body, labels, milestone, assignees, timestamps, and web URL when available.
  • Provide a reliable return path to the grouped list.
  • Link to the canonical GitHub issue for actions or information that the local view does not support.
  • Keep read-only behavior as the default unless existing GitHub mutation patterns and authorization are deliberately extended in a separate, explicit scope.

Implementation constraints

  • Reuse the existing Pull Requests data-access, authentication, error, and panel patterns.
  • Do not create a second GitHub credential store, repository resolver, or navigation framework.
  • Keep GitHub issue state separate from T3 project/section/thread state.
  • Keep the first implementation read-only and repository-scoped.
  • Preserve compatibility with repositories that have no milestones or no issues.
  • Add focused tests for grouping, ordering, repository scoping, missing capability/credentials, empty results, and error states.
  • Do not modify provider prompts or create synthetic T3 threads to represent GitHub issues.

Acceptance criteria

  • From a supported project/thread with a resolvable GitHub repository, the user can open Issues next to the existing Pull Requests experience.
  • Issues are grouped by milestone in a stable, understandable order.
  • Issues without a milestone appear under No Milestone.
  • Selecting an issue opens its details and returning restores the grouped list.
  • The feature uses the selected repository only and does not leak issues from another project/repository.
  • Missing credentials, unsupported capability, inaccessible repositories, rate limits, empty repositories, and upstream failures each produce a clear non-crashing state.
  • Existing project sections, project expansion, activity filtering, thread navigation, and Pull Requests behavior remain unchanged.
  • Tests cover the grouping and the main unavailable/error paths.
  • The implementation remains local to the personal fork; no upstream PR is implied.

Explicit non-goals

  • No generic issue tracker or replacement for GitHub.
  • No issue creation, editing, commenting, assignment, or state mutation in this first slice.
  • No global cross-repository issue inbox.
  • No changes to custom sidebar sections, project filtering, worker/subagent visibility, or Git remote fetch behavior.
  • No /side, /btw, Baton Pass, or unrelated orchestration work.

Activity

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

    enhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions