Skip to content

Link Issues to threads and start a thread from an Issue #28

Description

@lukemaj

Parent

#25

Outcome

Threads and Issues are linked, the user sees a thread's Issues next to its PRs, and can start a linked thread from an Issue.

Acceptance criteria

  • Links come from: manual link and unlink in the thread's right panel, a link_issue / unlink_issue MCP tool mirroring link_pull_request, task branch name <type>/<number>-<slug> in the project's repository, and closing references (Closes #N) of the thread's linked PRs.
  • Only non-derivable links are stored, in fork-owned table fork_thread_issue_links created by the fork in the existing database, outside upstream migrations and the event log. Derived links are computed when read. Stored links survive a server restart.
  • The thread's right panel shows linked Issues the way it shows PRs, each removable; clients update when links change.
  • An API returns the threads linked to an Issue (used by Issue rows and the status in C).
  • "Start thread" on an Issue creates a thread in the project matching the Issue's repository, with the project's usual worktree mode, linked immediately, composer prefilled with title, URL and body, not sent. Disabled with a reason when no project matches.
  • Upstream tables, migrations and events unchanged; every upstream-file edit is in scripts/fork-upstream-edits.txt and docs/fork-features.md.

Non-goals

Blocked by

None

Required proof

  • Server tests for manual, MCP, branch-derived and closing-reference links, unlink, and restart persistence; real gh where GitHub is read (no fake CLI).
  • Targeted lint and typecheck; scripts/fork-check.sh; independent review of the exact head.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions