Skip to content

Improve developer forge extension surfaces - #279

Draft
rawkode wants to merge 216 commits into
mainfrom
codex/github-like-ui-iteration
Draft

Improve developer forge extension surfaces#279
rawkode wants to merge 216 commits into
mainfrom
codex/github-like-ui-iteration

Conversation

@rawkode

@rawkoderawkode commented Jun 19, 2026

Copy link
Copy Markdown
Member

Summary

  • Makes the forge shell feel more familiar to developers across workspace and repository surfaces: README/Code, Actions, Releases, Config, Issues, Pull requests, Checks, Epics, Kanban/Sprints, Specs/PRDs, BDD Scenarios, and project drilldowns.
  • Keeps work navigation scoped correctly for a single-tenant user/org forge, including repo-embedded extension routes, project filters, create flows, command palette results, recents, and mobile Work navigation.
  • Adds a shared SDK issue aggregation helper that reads workspace issues through repository-scoped extension installations, treats repos without Issues as empty, and coalesces concurrent repo reads.
  • Wires that aggregation into Workspace Home, Inbox, Project Home, Project counts, and command palette issue search so those surfaces no longer depend on the bare workspace list-issues path.
  • Labels the desktop icon rail with real accessible names and aria-current state, while keeping the route matching in a typed, tested helper.
  • Connects the top-level /repos index to the shared authenticated GraphQL client, restores imported repository rows, and adds a path/name/group finder.
  • Adds an Epics roadmap quick filter that shares the existing queue query syntax through q, is:, project:, owner:, label:, priority:, milestone:, and target: filters, keeps keyboard focus scoped to visible cards, and improves board/card/progress accessibility labels.
  • Adds a Kanban/Sprints board filter that syncs through q, supports is:, project:, sprint:, issue:, and free-text searches, applies filtered counts across lifecycle, selected sprint issues, and project swimlanes, and adds accessible card labels.
  • Adds a Specs workbench filter that syncs through q, supports type:, project:, owner:, status:/is:, tag:, path:, feature:, and free-text searches, filters both active board cards and the detailed PRD/ADR/BDD catalog, and keeps mobile toolbar layout tight.
  • Adds an Issues board filter that syncs through q, supports is:/state:/status:, project:, assignee:, author:, label:, priority:, milestone:, workflow:, issue:, and free-text searches, filters active board cards locally, and keeps mobile toolbar layout tight.
  • Keeps extension-owned behavior behind WIT/backend operations and avoids adding new frontend /api/ops read surfaces where GraphQL can cover the same query.

Plan

  • Continue iterating on this draft PR as the product-focused single-tenant forge improves.
  • Keep shared shell behavior in SDK helpers where multiple surfaces need the same extension-backed data.
  • Keep UI changes verified in the in-app Browser before handoff; backend/API slices stay covered by focused checks plus the end-to-end smoke.

Validation

  • cd frontend && bun test packages/sdk-vue/src/workspace-issues.test.ts
  • cd frontend && bun test src/components/side-rail.test.ts
  • cd frontend && bun test src/routes/repos-list.test.ts
  • cd frontend && bun test ../extensions/first-party/ext_sprints/ui/src/kanban-filter.test.ts
  • cd frontend && bun test ../extensions/first-party/ext_docs/ui/src/docs-board-filter.test.ts
  • cd frontend && bun test ../extensions/first-party/ext_issues/ui/src/issue-board-filter.test.ts
  • extensions/bundler/build-extension.sh extensions/first-party/ext_epics
  • extensions/bundler/build-extension.sh extensions/first-party/ext_sprints
  • extensions/bundler/build-extension.sh extensions/first-party/ext_docs
  • extensions/bundler/build-extension.sh extensions/first-party/ext_issues
  • cd frontend && bun run typecheck
  • cd frontend && bun run build
  • cd frontend && bun test
  • git diff --check
  • ./start.sh --reset --oneshot
  • ./start.sh --reset

