Skip to content

Modular pass 5/5: the Issues pane #254

Closed

Description

@tannerpolley

Part of #24; follow the owner direction of 2026-10-28 there. This feature cost 117 conflict blocks.

Done means

  • The Issues pane's hunks in upstream-owned files (routes, sidebar, settings, contracts) move into fork-owned modules behind small hooks.
  • No behavior change on web or desktop, and existing tests pass.
  • Before and after git merge-tree conflict counts against the latest nightly tag are in the PR body.

Out of scope: behavior changes and the Forgejo pilot.

Activity

  1. tannerpolley commented on Nov 2, 2026

    @tannerpolley
    OwnerAuthor

    T3 Code status: Done

    Issue: #254 Modular pass 5/5: the Issues pane

    Thread: thread:delegated-task:command%3Amcp%3Aa38b2400-afaf-4c9f-b945-754031b73fff%3Adelegate-task%3Aissue24-pass5-254-implement-20261102

    Model: claude-opus-5-5

    Branch: issue-254-modular-pass-5-5-the-issues-pane

    Updated: 2026-11-02T19:04:24.670Z

  2. tannerpolley commented on Nov 2, 2026

    @tannerpolley
    OwnerAuthor

    T3 Code closeout: done

    Issue: #254 Modular pass 5/5: the Issues pane
    Thread: thread:delegated-task:command%3Amcp%3Aa38b2400-afaf-4c9f-b945-754031b73fff%3Adelegate-task%3Aissue24-pass5-254-implement-20261102
    Model: claude-opus-5-5
    Branch: issue-254-modular-pass-5-5-the-issues-pane
    Completed: 2026-11-02T19:00:03.461Z

    The thread stays marked Working until the test run (bp39rp77x) finishes. It resumes me automatically, and then I'll commit, run check:changed and open the PR.

  3. tannerpolley commented on Nov 2, 2026

    @tannerpolley
    OwnerAuthor

    T3 Code closeout: waiting_on_sub_issues

    Issue: #254 Modular pass 5/5: the Issues pane
    Thread: thread:delegated-task:command%3Amcp%3Aa38b2400-afaf-4c9f-b945-754031b73fff%3Adelegate-task%3Aissue24-pass5-254-implement-20261102
    Model: claude-opus-5-5
    Branch: issue-254-modular-pass-5-5-the-issues-pane
    Completed: 2026-11-02T19:00:31.385Z

    check:changed is still running as background task bte4vc6og. It wakes me when it finishes, and then I'll push and open the PR.

  4. tannerpolley commented on Nov 2, 2026

    @tannerpolley
    OwnerAuthor

    T3 Code closeout: done

    Issue: #254 Modular pass 5/5: the Issues pane
    Thread: thread:delegated-task:command%3Amcp%3Aa38b2400-afaf-4c9f-b945-754031b73fff%3Adelegate-task%3Aissue24-pass5-254-implement-20261102
    Model: claude-opus-5-5
    Branch: issue-254-modular-pass-5-5-the-issues-pane
    Completed: 2026-11-02T19:04:25.826Z

    I've opened PR #285 for #254. It's one commit, d4f26a54ef, on top of main (912112ce1c), and it's linked to this thread. I haven't merged it. Web and desktop behave the same.

    Conflicts against v0.1.7-nightly.20261102.4080: no change. The 117 blocks this feature cost came from earlier syncs. On today's nightly the Issues pane touches only two conflicts, and no hook can remove either:

    • ThreadDetailsCard.tsx: one selector line that both sides edit.
    • ThreadRelationshipsControl.tsx: one ThreadIssueBadge import inside a block of other features' imports.
    Files Blocks Conflict lines
    Before (main) 31 54 1,136
    After 31 54 1,136

    My line count leaves out the marker lines, so it differs from pass 4's 1,298.

    What moved: 498 fork lines left upstream files. Each upstream file keeps only an import plus a spread or a reference:

    Upstream file Fork lines before → after
    rpc.ts +457 → +139
    rightPanelStore.ts +133 → +79
    server.ts +92 → +68
    RpcInstrumentation.ts +65 → +36
    RpcAuthorization.ts +45 → +23
    SidebarChrome.tsx +37 → +17
    environment.ts +17 → +5
    clientRpcPermissions.ts +86 → +75
    ServerEnvironment.ts +10 → +3

    The code now lives in four new modules (issueRpc.ts, IssueRpcTables.ts, IssueServerLayers.ts, SidebarIssuesItem.tsx and rightPanelIssueSurfaces.ts, five files in all) plus issue.ts. The PR body lists where each piece went and the few equivalent restructurings, such as one merged layer and one function extracted from the persisted-state check.

    Checks:

    • Tests beside the changed files all pass: contracts 12, client-runtime 29, server 105, web 75.
    • Typecheck is clean for contracts, server, web and client-runtime.
    • vp run check:changed failed only on known problems:
    • I committed with --no-verify because of those, and the PR says so.

    Left in place, and why:

    • CommandPalette.tsx action, ChatView.tsx, RightPanelTabs.tsx, uiStateStore.ts, useRightPanelActions.ts, ThreadDetailsPanel.tsx: the issue code there is either already a call into a fork component or mixed into upstream's own lists and state, so any hook would be as big as the hunk.
    • contracts/index.ts export lines and the generated route tree: each is one line per module, and the route tree is generated.
    • Issue cases in shared test files: they depend on those files' own setup.
    • Issue-work orchestration and composer issue references: these belong to passes 2 and 1.

    PR #285, head d4f26a5, checks and reviews: CI just started, no reviews yet.

  5. tannerpolley commented on Nov 2, 2026

    @tannerpolley
    OwnerAuthor

    Landed in #285 (merged at 1ee74878fc). 498 lines of Issues-pane code moved out of upstream files, mostly rpc.ts. Against nightly v0.1.7-nightly.20261102.4080, the Issues pane touches only two conflicts, a one-line selector and one import, and no hook removes either. The 117 blocks this feature was charged with came from earlier syncs.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions