paperclip/ui/src/components
Dotta 6e6f538630
[codex] Improve issue detail and issue-list UX (#3678)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies
> - A core part of that is the operator experience around reading issue
state, agent chat, and sub-task structure
> - The current branch had a long run of issue-detail and issue-list UX
fixes that all improve how humans follow and steer active work
> - Those changes mostly live in the UI/chat surface and should be
reviewed together instead of mixed with workspace/runtime work
> - This pull request packages the issue-detail, chat, markdown, and
sub-issue list improvements into one standalone change
> - The benefit is a cleaner, less jumpy, more reliable issue workflow
on desktop and mobile without coupling it to unrelated server/runtime
refactors

## What Changed

- Stabilized issue chat runtime wiring, optimistic comment handling,
queued-comment cancellation, and composer anchoring during live updates
- Fixed several issue-detail rendering and navigation regressions
including placeholder bleed, local polling scope, mobile inbox-to-issue
transitions, and visible refresh resets
- Improved markdown and rich-content handling with advisory image
normalization, editor fallback behavior, touch mention recovery, and
`issue:` quicklook links
- Refined sub-issue behavior with parent-derived defaults, current-user
inheritance fixes, empty-state cleanup, and a reusable issue-list
presentation for sub-issues
- Added targeted UI tests for the new issue-detail, chat scroll/message,
placeholder-data, markdown, and issue-list behaviors

## Verification

- `pnpm vitest run ui/src/components/IssueChatThread.test.tsx
ui/src/components/MarkdownEditor.test.tsx
ui/src/components/IssuesList.test.tsx
ui/src/context/LiveUpdatesProvider.test.tsx
ui/src/lib/issue-chat-messages.test.ts
ui/src/lib/issue-chat-scroll.test.ts
ui/src/lib/issue-detail-subissues.test.ts
ui/src/lib/query-placeholder-data.test.tsx
ui/src/hooks/usePaperclipIssueRuntime.test.tsx`

## Risks

- Medium: this branch touches the highest-traffic issue-detail UI paths,
so regressions would show up as chat/thread or sub-issue UX glitches
- The changes are UI-heavy and would benefit from reviewer screenshots
or a quick manual browser pass before merge

## Model Used

- OpenAI Codex coding agent (GPT-5-class runtime in Codex CLI; exact
deployed model ID is not exposed in this environment), reasoning
enabled, tool use and local code execution enabled

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [ ] If this change affects the UI, I have included before/after
screenshots
- [ ] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-04-14 12:50:48 -05:00
..
transcript Refine issue workflow surfaces and live updates 2026-04-09 10:26:17 -05:00
ui fix(ui): avoid issue detail ref update loops 2026-04-09 06:18:05 -05:00
AccountingModelCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
ActiveAgentsPanel.tsx Refine issue workflow surfaces and live updates 2026-04-09 10:26:17 -05:00
ActivityCharts.tsx refactor: rename packages to @paperclipai and CLI binary to paperclipai 2026-03-03 08:45:26 -06:00
ActivityRow.tsx Track blocker and review activity events 2026-04-09 06:16:41 -05:00
agent-config-defaults.ts feat(codex-local): add fast mode support 2026-04-11 08:21:55 -05:00
agent-config-primitives.tsx feat(codex-local): add fast mode support 2026-04-11 08:21:55 -05:00
AgentActionButtons.tsx Redesign routines UI to match issue page design language 2026-03-19 15:05:32 -05:00
AgentConfigForm.tsx fix(ui): persist cleared agent env bindings on save 2026-04-09 17:50:14 +00:00
AgentIconPicker.tsx Fix markdown mention chips 2026-03-23 16:57:27 -05:00
AgentProperties.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
ApprovalCard.tsx Polish board approval card styling 2026-04-06 21:24:44 -05:00
ApprovalPayload.test.tsx Polish board approval card styling 2026-04-06 21:24:44 -05:00
ApprovalPayload.tsx Polish board approval card styling 2026-04-06 21:24:44 -05:00
AsciiArtAnimation.tsx feat(ui): reconcile backup UI changes with current routing and interaction features 2026-03-02 16:44:03 -06:00
BillerSpendCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
BreadcrumbBar.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
BudgetIncidentCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
BudgetPolicyCard.tsx Add budget tabs and sidebar budget indicators 2026-03-16 15:11:01 -05:00
BudgetSidebarMarker.tsx Add budget tabs and sidebar budget indicators 2026-03-16 15:11:01 -05:00
ClaudeSubscriptionPanel.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
CodexSubscriptionPanel.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
CommandPalette.test.tsx Broaden comment matches in issue search 2026-04-11 08:26:09 -05:00
CommandPalette.tsx Broaden comment matches in issue search 2026-04-11 08:26:09 -05:00
CommentThread.test.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
CommentThread.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
CompanyPatternIcon.tsx Add support for company logos, including schema adjustments, validation, assets handling, and UI display enhancements. 2026-03-06 16:39:35 -05:00
CompanyRail.tsx Restrict sidebar reordering to mouse input 2026-03-29 10:57:34 -05:00
CompanySwitcher.tsx feat(ui): reconcile backup UI changes with current routing and interaction features 2026-03-02 16:44:03 -06:00
CopyText.tsx fix: copy button fallback for non-secure contexts (#2472) 2026-04-01 20:16:52 -07:00
DevRestartBanner.tsx fix: address greptile follow-up feedback 2026-03-20 13:18:29 -05:00
DocumentDiffModal.tsx refactor(ui): inline document diff rendering 2026-04-06 21:43:19 -05:00
EmptyState.tsx Polish UI components and rework AgentConfigForm 2026-02-18 10:43:25 -06:00
EntityRow.tsx feat(ui): reconcile backup UI changes with current routing and interaction features 2026-03-02 16:44:03 -06:00
EnvVarEditor.tsx Add project-level environment variables 2026-04-06 21:23:30 -05:00
ExecutionParticipantPicker.tsx Move reviewer/approver pickers to inline header pills 2026-04-07 17:43:10 -05:00
ExecutionWorkspaceCloseDialog.tsx Fix horizontal scroll overflow in close workspace modal 2026-04-04 17:48:54 -05:00
FilterBar.tsx Add shared UI primitives, contexts, and reusable components 2026-02-17 09:57:00 -06:00
FinanceBillerCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
FinanceKindCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
FinanceTimelineCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
GoalProperties.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
GoalTree.tsx fix(ui): render sub-goals in goal detail tree 2026-03-04 20:20:21 -07:00
HermesIcon.tsx feat(hermes): upgrade hermes-paperclip-adapter + UI adapter + skills + detectModel 2026-03-28 01:34:48 +01:00
Identity.tsx Fix xs avatar alignment and dashboard task row layout 2026-02-20 11:35:59 -06:00
ImageGalleryModal.tsx fix(ui): polish issue detail timelines and attachments 2026-04-02 11:51:40 -05:00
InlineEditor.test.tsx fix: allow to remove project description (#2338) 2026-04-06 13:18:38 -07:00
InlineEditor.tsx Support dropping non-image files onto markdown editor as attachments 2026-04-06 21:24:12 -05:00
InlineEntitySelector.tsx Add draft routine defaults and run-time overrides 2026-04-09 10:19:52 -05:00
InstanceSidebar.tsx Refine issue workflow surfaces and live updates 2026-04-09 10:26:17 -05:00
IssueChatThread.test.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
IssueChatThread.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
IssueColumns.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
IssueDocumentsSection.test.tsx fix(ui): keep latest issue document revision current (#3342) 2026-04-10 17:14:06 -07:00
IssueDocumentsSection.tsx fix: address PR 3355 review regressions 2026-04-11 06:40:37 -05:00
IssueFiltersPopover.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
IssueLinkQuicklook.tsx Address Greptile navigation review 2026-04-12 21:30:50 -05:00
IssueProperties.test.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
IssueProperties.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
IssueRow.test.tsx Speed up issue-to-issue navigation 2026-04-12 21:14:12 -05:00
IssueRow.tsx Speed up issue-to-issue navigation 2026-04-12 21:14:12 -05:00
IssuesList.test.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
IssuesList.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
IssuesQuicklook.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
IssueWorkspaceCard.test.tsx Improve issue detail load stability 2026-04-09 06:21:14 -05:00
IssueWorkspaceCard.tsx Improve issue detail load stability 2026-04-09 06:21:14 -05:00
JsonSchemaForm.tsx Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
KanbanBoard.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
KeyboardShortcutsCheatsheet.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
Layout.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
LiveRunWidget.tsx Refine issue workflow surfaces and live updates 2026-04-09 10:26:17 -05:00
MarkdownBody.test.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
MarkdownBody.tsx fix: address PR 3355 review regressions 2026-04-11 06:40:37 -05:00
MarkdownEditor.test.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
MarkdownEditor.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
MetricCard.tsx ui: apply interface polish from design article review 2026-03-11 08:20:24 -05:00
MobileBottomNav.tsx Refine issue workflow surfaces and live updates 2026-04-09 10:26:17 -05:00
NewAgentDialog.tsx feat(adapters): external adapter plugin system with dynamic UI parser 2026-04-03 21:11:20 +01:00
NewGoalDialog.tsx fix(ui): make goal description area scrollable in create dialog 2026-04-03 23:19:50 +09:00
NewIssueDialog.test.tsx [codex] Improve issue detail and issue-list UX (#3678) 2026-04-14 12:50:48 -05:00
NewIssueDialog.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
NewProjectDialog.tsx refactor: rename URL validators to looksLikeRepoUrl 2026-04-01 23:21:22 +00:00
OnboardingWizard.tsx Disable timer heartbeats by default for new agents 2026-04-09 06:16:05 -05:00
OpenCodeLogoIcon.tsx Add OpenCode provider integration and strict model selection 2026-03-05 15:24:20 +01:00
OutputFeedbackButtons.tsx Refine issue chat activity and message chrome 2026-04-08 06:02:34 -05:00
PackageFileTree.tsx Add routine support to recurring task portability 2026-03-23 16:57:38 -05:00
PageSkeleton.tsx feat(ui): reconcile backup UI changes with current routing and interaction features 2026-03-02 16:44:03 -06:00
PageTabBar.tsx Refine project and agent configuration UI 2026-03-10 10:58:43 -05:00
PathInstructionsModal.tsx refactor(ui): extract ChoosePathButton into reusable PathInstructionsModal 2026-03-02 16:08:59 -06:00
PriorityIcon.tsx refactor(ui): standardize status/priority colors and improve text legibility 2026-02-23 19:52:43 -06:00
ProjectProperties.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
PropertiesPanel.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
ProviderQuotaCard.tsx feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
QuotaBar.tsx feat(ui): add resource and usage dashboard (/usage route) 2026-03-16 15:08:54 -05:00
ReportsToPicker.tsx refactor: improve layout and truncation in ReportsToPicker 2026-03-20 20:33:36 +00:00
RoutineRunVariablesDialog.test.tsx Add draft routine defaults and run-time overrides 2026-04-09 10:19:52 -05:00
RoutineRunVariablesDialog.tsx Add draft routine defaults and run-time overrides 2026-04-09 10:19:52 -05:00
RoutineVariablesEditor.tsx Support routine variables in titles 2026-04-09 06:16:05 -05:00
RunChatSurface.tsx Reuse chat-style run feed on dashboard 2026-04-08 06:02:34 -05:00
RunInvocationCard.test.tsx feat(adapters): external adapter plugin system with dynamic UI parser 2026-04-03 21:11:20 +01:00
ScheduleEditor.tsx Fix schedule time picker: cleaner hour labels, hide selectors for every-minute 2026-03-19 17:29:09 -05:00
ScrollToBottom.tsx Offset scroll-to-bottom button when properties panel is open 2026-04-06 21:24:44 -05:00
Sidebar.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
SidebarAgents.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
SidebarNavItem.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
SidebarProjects.tsx feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
SidebarSection.tsx Remove collapsible behavior from sidebar Work and Company sections 2026-02-20 15:08:03 -06:00
StatusBadge.tsx fix(ui): prevent status badge pills from wrapping text 2026-02-23 20:16:17 -06:00
StatusIcon.tsx refactor(ui): standardize status/priority colors and improve text legibility 2026-02-23 19:52:43 -06:00
SwipeToArchive.test.tsx Add dark mode inbox selection color 2026-03-30 14:14:14 -05:00
SwipeToArchive.tsx Add dark mode inbox selection color 2026-03-30 14:14:14 -05:00
ToastViewport.tsx feat(ui): reconcile backup UI changes with current routing and interaction features 2026-03-02 16:44:03 -06:00
WorktreeBanner.tsx Make worktree banner name clickable to copy to clipboard 2026-04-09 06:18:05 -05:00