mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-16 10:50:38 +09:00
## Thinking Path > - Paperclip orchestrates AI agents for zero-human companies. > - Operators use issue detail pages and child issue lists to understand multi-step execution plans. > - Ordered sub-issues currently read like a flat table, so dependency chains and current next steps are harder to scan. > - The branch work adds a workflow-oriented presentation for child issues without changing the single-assignee task model. > - This pull request makes ordered sub-issues read more like a progress checklist while preserving normal issue list controls. > - The benefit is that operators can see completed steps, active work, blocked follow-ups, and dependency order at a glance. ## What Changed - Added workflow sorting utilities and tests for dependency-aware child issue ordering. - Added sub-issue progress summary, checklist numbering, current-step affordances, blocker context, and done-state de-emphasis in the issue list UI. - Wired issue detail sub-issue panels to use the workflow sort/progress checklist presentation. - Updated issue service behavior/tests for child issue ordering inputs used by the UI. - Added a Storybook visual review fixture and screenshot helper for the sub-issue workflow checklist surface. ## Verification - `pnpm run preflight:workspace-links && pnpm exec vitest run server/src/__tests__/issues-service.test.ts ui/src/components/IssueRow.test.tsx ui/src/components/IssuesList.test.tsx ui/src/pages/IssueDetail.test.tsx ui/src/lib/issue-detail-subissues.test.ts ui/src/lib/workflow-sort.test.ts` - Result: 6 test files passed, 55 tests passed, 34 embedded Postgres issue-service tests skipped because `@embedded-postgres/darwin-x64` is unavailable on this host. - Visual review: generated Storybook screenshots from the existing local Storybook server on port 6006 with `node scripts/screenshot-subissues.mjs /tmp/pap-2189-subissues-screens http://localhost:6006`. - Screenshot artifacts: - Desktop dark:  - Desktop light:  - Mobile dark:  - Mobile light:  - Local Storybook note: starting a second Storybook process selected port 6008 because 6006 was occupied, then Vite failed with an esbuild host/binary version mismatch (`0.25.12` host vs `0.27.3` binary). The already-running Storybook server on 6006 served the fixture successfully for screenshots. ## Risks - Medium UI risk: the issue list now has additional sub-issue-specific visual states, so dense lists should be checked for spacing and scanability. - Low ordering risk: workflow sorting is covered by focused unit tests, but unusual dependency topologies may still need reviewer attention. - No migration risk: this PR does not add database migrations or touch `pnpm-lock.yaml`. > For core feature work, check [`ROADMAP.md`](ROADMAP.md) first and discuss it in `#dev` before opening the PR. Feature PRs that overlap with planned core work may need to be redirected — check the roadmap first. See `CONTRIBUTING.md`. ## Model Used - OpenAI Codex, GPT-5 coding agent, tool-enabled shell/git/GitHub workflow. Context window is runtime-provided and not exposed in this environment. ## 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 checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have run tests locally and they pass - [x] I have added or updated tests where applicable - [x] If this change affects the UI, I have included before/after screenshots - [x] 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> |
||
|---|---|---|
| .. | ||
| Activity.tsx | ||
| AdapterManager.tsx | ||
| AgentDetail.tsx | ||
| Agents.tsx | ||
| ApprovalDetail.tsx | ||
| Approvals.tsx | ||
| Auth.tsx | ||
| BoardClaim.tsx | ||
| CliAuth.tsx | ||
| Companies.tsx | ||
| CompanyAccess.test.tsx | ||
| CompanyAccess.tsx | ||
| CompanyExport.tsx | ||
| CompanyImport.tsx | ||
| CompanyInvites.test.tsx | ||
| CompanyInvites.tsx | ||
| CompanySettings.test.tsx | ||
| CompanySettings.tsx | ||
| CompanySkills.tsx | ||
| Costs.tsx | ||
| Dashboard.tsx | ||
| DashboardLive.tsx | ||
| DesignGuide.tsx | ||
| ExecutionWorkspaceDetail.tsx | ||
| GoalDetail.test.tsx | ||
| GoalDetail.tsx | ||
| Goals.tsx | ||
| Inbox.test.tsx | ||
| Inbox.tsx | ||
| InstanceAccess.tsx | ||
| InstanceExperimentalSettings.tsx | ||
| InstanceGeneralSettings.tsx | ||
| InstanceSettings.tsx | ||
| InviteLanding.test.tsx | ||
| InviteLanding.tsx | ||
| InviteUxLab.test.tsx | ||
| InviteUxLab.tsx | ||
| IssueChatUxLab.tsx | ||
| IssueDetail.test.tsx | ||
| IssueDetail.tsx | ||
| Issues.test.tsx | ||
| Issues.tsx | ||
| JoinRequestQueue.tsx | ||
| MyIssues.tsx | ||
| NewAgent.tsx | ||
| NotFound.tsx | ||
| Org.tsx | ||
| OrgChart.test.tsx | ||
| OrgChart.tsx | ||
| PluginManager.tsx | ||
| PluginPage.tsx | ||
| PluginSettings.tsx | ||
| ProfileSettings.test.tsx | ||
| ProfileSettings.tsx | ||
| ProjectDetail.tsx | ||
| Projects.tsx | ||
| ProjectWorkspaceDetail.tsx | ||
| RoutineDetail.tsx | ||
| Routines.test.tsx | ||
| Routines.tsx | ||
| RunTranscriptUxLab.tsx | ||
| UserProfile.tsx | ||
| Workspaces.tsx | ||