Browser Verification

  • In-app Browser fresh / verified Home renders Open issues 7, kernel project chips show 2 open issues, the rebuilt bundle has no current-bundle console errors, and there is no horizontal overflow.
  • In-app Browser /inbox verified 7 repo-backed issue rows, clicked the comtrya/comtrya repo chip, confirmed the repo query parameter and active chip, and saw no console errors or overflow.
  • In-app Browser /r/comtrya/comtrya/p/kernel verified Project Home renders 2 open issues, both kernel issue links, one done epic, and no console errors or overflow.
  • In-app Browser command palette search for first verified #1 first issue appears from the repository-backed issue list.
  • In-app Browser desktop side rail verified every icon-only route exposes an aria-label, Home starts with aria-current="page", clicking Repositories navigates to /repos, Repositories receives aria-current="page", and no console warnings/errors were emitted.
  • In-app Browser /repos verified 4 imported repositories render through the authenticated GraphQL client, the Find a repository control filters dog down to comtrya/dogfood, empty-search copy appears for no matches, and the route has no console warnings/errors or overflow.
  • In-app Browser /r/comtrya/dogfood/epics/board?q=project:kernel verified q preloads the board filter, the search input is present, the board narrows to child epic, New epic is the primary create action, and card/progress/board ARIA labels are present with no console warnings/errors.
  • In-app Browser locator fill on the Epics board verified typing is:done rawkode updates the URL to q=is%3Adone+rawkode, keeps only the matching epic visible, and the clear action returns the board to both epics and removes q.
  • In-app Browser mobile viewport 390x844 verified the Epics board toolbar wraps, the project:kernel filter remains usable, and page width stays within the viewport; remaining horizontal overflow is limited to intentional scroll regions and the existing clone command.
  • In-app Browser desktop /r/comtrya/dogfood/sprints verified the new Kanban filter input, project:kernel URL sync, filtered summary 0/1 sprints | 0/1 issues | 1/1 cards, matching Kanban card visibility, clear action, no console warnings/errors, and no desktop overflow.
  • In-app Browser mobile viewport 390x820 verified /r/comtrya/dogfood/sprints?q=first%20issue preloads the filter, keeps the input and summary usable, shows the matching issue/card content, and keeps document width inside the viewport; the only reported overflow is the existing repository clone command outside the extension.
  • In-app Browser desktop /r/comtrya/dogfood/docs?q=type%3Ascenario verified q preloads the Specs workbench filter, summary reads 1/9 specs | 1/3 projects, the active board and catalog narrow to the BDD scenario, and there are no console warnings/errors or desktop overflow.
  • In-app Browser locator fill on the Specs workbench verified typing owner:platform docs updates the URL to q=owner%3Aplatform+docs, narrows the catalog to 3/9 specs | 1/3 projects, and Clear restores all 9 specs while removing q.
  • In-app Browser mobile viewport 390x820 verified /r/comtrya/dogfood/docs/scenarios?q=bdd preloads the filter, keeps input/Clear/summary stacked tightly, shows the matching BDD scenario board card, keeps document width inside the viewport, and emits no console warnings/errors.
  • In-app Browser desktop /r/comtrya/comtrya/issues/board?q=label%3Akind%3A%3Abug verified q preloads the Issues board filter, summary reads 1/9 issues, subtitle reads 1 of 9 issues on workflow, only #2 second issue is visible, Clear restores all 9 cards and removes q, and there are no console warnings/errors or overflow.
  • In-app Browser mobile viewport 390x820 verified /r/comtrya/comtrya/issues/board?q=project%3Akernel preloads the filter, keeps input/Clear/summary stacked tightly, shows 2/9 issues and two matching cards with #1 first issue first, keeps document width inside the viewport, and emits no console warnings/errors.

Notes

  • This PR remains draft because the requested improvement loop is still active.
  • The in-app Browser control path is working and was used for the latest rendered UI verification.

@rawkoderawkode changed the title Make the UI more GitHub-likeMake repository chrome more GitHub-likeJun 19, 2026
@rawkoderawkode changed the title Make repository chrome more GitHub-likeMake repository surfaces more GitHub-likeJun 19, 2026
@rawkoderawkode changed the title Make repository surfaces more GitHub-likeImprove developer forge extension surfacesJun 21, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rawkode@github-advanced-security