diff --git a/config/scripts/ci-shard-timings.json b/config/scripts/ci-shard-timings.json index 150f8cc8c12..90e622503b7 100644 --- a/config/scripts/ci-shard-timings.json +++ b/config/scripts/ci-shard-timings.json @@ -9601,7 +9601,7 @@ "src/renderer/src/components/tab-group/useTabGroupTabCloseCommands.test.tsx": 1581, "src/renderer/src/components/tab-group/useTabGroupWorkspaceModel.focus.test.ts": 1412, "src/renderer/src/components/tab-group/workspace-tab-close-commands.floating-reclaim.test.ts": 1321, - "src/renderer/src/components/task-page-cache-selectors.test.ts": 76, + "src/renderer/src/components/task-page/task-page-cache-selectors.test.ts": 76, "src/renderer/src/components/task-page-checks-pill.test.ts": 45, "src/renderer/src/components/task-page-empty-state.test.ts": 106, "src/renderer/src/components/task-page-jira-board-detail-integration.test.tsx": 1526, @@ -9629,14 +9629,14 @@ "src/renderer/src/components/task-page-jira-text-fallback-notice.test.tsx": 375, "src/renderer/src/components/task-page-jira-workspace-actions.test.tsx": 1971, "src/renderer/src/components/task-page/task-page-list-chrome-visibility.test.ts": 33, - "src/renderer/src/components/task-page-localized-options.test.ts": 211, - "src/renderer/src/components/task-page-mutation-page-allocation.test.ts": 128, - "src/renderer/src/components/task-page-new-issue-draft.test.ts": 76, + "src/renderer/src/components/task-page/task-page-localized-options.test.ts": 211, + "src/renderer/src/components/task-page/task-page-mutation-page-allocation.test.ts": 128, + "src/renderer/src/components/task-page/task-page-new-issue-draft.test.ts": 76, "src/renderer/src/components/task-page/task-page-pr-check-summary.test.ts": 34, - "src/renderer/src/components/task-page-repo-source-context.test.ts": 407, - "src/renderer/src/components/task-page-repo-source-divergence.test.ts": 1043, - "src/renderer/src/components/task-page-task-source-host-availability.test.ts": 401, - "src/renderer/src/components/task-page-work-item-pagination.test.ts": 56, + "src/renderer/src/components/task-page/task-page-repo-source-context.test.ts": 407, + "src/renderer/src/components/task-page/task-page-repo-source-divergence.test.ts": 1043, + "src/renderer/src/components/task-page/task-page-task-source-host-availability.test.ts": 401, + "src/renderer/src/components/task-page/task-page-work-item-pagination.test.ts": 56, "src/renderer/src/components/task-page/github/rows-twin-host-routing.test.tsx": 1521, "src/renderer/src/components/task-page/github/task-page-github-dialog-state-authority.test.ts": 71, "src/renderer/src/components/task-page/github/task-page-github-list-scroll-restore.test.ts": 178, diff --git a/config/scripts/github-opened-issue-repository.test.ts b/config/scripts/github-opened-issue-repository.test.ts index c3a21044073..d701039b54d 100644 --- a/config/scripts/github-opened-issue-repository.test.ts +++ b/config/scripts/github-opened-issue-repository.test.ts @@ -74,8 +74,8 @@ import { runGHEditLabelToggle, runGHEditStateChange } from '../../src/renderer/src/components/github-item-dialog/edit-item-fields/gh-edit-section-mutations' -import { findTaskPageDialogWorkItem } from '../../src/renderer/src/components/task-page-cache-selectors' -import { getTaskPageRepoSourceContext } from '../../src/renderer/src/components/task-page-source-context' +import { findTaskPageDialogWorkItem } from '../../src/renderer/src/components/task-page/task-page-cache-selectors' +import { getTaskPageRepoSourceContext } from '../../src/renderer/src/components/task-page/task-page-source-context' import { workItemsCacheKey } from '../../src/renderer/src/store/github/cache-identity' import { createTestStore } from '../../src/renderer/src/store/slices/github-slice-test-harness' import { getTaskSourceCacheScope } from '../../src/shared/task-source-context' diff --git a/src/renderer/src/components/cmd-j/task-search-activation.ts b/src/renderer/src/components/cmd-j/task-search-activation.ts index f6a431327f0..7845eacaaec 100644 --- a/src/renderer/src/components/cmd-j/task-search-activation.ts +++ b/src/renderer/src/components/cmd-j/task-search-activation.ts @@ -18,7 +18,7 @@ import { type TaskSourceContext } from '../../../../shared/task-source-context' import type { CmdJTaskSearchResult } from './task-search-results' -import { getJiraIssueWorkspaceSeed } from '../task-page-source-context' +import { getJiraIssueWorkspaceSeed } from '../task-page/task-page-source-context' function sourceMatches(source: TaskSourceContext, target: TaskSourceContext): boolean { if (source.provider !== target.provider || source.hostId !== target.hostId) { diff --git a/src/renderer/src/components/cmd-j/task-search-requests.ts b/src/renderer/src/components/cmd-j/task-search-requests.ts index 1fdb31c322c..74c6dde97b8 100644 --- a/src/renderer/src/components/cmd-j/task-search-requests.ts +++ b/src/renderer/src/components/cmd-j/task-search-requests.ts @@ -21,7 +21,7 @@ import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { PaletteFilterState } from './palette-filter' import { getTaskEligibleRepos } from '../task-page/task-page-default-repo-selection' import { getRepoBackedProviderAvailability } from '../task-source-provider-availability' -import { getTaskPageRepoSourceContext } from '../task-page-source-context' +import { getTaskPageRepoSourceContext } from '../task-page/task-page-source-context' import { searchJiraIssuesByKeyOrText } from '../jira-key-or-text-search' import { bindTaskPageJiraItemSourceContext } from '../task-page-jira-item-source-context' import { makeCmdJTaskSearchResult, type CmdJTaskSearchResult } from './task-search-results' diff --git a/src/renderer/src/components/linear-issue-attribute-filter-pills.ts b/src/renderer/src/components/linear-issue-attribute-filter-pills.ts index 0af71d4de91..55fbfb5b6c5 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-pills.ts +++ b/src/renderer/src/components/linear-issue-attribute-filter-pills.ts @@ -4,7 +4,7 @@ import { canonicalizeLinearIssueAttributeFilter, type LinearIssueAttributeFilter } from '../../../shared/linear/issue-attribute-filter' -import { getLinearPriorityLabel } from './task-page-localized-options' +import { getLinearPriorityLabel } from './task-page/task-page-localized-options' import { isLinearMetadataGroupSelectionPartial } from './linear-issue-attribute-filter-team-ids' import type { LinearIssueFilterGroupedOption, diff --git a/src/renderer/src/components/linear-issue-attribute-filter-sections.tsx b/src/renderer/src/components/linear-issue-attribute-filter-sections.tsx index c2f60967cf1..3d2268be777 100644 --- a/src/renderer/src/components/linear-issue-attribute-filter-sections.tsx +++ b/src/renderer/src/components/linear-issue-attribute-filter-sections.tsx @@ -12,7 +12,7 @@ import { LINEAR_ISSUE_ATTRIBUTE_FILTER_MAX_STATE_IDS, type LinearIssueAttributeFilter } from '../../../shared/linear/issue-attribute-filter' -import { getLinearPriorityLabel } from './task-page-localized-options' +import { getLinearPriorityLabel } from './task-page/task-page-localized-options' import { LinearFacetCoverageNotice } from './linear-issue-attribute-filter-coverage-notice' import { expandLinearMetadataGroupKeys, diff --git a/src/renderer/src/components/task-page-jira-board-view.tsx b/src/renderer/src/components/task-page-jira-board-view.tsx index 745b9d1cae2..df8864013b2 100644 --- a/src/renderer/src/components/task-page-jira-board-view.tsx +++ b/src/renderer/src/components/task-page-jira-board-view.tsx @@ -16,7 +16,7 @@ import { TaskPageJiraBoard, jiraBoardIssueRefKey } from './task-page-jira-board' import type { TaskPageJiraBoardSection } from './task-page-jira-board-sections' import { JiraBoardMoveDialog, type JiraBoardMovePrompt } from './task-page-jira-board-move-dialog' import { applyJiraBoardMove, getJiraBoardMoveTransitions } from './task-page-jira-board-move' -import { formatRelativeTime } from './task-page-source-context' +import { formatRelativeTime } from './task-page/task-page-source-context' import { enqueueJiraIssueMutation, jiraIssueRequestScope } from './jira-issue-mutation-queue' type Props = { diff --git a/src/renderer/src/components/task-page/SourceBar.tsx b/src/renderer/src/components/task-page/SourceBar.tsx index 91321d50afd..4bd56e053a3 100644 --- a/src/renderer/src/components/task-page/SourceBar.tsx +++ b/src/renderer/src/components/task-page/SourceBar.tsx @@ -6,7 +6,7 @@ import { X, ExternalLink } from 'lucide-react' import { toast } from 'sonner' import { cn } from '@/lib/utils' import { LinearScopeSelector } from '@/components/linear-scope-selector' -import { getGitHubProjectSourceSummary } from '../task-page-source-context' +import { getGitHubProjectSourceSummary } from './task-page-source-context' import { Select, SelectTrigger, diff --git a/src/renderer/src/components/task-page/github/Filters.tsx b/src/renderer/src/components/task-page/github/Filters.tsx index 855d92718d9..49d650fdc12 100644 --- a/src/renderer/src/components/task-page/github/Filters.tsx +++ b/src/renderer/src/components/task-page/github/Filters.tsx @@ -1,5 +1,5 @@ import type { TaskPageComposerActionsModel } from '../use-task-page-composer-actions' -import { getGitHubTaskKindPresets } from '@/components/task-page-localized-options' +import { getGitHubTaskKindPresets } from '@/components/task-page/task-page-localized-options' import { cn } from '@/lib/utils' import PRFilterDropdowns from '@/components/github/PRFilterDropdowns' import { Search, X, Plus, LoaderCircle, RefreshCw } from 'lucide-react' @@ -7,11 +7,11 @@ import { Input } from '@/components/ui/input' import { translate } from '@/i18n/i18n' import { Tooltip, TooltipTrigger, TooltipContent } from '@/components/ui/tooltip' import { Button } from '@/components/ui/button' -import { resolveNewIssueOpenSeed } from '@/components/task-page-new-issue-draft' +import { resolveNewIssueOpenSeed } from '@/components/task-page/task-page-new-issue-draft' import { useAppStore } from '@/store' import { useShallow } from 'zustand/react/shallow' import { getGitHubRepoRoutingTarget } from '@/lib/github-source-runtime-context' -import { hasUpstreamCandidateDivergence, hasDivergentSources } from '../../task-page-draft-storage' +import { hasUpstreamCandidateDivergence, hasDivergentSources } from '../task-page-draft-storage' import IssueSourceIndicator from '@/components/github/IssueSourceIndicator' import IssueSourceSelector, { issueSourceChipClass } from '@/components/github/IssueSourceSelector' import RepoBadgeLabel from '@/components/repo/RepoBadgeLabel' diff --git a/src/renderer/src/components/task-page/github/IssueDialog.tsx b/src/renderer/src/components/task-page/github/IssueDialog.tsx index ed8724800e0..6b10c95e1d0 100644 --- a/src/renderer/src/components/task-page/github/IssueDialog.tsx +++ b/src/renderer/src/components/task-page/github/IssueDialog.tsx @@ -20,7 +20,7 @@ import { SelectContent, SelectItem } from '@/components/ui/select' -import { resolveUserRepoSwitchReset } from '@/components/task-page-new-issue-draft' +import { resolveUserRepoSwitchReset } from '@/components/task-page/task-page-new-issue-draft' import RepoBadgeLabel from '@/components/repo/RepoBadgeLabel' import { Input } from '@/components/ui/input' import { GitHubMarkdownComposer } from '@/components/github/GitHubMarkdownComposer' diff --git a/src/renderer/src/components/task-page/github/List.tsx b/src/renderer/src/components/task-page/github/List.tsx index a81153485b1..9dc9e262e69 100644 --- a/src/renderer/src/components/task-page/github/List.tsx +++ b/src/renderer/src/components/task-page/github/List.tsx @@ -7,7 +7,7 @@ import { GITHUB_TASK_STICKY_TITLE_HEADER_CLASS, GITHUB_TASK_STICKY_ID_CELL_CLASS, GITHUB_TASK_STICKY_TITLE_CELL_CLASS -} from '../../task-page-source-context' +} from '../task-page-source-context' import { translate } from '@/i18n/i18n' import { Button } from '@/components/ui/button' import { LoaderCircle } from 'lucide-react' diff --git a/src/renderer/src/components/task-page/github/Rows.tsx b/src/renderer/src/components/task-page/github/Rows.tsx index 7e750f5998c..6b4dacf038b 100644 --- a/src/renderer/src/components/task-page/github/Rows.tsx +++ b/src/renderer/src/components/task-page/github/Rows.tsx @@ -25,7 +25,7 @@ import { GITHUB_TASK_STICKY_TITLE_CELL_CLASS, getTaskPageRepoSourceContext, formatRelativeTime -} from '../../task-page-source-context' +} from '../task-page-source-context' import { Tooltip, TooltipTrigger, TooltipContent } from '@/components/ui/tooltip' import { translate } from '@/i18n/i18n' import { TaskPageGitHubWorkItemStateBadge } from '@/components/task-page/github/task-page-github-work-item-status-badge' diff --git a/src/renderer/src/components/task-page/github/task-page-github-landing-refresh-run.tsx b/src/renderer/src/components/task-page/github/task-page-github-landing-refresh-run.tsx index 50de7d31edf..1a53e80f561 100644 --- a/src/renderer/src/components/task-page/github/task-page-github-landing-refresh-run.tsx +++ b/src/renderer/src/components/task-page/github/task-page-github-landing-refresh-run.tsx @@ -6,7 +6,7 @@ import { TASK_PAGE_GITHUB_RESUME_FRESH_MS } from '@/components/task-page/github/task-page-github-resume-cache' import type { GitHubWorkItem } from '../../../../../shared/github/work-item-types' -import { getTaskPageRepoSourceContext } from '../../task-page-source-context' +import { getTaskPageRepoSourceContext } from '../task-page-source-context' import { sortWorkItemsByNumber, taskPageToGitHubApiPage } from '../../../../../shared/work-items' import { materializeTaskPageItemList, @@ -15,13 +15,13 @@ import { } from '@/components/task-page/github/task-page-github-work-item-mutation-pages' import { clearTaskPageGitHubAuthorityThroughGeneration } from '@/components/task-page/github/task-page-github-work-item-authority-refresh' import { getOrCreateQuietRevalidateState } from '@/components/task-page/github/task-page-github-work-item-quiet-state' -import { resolveEmptyPageOutcome } from '@/components/task-page-work-item-pagination' +import { resolveEmptyPageOutcome } from '@/components/task-page/task-page-work-item-pagination' import { deriveTaskPageGitHubWorkItemsFetchOptions, shouldReplaceTaskPageItemsAfterRefresh, shouldResetTaskPagePaginationAfterLandingRefresh, reconcileTaskPagePagesAfterLandingRefresh -} from '@/components/task-page-cache-selectors' +} from '@/components/task-page/task-page-cache-selectors' export function runTaskPageGitHubLandingRefresh(model: TaskPageGitHubSearchPaginationModel) { const { fetchWorkItemsAcrossRepos, diff --git a/src/renderer/src/components/task-page/github/task-page-github-quiet-refresh-run.tsx b/src/renderer/src/components/task-page/github/task-page-github-quiet-refresh-run.tsx index c1fd1d9512c..30ceed973bd 100644 --- a/src/renderer/src/components/task-page/github/task-page-github-quiet-refresh-run.tsx +++ b/src/renderer/src/components/task-page/github/task-page-github-quiet-refresh-run.tsx @@ -26,7 +26,7 @@ import { LAG_BACKOFF_MS } from '@/components/task-page/github/task-page-github-work-item-quiet-adopt' import { stripRepoQualifiers } from '../../../../../shared/task-query' -import { getTaskPageRepoSourceContext } from '../../task-page-source-context' +import { getTaskPageRepoSourceContext } from '../task-page-source-context' import type { GitHubWorkItem } from '../../../../../shared/github/work-item-types' import { taskPageToGitHubApiPage } from '../../../../../shared/work-items' import { useAppStore } from '@/store/index' diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-cache-reconciliation.ts b/src/renderer/src/components/task-page/github/use-task-page-github-cache-reconciliation.ts index ae0fbc2e46e..e09f00d4a83 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-cache-reconciliation.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-cache-reconciliation.ts @@ -11,7 +11,7 @@ import { buildTaskPageRepoSourceState, selectTaskPageUnresolvedSourceRepos, reconcileTaskPagePagesWithWorkItemsCache -} from '@/components/task-page-cache-selectors' +} from '@/components/task-page/task-page-cache-selectors' import { toast } from 'sonner' import { translate } from '@/i18n/i18n' export function useTaskPageGitHubCacheReconciliation(model: TaskPageGitHubDetailModel) { diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-detail.ts b/src/renderer/src/components/task-page/github/use-task-page-github-detail.ts index 42441b30b70..95dd82eb181 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-detail.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-detail.ts @@ -8,13 +8,13 @@ import { useShallow } from 'zustand/react/shallow' import { selectTaskPageWorkItemsCacheEntries, findTaskPageDialogWorkItem -} from '@/components/task-page-cache-selectors' +} from '@/components/task-page/task-page-cache-selectors' import type { GitHubWorkItem } from '../../../../../shared/github/work-item-types' import type { GitLabWorkItem } from '../../../../../shared/gitlab-types' import { getTaskPageRepoCacheInput, getTaskPageRepoSourceContext -} from '../../task-page-source-context' +} from '../task-page-source-context' import { startGitHubListScrollRestore } from './task-page-github-list-scroll-restore' function getTaskPageScrollTop( diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts b/src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts index 4b390dff915..8255770a56a 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts @@ -7,8 +7,8 @@ import { useRepoLabels, useRepoAssignees } from '@/hooks/useGitHubRepoMetadata' import { resolveVanishedNewIssueRepoReset, isNewIssueDraftContentful -} from '@/components/task-page-new-issue-draft' -import { getTaskPageRepoSourceContext } from '../../task-page-source-context' +} from '@/components/task-page/task-page-new-issue-draft' +import { getTaskPageRepoSourceContext } from '../task-page-source-context' export function useTaskPageGitHubIssueDraft(model: TaskPageGitHubCacheReconciliationModel) { const { settings, repos, selectedRepos } = model const [newIssueOpen, setNewIssueOpen] = useState(false) diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts b/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts index 7e112852272..6364ee412f7 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts @@ -4,13 +4,13 @@ import { useCallback, useMemo, useEffect } from 'react' import type { GitHubWorkItem } from '../../../../../shared/github/work-item-types' import { taskPageGitHubItemKey } from '@/components/task-page/github/task-page-github-work-item-mutation-keys' import { deriveTaskPagePRCheckSummary } from '../task-page-pr-check-summary' -import { deriveAdvertisedTotalPages } from '@/components/task-page-work-item-pagination' +import { deriveAdvertisedTotalPages } from '@/components/task-page/task-page-work-item-pagination' import { GITHUB_PR_TASK_GRID_CLASS, GITHUB_TASK_GRID_CLASS, PR_CHECKS_EAGER_PREFETCH_LIMIT, getTaskPageRepoSourceContext -} from '../../task-page-source-context' +} from '../task-page-source-context' import { sameOptionalGitHubOwnerRepo } from './task-page-github-review-model' export function useTaskPageGitHubListProjection(model: TaskPageJiraCreationMetadataModel) { const { diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-list-state.ts b/src/renderer/src/components/task-page/github/use-task-page-github-list-state.ts index 560b154f14c..5982c3bf99f 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-list-state.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-list-state.ts @@ -14,7 +14,7 @@ import { } from '@/components/task-page/github/task-page-github-resume-cache' import { useAppStore } from '@/store/index' import type { GitHubListRestoreWrite } from './task-page-github-list-scroll-restore' -import { getTaskPageRepoSourceContext } from '../../task-page-source-context' +import { getTaskPageRepoSourceContext } from '../task-page-source-context' export function useTaskPageGitHubListState(model: TaskPageProviderStateModel) { const { pageData, diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-mutation-state.ts b/src/renderer/src/components/task-page/github/use-task-page-github-mutation-state.ts index 461e7f4ee1c..9ffef9a814b 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-mutation-state.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-mutation-state.ts @@ -12,7 +12,7 @@ import { useAppStore } from '@/store/index' import { useTaskPageGitHubWorkItemMutation } from '@/hooks/useTaskPageGitHubWorkItemMutation' import { rebuildSoftHiddenKeysFromPendingAndSticky } from '@/components/task-page/github/task-page-github-work-item-mutation-composition' import { buildGitHubRepoUrl } from '../../../../../shared/github/links' -import { getTaskPageRepoSourceContext } from '../../task-page-source-context' +import { getTaskPageRepoSourceContext } from '../task-page-source-context' export function useTaskPageGitHubMutationState(model: TaskPageLinearCreationStateModel) { const { selectedRepos, diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-search-pagination.ts b/src/renderer/src/components/task-page/github/use-task-page-github-search-pagination.ts index eb53329adb3..940dd852912 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-search-pagination.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-search-pagination.ts @@ -6,13 +6,13 @@ import { resolveEmptyPageOutcome, applyWindowPageLimit, applyEmptyPageClamp -} from '@/components/task-page-work-item-pagination' +} from '@/components/task-page/task-page-work-item-pagination' import { toast } from 'sonner' import { translate } from '@/i18n/i18n' import { overlayPendingOnTaskPagePages } from '@/components/task-page/github/task-page-github-work-item-mutation-pages' import { scopeGitHubTaskSearch } from '../../../../../shared/task-github-search' import { useGitHubTaskSearchCommit } from '@/components/use-github-task-search-commit' -import { getTaskPageRepoSourceContext } from '../../task-page-source-context' +import { getTaskPageRepoSourceContext } from '../task-page-source-context' export function useTaskPageGitHubSearchPagination(model: TaskPageGitHubListProjectionModel) { const { setTaskResumeState, diff --git a/src/renderer/src/components/task-page/gitlab/task-page-gitlab-task-filters.test.ts b/src/renderer/src/components/task-page/gitlab/task-page-gitlab-task-filters.test.ts index 4f4112b6654..b07fae233fc 100644 --- a/src/renderer/src/components/task-page/gitlab/task-page-gitlab-task-filters.test.ts +++ b/src/renderer/src/components/task-page/gitlab/task-page-gitlab-task-filters.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, afterEach, vi } from 'vitest' -import { isGitLabIssueFilter, isGitLabMRFilter } from '../../task-page-source-context' +import { isGitLabIssueFilter, isGitLabMRFilter } from '../task-page-source-context' describe('isGitLabMRFilter', () => { it('accepts MR statuses including all', () => { diff --git a/src/renderer/src/components/task-page/gitlab/use-task-page-gitlab-loading.ts b/src/renderer/src/components/task-page/gitlab/use-task-page-gitlab-loading.ts index 60b902dd0d9..1c2fbc0f331 100644 --- a/src/renderer/src/components/task-page/gitlab/use-task-page-gitlab-loading.ts +++ b/src/renderer/src/components/task-page/gitlab/use-task-page-gitlab-loading.ts @@ -10,7 +10,7 @@ import { getTaskPageRepoSourceContext, isGitLabIssueFilter, isGitLabMRFilter -} from '../../task-page-source-context' +} from '../task-page-source-context' // Leave headroom below the runtime RPC foreground concurrency of eight for sidebar and other callers. export const GITLAB_TASK_FETCH_CONCURRENCY = 6 diff --git a/src/renderer/src/components/task-page/jira/Content.tsx b/src/renderer/src/components/task-page/jira/Content.tsx index 473acaecc0c..a60c13cafdd 100644 --- a/src/renderer/src/components/task-page/jira/Content.tsx +++ b/src/renderer/src/components/task-page/jira/Content.tsx @@ -13,7 +13,7 @@ import { TaskPageJiraTextFallbackNotice } from '../../task-page-jira-text-fallba import { TaskPageJiraIssueList } from '@/components/task-page-jira-issue-list' import { TaskPageJiraBoardView } from '@/components/task-page-jira-board-view' import { TaskPageJiraViewControls } from '@/components/task-page-jira-view-controls' -import { formatRelativeTime } from '../../task-page-source-context' +import { formatRelativeTime } from '../task-page-source-context' import { getJiraStatusTone } from '@/components/task-page-jira-status-tone' import JiraIssueWorkspace from '@/components/JiraIssueWorkspace' import { TaskPageLinearContent } from '../linear/Content' diff --git a/src/renderer/src/components/task-page/linear/Content.tsx b/src/renderer/src/components/task-page/linear/Content.tsx index b4be2062042..52805baecd3 100644 --- a/src/renderer/src/components/task-page/linear/Content.tsx +++ b/src/renderer/src/components/task-page/linear/Content.tsx @@ -1,7 +1,7 @@ import type { TaskPageComposerActionsModel } from '../use-task-page-composer-actions' import LinearIssueWorkspace from '@/components/LinearIssueWorkspace' import { LoaderCircle } from 'lucide-react' -import { LinearIcon } from '@/components/task-page-localized-options' +import { LinearIcon } from '@/components/task-page/task-page-localized-options' import { translate } from '@/i18n/i18n' import { Button } from '@/components/ui/button' import { TaskPageLinearProjectOverview } from './ProjectOverview' diff --git a/src/renderer/src/components/task-page/linear/IssueBoard.tsx b/src/renderer/src/components/task-page/linear/IssueBoard.tsx index 91d6d15922a..e5a8890171a 100644 --- a/src/renderer/src/components/task-page/linear/IssueBoard.tsx +++ b/src/renderer/src/components/task-page/linear/IssueBoard.tsx @@ -5,13 +5,13 @@ import { shouldOfferLinearIssueFetchMore } from './task-page-linear-issue-empty-state' import { Button } from '@/components/ui/button' -import { LinearIcon } from '@/components/task-page-localized-options' +import { LinearIcon } from '@/components/task-page/task-page-localized-options' import { isIntegrationCredentialDecryptionError } from '../../../../../shared/integration-credential-errors' import { clampLinearIssueListLimit, LINEAR_ISSUE_LIST_MAX } from '../../../../../shared/linear/issue-read-limits' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import { TaskPageLinearIssueBoardColumns } from './IssueBoardColumns' import { TaskPageLinearIssueTable } from './IssueTable' export function TaskPageLinearIssueBoard({ diff --git a/src/renderer/src/components/task-page/linear/IssueBoardColumns.tsx b/src/renderer/src/components/task-page/linear/IssueBoardColumns.tsx index 76d1c0d2f53..d192977c3fc 100644 --- a/src/renderer/src/components/task-page/linear/IssueBoardColumns.tsx +++ b/src/renderer/src/components/task-page/linear/IssueBoardColumns.tsx @@ -8,7 +8,7 @@ import { Button } from '@/components/ui/button' import { translate } from '@/i18n/i18n' import { FolderOpen, ArrowRight, ExternalLink } from 'lucide-react' import { LinearStateCell } from './task-page-linear-issue-model' -import { formatRelativeTime } from '../../task-page-source-context' +import { formatRelativeTime } from '../task-page-source-context' export function TaskPageLinearIssueBoardColumns({ model }: { diff --git a/src/renderer/src/components/task-page/linear/IssueTable.tsx b/src/renderer/src/components/task-page/linear/IssueTable.tsx index ec53986bc05..20767dde384 100644 --- a/src/renderer/src/components/task-page/linear/IssueTable.tsx +++ b/src/renderer/src/components/task-page/linear/IssueTable.tsx @@ -7,7 +7,7 @@ import { LinearPriorityIcon } from '@/components/linear-priority-icon' import { LinearStateCell } from './task-page-linear-issue-model' import { translate } from '@/i18n/i18n' import { Tooltip, TooltipTrigger, TooltipContent } from '@/components/ui/tooltip' -import { formatRelativeTime } from '../../task-page-source-context' +import { formatRelativeTime } from '../task-page-source-context' import { Button } from '@/components/ui/button' export function TaskPageLinearIssueTable({ model diff --git a/src/renderer/src/components/task-page/linear/IssueToolbar.tsx b/src/renderer/src/components/task-page/linear/IssueToolbar.tsx index c5ece4da5fb..7e203429e96 100644 --- a/src/renderer/src/components/task-page/linear/IssueToolbar.tsx +++ b/src/renderer/src/components/task-page/linear/IssueToolbar.tsx @@ -18,7 +18,7 @@ import type { LinearViewMode, LinearGroupBy, LinearOrderBy -} from '@/components/task-page-localized-options' +} from '../../../../../shared/linear/issue-view-resume-state' export function TaskPageLinearIssueToolbar({ model }: { diff --git a/src/renderer/src/components/task-page/linear/ProjectFields.tsx b/src/renderer/src/components/task-page/linear/ProjectFields.tsx index 71de6703b98..db743708706 100644 --- a/src/renderer/src/components/task-page/linear/ProjectFields.tsx +++ b/src/renderer/src/components/task-page/linear/ProjectFields.tsx @@ -3,7 +3,7 @@ import type { TaskPageComposerActionsModel } from '../use-task-page-composer-act import { translate } from '@/i18n/i18n' import { Popover, PopoverTrigger, PopoverContent } from '@/components/ui/popover' import { LinearPriorityIcon } from '@/components/linear-priority-icon' -import { getLinearPriorityLabel } from '@/components/task-page-localized-options' +import { getLinearPriorityLabel } from '@/components/task-page/task-page-localized-options' import { ChevronDown, Check, UserRound, LoaderCircle, Users, Tag, Clock3 } from 'lucide-react' import { cn } from '@/lib/utils' export function TaskPageLinearProjectFields({ diff --git a/src/renderer/src/components/task-page/linear/task-page-linear-cache-selectors.ts b/src/renderer/src/components/task-page/linear/task-page-linear-cache-selectors.ts index 87a2faedeac..c3f1bde1661 100644 --- a/src/renderer/src/components/task-page/linear/task-page-linear-cache-selectors.ts +++ b/src/renderer/src/components/task-page/linear/task-page-linear-cache-selectors.ts @@ -1,7 +1,7 @@ import type { CacheEntry } from '@/store/github/cache-model' import type { LinearIssue } from '../../../../../shared/linear/issue-types' import type { LinearCollectionResult } from '../../../../../shared/linear/workspace-types' -import { sortedStrings } from '../../task-page-work-item-signatures' +import { sortedStrings } from '../task-page-work-item-signatures' type LinearIssueCache = Record> type LinearSearchCache = Record> diff --git a/src/renderer/src/components/task-page/linear/task-page-linear-jira-list-model.tsx b/src/renderer/src/components/task-page/linear/task-page-linear-jira-list-model.tsx index c67e6520e32..223d140e3bb 100644 --- a/src/renderer/src/components/task-page/linear/task-page-linear-jira-list-model.tsx +++ b/src/renderer/src/components/task-page/linear/task-page-linear-jira-list-model.tsx @@ -1,6 +1,6 @@ import type { LinearIssue } from '../../../../../shared/linear/issue-types' import type { GitHubWorkItem } from '../../../../../shared/github/work-item-types' -import { getLinearPriorityLabel } from '@/components/task-page-localized-options' +import { getLinearPriorityLabel } from '@/components/task-page/task-page-localized-options' import type { LinearOrderBy, LinearGroupBy, diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-collection-effects.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-collection-effects.ts index 8807dab74c9..89b3d26148f 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-collection-effects.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-collection-effects.ts @@ -1,6 +1,6 @@ import type { TaskPageLinearInOrcaEffectsModel } from './use-task-page-linear-in-orca-effects' import { useEffect } from 'react' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import { useTaskSearchDebouncedApply } from '../use-task-search-debounced-apply' import { clampLinearIssueListLimit } from '../../../../../shared/linear/issue-read-limits' import { useTaskPageLinearCustomViewEffects } from './use-task-page-linear-custom-view-effects' diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-context-actions.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-context-actions.ts index df07a2d1bcd..cf66029df4e 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-context-actions.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-context-actions.ts @@ -2,7 +2,7 @@ import { useCallback } from 'react' import { toast } from 'sonner' import { translate } from '@/i18n/i18n' -import type { LinearMode } from '@/components/task-page-localized-options' +import type { LinearMode } from '@/components/task-page/task-page-localized-options' import type { LinearCollectionResult } from '../../../../../shared/linear/workspace-types' import type { LinearIssue } from '../../../../../shared/linear/issue-types' import type { @@ -10,7 +10,7 @@ import type { LinearProjectSummary } from '../../../../../shared/linear/project-types' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import type { TaskPageLinearContextStatePreludeModel } from './use-task-page-linear-context-state' export function useTaskPageLinearContextActions(model: TaskPageLinearContextStatePreludeModel) { diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-context-state.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-context-state.ts index c106fff541b..de1f64723c3 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-context-state.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-context-state.ts @@ -6,7 +6,7 @@ import type { LinearCustomViewSummary, LinearProjectSummary } from '../../../../../shared/linear/project-types' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import { useTaskPageLinearContextActions } from './use-task-page-linear-context-actions' export function useTaskPageLinearContextStatePrelude(model: TaskPageLinearViewStatePreludeModel) { const [linearCustomViewsResult, setLinearCustomViewsResult] = useState< diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-creation-state.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-creation-state.ts index 4ac4ddcc412..320268ac998 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-creation-state.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-creation-state.ts @@ -4,7 +4,7 @@ import { useTeamMembers, useTeamLabels, useTeamStates } from '@/hooks/useIssueMe import { useTaskCreationDraftRetention } from '@/components/use-task-creation-draft-retention' import { useNewLinearIssueProjects } from '../../use-new-linear-issue-projects' import { useContextualTour } from '@/components/contextual-tours/use-contextual-tour' -import { writeNewLinearIssueDraft, writeNewLinearProjectDraft } from '../../task-page-draft-storage' +import { writeNewLinearIssueDraft, writeNewLinearProjectDraft } from '../task-page-draft-storage' import { defaultScopeSource } from '@/lib/default-creation-host' export function useTaskPageLinearCreationState(model: TaskPageJiraListProjectionModel) { const { diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-custom-view-effects.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-custom-view-effects.ts index 02f876447ad..d7dfffd7233 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-custom-view-effects.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-custom-view-effects.ts @@ -4,7 +4,7 @@ import { LINEAR_CUSTOM_VIEW_MODELS, mergeLinearCollectionResults } from './task-page-linear-issue-model' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import type { LinearCollectionResult } from '../../../../../shared/linear/workspace-types' import type { LinearIssue } from '../../../../../shared/linear/issue-types' import type { diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-filter-selection.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-filter-selection.ts index 5a7e432be13..e75803f0e50 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-filter-selection.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-filter-selection.ts @@ -6,7 +6,7 @@ import { linearIssueAttributeFilterSignature } from '../../../../../shared/linear/issue-attribute-filter' import { setLinearWorkspaceIssueFilter } from '../../../../../shared/linear/issue-view-resume-state' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import { type LinearPrimaryTeamObservation, shouldClearTeamDerivedFacets, diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-list-effects.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-list-effects.ts index b14a31797df..a476ad15065 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-list-effects.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-list-effects.ts @@ -17,7 +17,7 @@ import type { LinearIssue } from '../../../../../shared/linear/issue-types' import type { LinearCollectionResult } from '../../../../../shared/linear/workspace-types' import { linearIssueAttributeFilterSignature } from '../../../../../shared/linear/issue-attribute-filter' import { reconcileTaskPageLinearIssuesAfterLandingRefresh } from './task-page-linear-cache-selectors' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import { useTaskSearchDebouncedApply } from '../use-task-search-debounced-apply' export function useTaskPageLinearListEffects(model: TaskPageGlobalEffectsModel) { const { diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-list-projection.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-list-projection.ts index 8e94c2d60eb..95b41a5b714 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-list-projection.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-list-projection.ts @@ -6,7 +6,7 @@ import { LINEAR_ISSUE_LIST_MAX } from '../../../../../shared/linear/issue-read-limits' import { compareLinearIssues } from './task-page-linear-jira-list-model' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import { useTaskPageLinearListPresentation } from './use-task-page-linear-list-presentation' export function useTaskPageLinearListProjectionPrelude(model: TaskPageLinearListSelectionModel) { const { diff --git a/src/renderer/src/components/task-page/linear/use-task-page-linear-view-state.ts b/src/renderer/src/components/task-page/linear/use-task-page-linear-view-state.ts index 729c58aa798..5a0d213a860 100644 --- a/src/renderer/src/components/task-page/linear/use-task-page-linear-view-state.ts +++ b/src/renderer/src/components/task-page/linear/use-task-page-linear-view-state.ts @@ -1,6 +1,6 @@ import type { TaskPageDetailRoutingModel } from '../use-task-page-detail-routing' import { useState, useMemo, useRef } from 'react' -import type { LinearMode } from '@/components/task-page-localized-options' +import type { LinearMode } from '@/components/task-page/task-page-localized-options' import { type LinearViewMode, type LinearGroupBy, @@ -18,7 +18,7 @@ import type { LinearProjectSummary, LinearProjectDetail } from '../../../../../shared/linear/project-types' -import { LINEAR_ITEM_LIMIT } from '../../task-page-source-context' +import { LINEAR_ITEM_LIMIT } from '../task-page-source-context' import type { LinearIssueAttributeFilter } from '../../../../../shared/linear/issue-attribute-filter' import type { LinearIssueListFilterRead, diff --git a/src/renderer/src/components/task-page-cache-selectors.test.ts b/src/renderer/src/components/task-page/task-page-cache-selectors.test.ts similarity index 98% rename from src/renderer/src/components/task-page-cache-selectors.test.ts rename to src/renderer/src/components/task-page/task-page-cache-selectors.test.ts index b90561451af..ec0ee7fe04b 100644 --- a/src/renderer/src/components/task-page-cache-selectors.test.ts +++ b/src/renderer/src/components/task-page/task-page-cache-selectors.test.ts @@ -3,9 +3,9 @@ import { shallow } from 'zustand/shallow' import { workItemsCacheKey } from '@/store/github/cache-identity' import type { CacheEntry } from '@/store/github/cache-model' -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' -import type { LinearIssue } from '../../../shared/linear/issue-types' -import type { LinearCollectionResult } from '../../../shared/linear/workspace-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { LinearIssue } from '../../../../shared/linear/issue-types' +import type { LinearCollectionResult } from '../../../../shared/linear/workspace-types' import { buildTaskPageRepoSourceState, selectTaskPageUnresolvedSourceRepos, @@ -21,7 +21,7 @@ import { import { findTaskPageLinearIssue, reconcileTaskPageLinearIssuesAfterLandingRefresh -} from './task-page/linear/task-page-linear-cache-selectors' +} from './linear/task-page-linear-cache-selectors' function entry(data: T): CacheEntry { return { data, fetchedAt: 1 } diff --git a/src/renderer/src/components/task-page-cache-selectors.ts b/src/renderer/src/components/task-page/task-page-cache-selectors.ts similarity index 98% rename from src/renderer/src/components/task-page-cache-selectors.ts rename to src/renderer/src/components/task-page/task-page-cache-selectors.ts index b839d006da4..92a732c1571 100644 --- a/src/renderer/src/components/task-page-cache-selectors.ts +++ b/src/renderer/src/components/task-page/task-page-cache-selectors.ts @@ -1,11 +1,11 @@ import { workItemsCacheKey } from '@/store/github/cache-identity' -import { getRepoExecutionHostId, type ExecutionHostId } from '../../../shared/execution-host' +import { getRepoExecutionHostId, type ExecutionHostId } from '../../../../shared/execution-host' import type { CacheEntry, WorkItemsCacheError, WorkItemsCacheSources } from '@/store/github/cache-model' -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' import { taskPageWorkItemKey, taskPageWorkItemStatusSignature, diff --git a/src/renderer/src/components/task-page-draft-storage.tsx b/src/renderer/src/components/task-page/task-page-draft-storage.tsx similarity index 92% rename from src/renderer/src/components/task-page-draft-storage.tsx rename to src/renderer/src/components/task-page/task-page-draft-storage.tsx index 5685350a16e..ed64b039452 100644 --- a/src/renderer/src/components/task-page-draft-storage.tsx +++ b/src/renderer/src/components/task-page/task-page-draft-storage.tsx @@ -1,5 +1,5 @@ -import type { TaskPageRepoSourceState } from '@/components/task-page-cache-selectors' -import type { GitHubOwnerRepo } from '../../../shared/github/pull-request-types' +import type { TaskPageRepoSourceState } from '@/components/task-page/task-page-cache-selectors' +import type { GitHubOwnerRepo } from '../../../../shared/github/pull-request-types' import { sameGitHubOwnerRepo } from '@/components/github/IssueSourceIndicator' import { type NewLinearProjectDraft, @@ -7,7 +7,7 @@ import { type NewLinearIssueDraft, type NewJiraIssueDraft } from '@/store/slices/task-creation-drafts' -import { useAppStore } from '@/store' +import { useAppStore } from '@/store/index' export const hasDivergentSources = ( s: TaskPageRepoSourceState ): s is TaskPageRepoSourceState & { diff --git a/src/renderer/src/components/task-page-localized-options.test.ts b/src/renderer/src/components/task-page/task-page-localized-options.test.ts similarity index 100% rename from src/renderer/src/components/task-page-localized-options.test.ts rename to src/renderer/src/components/task-page/task-page-localized-options.test.ts diff --git a/src/renderer/src/components/task-page-localized-options.tsx b/src/renderer/src/components/task-page/task-page-localized-options.tsx similarity index 95% rename from src/renderer/src/components/task-page-localized-options.tsx rename to src/renderer/src/components/task-page/task-page-localized-options.tsx index 4bbf2b4de55..989e49bf725 100644 --- a/src/renderer/src/components/task-page-localized-options.tsx +++ b/src/renderer/src/components/task-page/task-page-localized-options.tsx @@ -13,10 +13,10 @@ import { type LinearGroupBy, type LinearOrderBy, type LinearViewMode -} from '../../../shared/linear/issue-view-resume-state' -import { getTaskPresetQuery } from '../../../shared/task-preset-query' -import type { TaskProvider } from '../../../shared/task-providers' -import type { TaskViewPresetId } from '../../../shared/ui-chrome-types' +} from '../../../../shared/linear/issue-view-resume-state' +import { getTaskPresetQuery } from '../../../../shared/task-preset-query' +import type { TaskProvider } from '../../../../shared/task-providers' +import type { TaskViewPresetId } from '../../../../shared/ui-chrome-types' export type GitLabTaskFilter = 'opened' | 'merged' | 'closed' | 'all' export type GitLabIssueFilter = 'opened' | 'assigned-to-me' @@ -42,12 +42,6 @@ export type JiraPreset = { id: JiraPresetId; label: string } export type GitHubModeButton = { id: GitHubTaskKind | 'project'; label: string } export type LinearMode = 'issues' | 'projects' | 'views' | 'in-orca' -export type { - LinearDisplayProperty, - LinearGroupBy, - LinearOrderBy, - LinearViewMode -} from '../../../shared/linear/issue-view-resume-state' export function LinearIcon({ className }: { className?: string }): React.JSX.Element { return ( diff --git a/src/renderer/src/components/task-page-mutation-page-allocation.test.ts b/src/renderer/src/components/task-page/task-page-mutation-page-allocation.test.ts similarity index 92% rename from src/renderer/src/components/task-page-mutation-page-allocation.test.ts rename to src/renderer/src/components/task-page/task-page-mutation-page-allocation.test.ts index bc0e5e3e915..4bd0d3e53a9 100644 --- a/src/renderer/src/components/task-page-mutation-page-allocation.test.ts +++ b/src/renderer/src/components/task-page/task-page-mutation-page-allocation.test.ts @@ -1,6 +1,6 @@ import { expect, it } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' -import { patchTaskPageGitHubWorkItemPages } from './task-page/github/task-page-github-work-item-mutation-pages' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import { patchTaskPageGitHubWorkItemPages } from './github/task-page-github-work-item-mutation-pages' function item(id: string): GitHubWorkItem { return { diff --git a/src/renderer/src/components/task-page-new-issue-draft.test.ts b/src/renderer/src/components/task-page/task-page-new-issue-draft.test.ts similarity index 98% rename from src/renderer/src/components/task-page-new-issue-draft.test.ts rename to src/renderer/src/components/task-page/task-page-new-issue-draft.test.ts index b84abf262e9..7bb90cf81f7 100644 --- a/src/renderer/src/components/task-page-new-issue-draft.test.ts +++ b/src/renderer/src/components/task-page/task-page-new-issue-draft.test.ts @@ -6,7 +6,7 @@ import { resolveVanishedNewIssueRepoReset } from './task-page-new-issue-draft' import type { NewIssueDraft } from '@/store/slices/new-issue-draft' -import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' const assignee: GitHubAssignableUser = { login: 'octocat', name: 'Octo', avatarUrl: '' } diff --git a/src/renderer/src/components/task-page-new-issue-draft.ts b/src/renderer/src/components/task-page/task-page-new-issue-draft.ts similarity index 96% rename from src/renderer/src/components/task-page-new-issue-draft.ts rename to src/renderer/src/components/task-page/task-page-new-issue-draft.ts index 4be26c1327a..4955e1edc0f 100644 --- a/src/renderer/src/components/task-page-new-issue-draft.ts +++ b/src/renderer/src/components/task-page/task-page-new-issue-draft.ts @@ -1,4 +1,4 @@ -import type { GitHubAssignableUser } from '../../../shared/github/pull-request-types' +import type { GitHubAssignableUser } from '../../../../shared/github/pull-request-types' import type { NewIssueDraft } from '@/store/slices/new-issue-draft' export type NewIssueOpenSeed = { diff --git a/src/renderer/src/components/task-page-repo-source-context.test.ts b/src/renderer/src/components/task-page/task-page-repo-source-context.test.ts similarity index 97% rename from src/renderer/src/components/task-page-repo-source-context.test.ts rename to src/renderer/src/components/task-page/task-page-repo-source-context.test.ts index fbba8162fbf..9cfad4e6b43 100644 --- a/src/renderer/src/components/task-page-repo-source-context.test.ts +++ b/src/renderer/src/components/task-page/task-page-repo-source-context.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, afterEach, vi } from 'vitest' import { buildGitLabProviderIdentity, getTaskPageRepoCacheInput } from './task-page-source-context' -import type { Repo } from '../../../shared/repo-types' +import type { Repo } from '../../../../shared/repo-types' describe('buildGitLabProviderIdentity', () => { it('splits namespace and project and builds the web URL', () => { diff --git a/src/renderer/src/components/task-page-repo-source-divergence.test.ts b/src/renderer/src/components/task-page/task-page-repo-source-divergence.test.ts similarity index 98% rename from src/renderer/src/components/task-page-repo-source-divergence.test.ts rename to src/renderer/src/components/task-page/task-page-repo-source-divergence.test.ts index 412be280751..3bde286f636 100644 --- a/src/renderer/src/components/task-page-repo-source-divergence.test.ts +++ b/src/renderer/src/components/task-page/task-page-repo-source-divergence.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import type { TaskPageRepoSourceState } from '@/components/task-page-cache-selectors' +import type { TaskPageRepoSourceState } from '@/components/task-page/task-page-cache-selectors' import { hasDivergentSources, hasUpstreamCandidateDivergence } from './task-page-draft-storage' function state( diff --git a/src/renderer/src/components/task-page-source-context.tsx b/src/renderer/src/components/task-page/task-page-source-context.tsx similarity index 90% rename from src/renderer/src/components/task-page-source-context.tsx rename to src/renderer/src/components/task-page/task-page-source-context.tsx index 4557d646ca4..fa40f274efe 100644 --- a/src/renderer/src/components/task-page-source-context.tsx +++ b/src/renderer/src/components/task-page/task-page-source-context.tsx @@ -1,24 +1,27 @@ -import type { GitLabTaskFilter, GitLabIssueFilter } from '@/components/task-page-localized-options' -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' -import type { GitLabProjectRef, GitLabWorkItem } from '../../../shared/gitlab-types' -import type { JiraIssue } from '../../../shared/jira/jira-types' -import type { Repo } from '../../../shared/repo-types' +import type { + GitLabTaskFilter, + GitLabIssueFilter +} from '@/components/task-page/task-page-localized-options' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' +import type { GitLabProjectRef, GitLabWorkItem } from '../../../../shared/gitlab-types' +import type { JiraIssue } from '../../../../shared/jira/jira-types' +import type { Repo } from '../../../../shared/repo-types' import { getLinkedWorkItemWorkspaceName, getLinkedWorkItemSuggestedName } from '@/lib/new-workspace' import { getJiraIssueKeyCasingSeedOptions } from '@/lib/jira-issue-key-casing' import { type TaskSourceContext, normalizeTaskSourceContext, getTaskSourceCacheScope -} from '../../../shared/task-source-context' -import { projectHostSetupProjectionFromRepos } from '../../../shared/project-host-setup-projection' -import { getRepoExecutionHostId } from '../../../shared/execution-host' -import type { ExecutionHostRegistryEntry } from '../../../shared/execution-host-registry' +} from '../../../../shared/task-source-context' +import { projectHostSetupProjectionFromRepos } from '../../../../shared/project-host-setup-projection' +import { getRepoExecutionHostId } from '../../../../shared/execution-host' +import type { ExecutionHostRegistryEntry } from '../../../../shared/execution-host-registry' import { getAccountBackedTaskSourceSummary, type TaskSourceContextSummary, type TaskSourceHostAvailability -} from './task-source-context-summary' -import { TASK_SOURCE_CONTEXT_RUNTIME_CAPABILITY } from '../../../shared/protocol-version' +} from '../task-source-context-summary' +import { TASK_SOURCE_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' import { cn } from '@/lib/utils' import { formatUiRelativeTimeFromDate } from '@/i18n/relative-time-format' export function isGitLabMRFilter( diff --git a/src/renderer/src/components/task-page-task-source-host-availability.test.ts b/src/renderer/src/components/task-page/task-page-task-source-host-availability.test.ts similarity index 97% rename from src/renderer/src/components/task-page-task-source-host-availability.test.ts rename to src/renderer/src/components/task-page/task-page-task-source-host-availability.test.ts index 3aff5c1ef68..19f8199cb61 100644 --- a/src/renderer/src/components/task-page-task-source-host-availability.test.ts +++ b/src/renderer/src/components/task-page/task-page-task-source-host-availability.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, afterEach, vi } from 'vitest' -import { TASK_SOURCE_CONTEXT_RUNTIME_CAPABILITY } from '../../../shared/protocol-version' -import type { ExecutionHostRegistryEntry } from '../../../shared/execution-host-registry' +import { TASK_SOURCE_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version' +import type { ExecutionHostRegistryEntry } from '../../../../shared/execution-host-registry' import { getGitHubProjectSourceSummary, getTaskSourceHostAvailabilityForHost diff --git a/src/renderer/src/components/task-page-work-item-pagination.test.ts b/src/renderer/src/components/task-page/task-page-work-item-pagination.test.ts similarity index 99% rename from src/renderer/src/components/task-page-work-item-pagination.test.ts rename to src/renderer/src/components/task-page/task-page-work-item-pagination.test.ts index 90c788642b4..7bd8bae8b8b 100644 --- a/src/renderer/src/components/task-page-work-item-pagination.test.ts +++ b/src/renderer/src/components/task-page/task-page-work-item-pagination.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' import { accumulateWorkItemPages, applyEmptyPageClamp, diff --git a/src/renderer/src/components/task-page-work-item-pagination.ts b/src/renderer/src/components/task-page/task-page-work-item-pagination.ts similarity index 97% rename from src/renderer/src/components/task-page-work-item-pagination.ts rename to src/renderer/src/components/task-page/task-page-work-item-pagination.ts index b51b0948ed9..b5f14c78e25 100644 --- a/src/renderer/src/components/task-page-work-item-pagination.ts +++ b/src/renderer/src/components/task-page/task-page-work-item-pagination.ts @@ -1,5 +1,5 @@ -import type { ClassifiedError } from '../../../shared/classified-error' -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { ClassifiedError } from '../../../../shared/classified-error' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' /** Inclusive updatedAt cursors preserve timestamp ties; dedup boundary rows and backfill full display pages, flushing partials on exhaustion/stall. */ diff --git a/src/renderer/src/components/task-page-work-item-signatures.ts b/src/renderer/src/components/task-page/task-page-work-item-signatures.ts similarity index 95% rename from src/renderer/src/components/task-page-work-item-signatures.ts rename to src/renderer/src/components/task-page/task-page-work-item-signatures.ts index 9671d1e7fbc..5ccbadfed4b 100644 --- a/src/renderer/src/components/task-page-work-item-signatures.ts +++ b/src/renderer/src/components/task-page/task-page-work-item-signatures.ts @@ -1,4 +1,4 @@ -import type { GitHubWorkItem } from '../../../shared/github/work-item-types' +import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' // Why the host: a twin's two hosts return the same PR under one repo id. export function taskPageWorkItemKey(item: GitHubWorkItem): string { diff --git a/src/renderer/src/components/task-page/use-task-page-composer-actions.ts b/src/renderer/src/components/task-page/use-task-page-composer-actions.ts index 5ae975d5bf4..b06113fa213 100644 --- a/src/renderer/src/components/task-page/use-task-page-composer-actions.ts +++ b/src/renderer/src/components/task-page/use-task-page-composer-actions.ts @@ -12,7 +12,7 @@ import { translate } from '@/i18n/i18n' import { bindTaskPageJiraItemSourceContext } from '../task-page-jira-item-source-context' import type { LinkedWorkItemSummary } from '@/lib/new-workspace' import { shouldHideTaskPageListChrome } from './task-page-list-chrome-visibility' -import { getJiraIssueWorkspaceSeed } from '../task-page-source-context' +import { getJiraIssueWorkspaceSeed } from './task-page-source-context' import { findJiraIssueDefaultRepo } from '../../../../shared/jira/jira-project-reference' import { getRepoWorkspaceCreationTargetHint } from '@/lib/project-host-workspace-target' export function useTaskPageComposerActions(model: TaskPageJiraListEffectsModel) { diff --git a/src/renderer/src/components/task-page/use-task-page-provider-state.ts b/src/renderer/src/components/task-page/use-task-page-provider-state.ts index 487d1a5e0fe..39adb4479e2 100644 --- a/src/renderer/src/components/task-page/use-task-page-provider-state.ts +++ b/src/renderer/src/components/task-page/use-task-page-provider-state.ts @@ -1,10 +1,13 @@ import type { TaskPageSourceAvailabilityModel } from './use-task-page-source-availability' import { useRef, useState, useEffect, useMemo } from 'react' import { resolveVisibleTaskProvider } from '../../../../shared/task-providers' -import type { GitLabTaskFilter, GitLabIssueFilter } from '@/components/task-page-localized-options' +import type { + GitLabTaskFilter, + GitLabIssueFilter +} from '@/components/task-page/task-page-localized-options' import type { GitLabWorkItem, GitLabTodo } from '../../../../shared/gitlab-types' import { getRepoBackedTaskEmptyState } from './task-page-empty-state' -import { isGitLabIssueFilter, isGitLabMRFilter } from '../task-page-source-context' +import { isGitLabIssueFilter, isGitLabMRFilter } from './task-page-source-context' export function useTaskPageProviderState(model: TaskPageSourceAvailabilityModel) { const { settings, diff --git a/src/renderer/src/components/task-page/use-task-page-repo-selection.ts b/src/renderer/src/components/task-page/use-task-page-repo-selection.ts index c80fbb379b4..49e667df763 100644 --- a/src/renderer/src/components/task-page/use-task-page-repo-selection.ts +++ b/src/renderer/src/components/task-page/use-task-page-repo-selection.ts @@ -7,7 +7,7 @@ import { getTaskProjectPickerGroups } from '@/components/task-page/task-page-default-repo-selection' import { areStringSetsEqual } from '@/components/task-page/task-page-string-set-equality' -import { buildSelectedReposKey } from '@/components/task-page-work-item-pagination' +import { buildSelectedReposKey } from '@/components/task-page/task-page-work-item-pagination' import { normalizeVisibleTaskProviders, restoreAvailableDefaultTaskProvider, @@ -25,10 +25,10 @@ import { getLinearGroupOptions, getLinearOrderOptions, getLinearDisplayProperties -} from '@/components/task-page-localized-options' +} from '@/components/task-page/task-page-localized-options' import { toast } from 'sonner' import { translate } from '@/i18n/i18n' -import { getTaskPageRepoSourceContext } from '../task-page-source-context' +import { getTaskPageRepoSourceContext } from './task-page-source-context' export function useTaskPageRepoSelection(model: TaskPageStoreBindingsModel) { const { settings, diff --git a/src/renderer/src/components/task-page/use-task-page-runtime-hosts.ts b/src/renderer/src/components/task-page/use-task-page-runtime-hosts.ts index e69a172af6d..12e54e31f59 100644 --- a/src/renderer/src/components/task-page/use-task-page-runtime-hosts.ts +++ b/src/renderer/src/components/task-page/use-task-page-runtime-hosts.ts @@ -11,7 +11,7 @@ import { parseExecutionHostId } from '../../../../shared/execution-host' import { TASK_SOURCE_CONTEXT_RUNTIME_CAPABILITY } from '../../../../shared/task-source-runtime-capabilities' import { callRuntimeRpc } from '@/runtime/runtime-rpc-client' import type { PreflightStatus } from '../../../../preload/api/preflight-api' -import { getTaskPageRepoSourceContext } from '../task-page-source-context' +import { getTaskPageRepoSourceContext } from './task-page-source-context' export function useTaskPageRuntimeHosts(model: TaskPageRepoSelectionModel) { const { settings, diff --git a/src/renderer/src/components/task-page/use-task-page-search-actions.ts b/src/renderer/src/components/task-page/use-task-page-search-actions.ts index 85065a5430b..ce93d83367d 100644 --- a/src/renderer/src/components/task-page/use-task-page-search-actions.ts +++ b/src/renderer/src/components/task-page/use-task-page-search-actions.ts @@ -9,7 +9,7 @@ import { withQualifier } from '../../../../shared/task-query' import type { TaskViewPresetId } from '../../../../shared/ui-chrome-types' import { toast } from 'sonner' import { translate } from '@/i18n/i18n' -import type { GitHubTaskKind } from '@/components/task-page-localized-options' +import type { GitHubTaskKind } from '@/components/task-page/task-page-localized-options' import { getTaskPresetQuery } from '../../../../shared/task-preset-query' import { shouldSuppressEnterSubmit } from '@/lib/new-workspace-enter-guard' import { addAppKeyListener, removeAppKeyListener } from '@/lib/app-keyboard-router' diff --git a/src/renderer/src/components/task-page/use-task-page-source-availability.ts b/src/renderer/src/components/task-page/use-task-page-source-availability.ts index 00bcf27be30..74dd81eafc5 100644 --- a/src/renderer/src/components/task-page/use-task-page-source-availability.ts +++ b/src/renderer/src/components/task-page/use-task-page-source-availability.ts @@ -5,7 +5,7 @@ import type { Repo } from '../../../../shared/repo-types' import { getTaskPageRepoSourceContext, getTaskSourceHostAvailabilityForHost -} from '../task-page-source-context' +} from './task-page-source-context' import type { TaskSourceHostAvailability } from '../task-source-context-summary' import { getRepoBackedProviderAvailability } from '@/components/task-source-provider-availability' import { getSettingsFocusedExecutionHostId } from '../../../../shared/execution-host' diff --git a/src/renderer/src/components/task-page/use-task-page-source-summary.ts b/src/renderer/src/components/task-page/use-task-page-source-summary.ts index aa11e239b44..2228f1aa90d 100644 --- a/src/renderer/src/components/task-page/use-task-page-source-summary.ts +++ b/src/renderer/src/components/task-page/use-task-page-source-summary.ts @@ -9,7 +9,7 @@ import type { TaskSourceContext } from '../../../../shared/task-source-context' import { getTaskSourceHostAvailabilityForHost, getTaskPageRepoSourceContext -} from '../task-page-source-context' +} from './task-page-source-context' import { getRepoBackedProviderAvailability } from '@/components/task-source-provider-availability' import { getTaskSourceAvailabilityNotice, diff --git a/src/renderer/src/components/task-page/use-task-page-workspace-actions.ts b/src/renderer/src/components/task-page/use-task-page-workspace-actions.ts index 95531a780b2..ddba3c15b8a 100644 --- a/src/renderer/src/components/task-page/use-task-page-workspace-actions.ts +++ b/src/renderer/src/components/task-page/use-task-page-workspace-actions.ts @@ -13,7 +13,7 @@ import { getGitHubWorkItemWorkspaceSeed, getGitLabWorkItemWorkspaceSeed, getTaskPageRepoSourceContext -} from '../task-page-source-context' +} from './task-page-source-context' export function useTaskPageWorkspaceActions(model: TaskPageSearchActionsModel) { const { repos, openModal } = model const openComposerForItem = useCallback( diff --git a/src/renderer/src/components/task-page/use-task-search-debounced-apply.ts b/src/renderer/src/components/task-page/use-task-search-debounced-apply.ts index c6a1732e2d5..3a96cc73943 100644 --- a/src/renderer/src/components/task-page/use-task-search-debounced-apply.ts +++ b/src/renderer/src/components/task-page/use-task-search-debounced-apply.ts @@ -1,5 +1,5 @@ import { useEffect } from 'react' -import { TASK_SEARCH_DEBOUNCE_MS } from '../task-page-source-context' +import { TASK_SEARCH_DEBOUNCE_MS } from './task-page-source-context' /** Applies a task search input after the shared debounce, once resume state has landed. */ export function useTaskSearchDebouncedApply( diff --git a/src/renderer/src/components/use-task-page-jira-creation-state.ts b/src/renderer/src/components/use-task-page-jira-creation-state.ts index 4a8827a00dc..8fcff26f4ce 100644 --- a/src/renderer/src/components/use-task-page-jira-creation-state.ts +++ b/src/renderer/src/components/use-task-page-jira-creation-state.ts @@ -2,7 +2,7 @@ import type { TaskPageGitHubMutationStateModel } from './task-page/github/use-ta import { useState, useRef, useEffect } from 'react' import type { JiraIssueType, JiraCreateField } from '../../../shared/jira/jira-types' import { useTaskCreationDraftRetention } from '@/components/use-task-creation-draft-retention' -import { writeNewJiraIssueDraft } from './task-page-draft-storage' +import { writeNewJiraIssueDraft } from './task-page/task-page-draft-storage' import { useTaskPageJiraCreationProjects } from './use-task-page-jira-creation-projects' export function useTaskPageJiraCreationStatePrelude(model: TaskPageGitHubMutationStateModel) { const { diff --git a/src/renderer/src/components/use-task-page-jira-list-effects.ts b/src/renderer/src/components/use-task-page-jira-list-effects.ts index 29f887cc0db..6df0450d932 100644 --- a/src/renderer/src/components/use-task-page-jira-list-effects.ts +++ b/src/renderer/src/components/use-task-page-jira-list-effects.ts @@ -15,7 +15,7 @@ import { } from '@/components/task-page-jira-status-order' import { createTaskPageJiraLoadFailureState } from '@/components/task-page-jira-load-state' import { searchTaskPageJiraIssues } from '@/components/task-page-jira-search' -import { JIRA_ITEM_LIMIT } from './task-page-source-context' +import { JIRA_ITEM_LIMIT } from './task-page/task-page-source-context' import { useTaskSearchDebouncedApply } from './task-page/use-task-search-debounced-apply' import { readLinkedJiraIssues } from './task-page-jira-linked-issues' import { ipcOrRuntimeTargetForHostId } from '@/runtime/runtime-client-target' diff --git a/src/renderer/src/components/use-task-page-jira-list-state.ts b/src/renderer/src/components/use-task-page-jira-list-state.ts index b8db000bb11..2aa39a1853a 100644 --- a/src/renderer/src/components/use-task-page-jira-list-state.ts +++ b/src/renderer/src/components/use-task-page-jira-list-state.ts @@ -13,7 +13,7 @@ import type { } from '../../../shared/jira/jira-types' import type { TaskPageJiraLoadError } from '@/components/task-page-jira-load-state' import type { TaskPageJiraJqlRejection } from '@/components/task-page-jira-search' -import type { JiraPresetId } from '@/components/task-page-localized-options' +import type { JiraPresetId } from '@/components/task-page/task-page-localized-options' import type { JiraIssueSortColumn, JiraIssueSortDirection, diff --git a/src/renderer/src/store/slices/github-work-items-twin-cache-host.test.ts b/src/renderer/src/store/slices/github-work-items-twin-cache-host.test.ts index 2fcaa2277d3..b26821d967a 100644 --- a/src/renderer/src/store/slices/github-work-items-twin-cache-host.test.ts +++ b/src/renderer/src/store/slices/github-work-items-twin-cache-host.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { createTestStore, mockApi, resetRemoteRuntimeMocks } from './github-slice-test-harness' -import { selectTaskPageWorkItemsCacheEntries } from '../../components/task-page-cache-selectors' +import { selectTaskPageWorkItemsCacheEntries } from '../../components/task-page/task-page-cache-selectors' import type { GitHubWorkItem } from '../../../../shared/github/work-item-types' import type { Repo } from '../../../../shared/repo-types' diff --git a/src/renderer/src/store/slices/issue-source-preference-twin.test.ts b/src/renderer/src/store/slices/issue-source-preference-twin.test.ts index 2c6226aa541..67ef5f4b15a 100644 --- a/src/renderer/src/store/slices/issue-source-preference-twin.test.ts +++ b/src/renderer/src/store/slices/issue-source-preference-twin.test.ts @@ -6,8 +6,8 @@ import { type RuntimeEnvironmentCallRequest } from '../../runtime/runtime-compatibility-test-fixture' import { clearRuntimeCompatibilityCacheForTests } from '../../runtime/runtime-rpc-client' -import { buildTaskPageRepoSourceState } from '../../components/task-page-cache-selectors' -import { getTaskPageRepoCacheInput } from '../../components/task-page-source-context' +import { buildTaskPageRepoSourceState } from '../../components/task-page/task-page-cache-selectors' +import { getTaskPageRepoCacheInput } from '../../components/task-page/task-page-source-context' const localTwin: Repo = { id: 'twin',