Skip to content

Develop - #668

Open
hmjn023 wants to merge 21 commits into
mainfrom
develop
Open

Develop#668
hmjn023 wants to merge 21 commits into
mainfrom
develop

Conversation

@hmjn023

@hmjn023 hmjn023 commented Aug 11, 2026

Copy link
Copy Markdown
Owner

No description provided.

hmjn023 and others added 20 commits August 9, 2026 21:40
refactor(v2): split legacy and v2 UI surfaces
Reduce virtualized row allocations and redundant scroll updates, coalesce layout measurements, and prioritize responsive thumbnails for fast image display. Persist element scroll positions and notify active thumbnail sources when HTTP retries are ready.
Register grid elements with ResizeObserver when refs are assigned after mount, and unobserve replaced elements so pending-state rendering keeps virtual layout metrics current.
perf(ui): v2メディア一覧の表示・スクロールを高速化
feat(ui): expose migration-backed job workflows
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 325 files, which is 225 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d48c8c5b-66ab-49e8-af99-26d99c90d2dc

📥 Commits

Reviewing files that changed from the base of the PR and between f02aaa0 and 3ce088f.

📒 Files selected for processing (325)
  • .agents/skills/agent-browser/SKILL.md
  • .agents/skills/attach-db/SKILL.md
  • .agents/skills/convert-file/SKILL.md
  • .agents/skills/duckdb-docs/SKILL.md
  • .agents/skills/git-pr/SKILL.md
  • .agents/skills/git-worktree/SKILL.md
  • .agents/skills/indexion-agent-orient/SKILL.md
  • .agents/skills/indexion-documentation/SKILL.md
  • .agents/skills/indexion-identity/SKILL.md
  • .agents/skills/indexion-kgf/SKILL.md
  • .agents/skills/indexion-readme/SKILL.md
  • .agents/skills/indexion-refactor/SKILL.md
  • .agents/skills/indexion-sdd/SKILL.md
  • .agents/skills/indexion-segment/SKILL.md
  • .agents/skills/indexion-wiki/SKILL.md
  • .agents/skills/issue-driven/SKILL.md
  • .agents/skills/modern-web-guidance/SKILL.md
  • .agents/skills/modern-web-guidance/guides/accessibility/accessibility.md
  • .agents/skills/modern-web-guidance/guides/accessibility/accessible-error-announcement.md
  • .agents/skills/modern-web-guidance/guides/built-in-ai/language-detection.md
  • .agents/skills/modern-web-guidance/guides/built-in-ai/language-model.md
  • .agents/skills/modern-web-guidance/guides/built-in-ai/summarizer.md
  • .agents/skills/modern-web-guidance/guides/built-in-ai/translator.md
  • .agents/skills/modern-web-guidance/guides/css-layout/css-layout.md
  • .agents/skills/modern-web-guidance/guides/css/css.md
  • .agents/skills/modern-web-guidance/guides/css/highlight-text-ranges.md
  • .agents/skills/modern-web-guidance/guides/forms/animated-select-picker.md
  • .agents/skills/modern-web-guidance/guides/forms/autofill-address-form.md
  • .agents/skills/modern-web-guidance/guides/forms/autofill-highlight-inputs.md
  • .agents/skills/modern-web-guidance/guides/forms/autofill-payment-form.md
  • .agents/skills/modern-web-guidance/guides/forms/autofill-sign-in-form.md
  • .agents/skills/modern-web-guidance/guides/forms/autofill-sign-up-form.md
  • .agents/skills/modern-web-guidance/guides/forms/brand-consistent-forms.md
  • .agents/skills/modern-web-guidance/guides/forms/branded-select-styling.md
  • .agents/skills/modern-web-guidance/guides/forms/custom-select-picker-layouts.md
  • .agents/skills/modern-web-guidance/guides/forms/form-fields-automatically-fit-contents.md
  • .agents/skills/modern-web-guidance/guides/forms/forms.md
  • .agents/skills/modern-web-guidance/guides/forms/required-field-feedback.md
  • .agents/skills/modern-web-guidance/guides/forms/rich-media-picker.md
  • .agents/skills/modern-web-guidance/guides/forms/select-menu-interaction.md
  • .agents/skills/modern-web-guidance/guides/forms/validate-input-after-interaction.md
  • .agents/skills/modern-web-guidance/guides/html/html.md
  • .agents/skills/modern-web-guidance/guides/passkeys/passkey-authentication.md
  • .agents/skills/modern-web-guidance/guides/passkeys/passkey-conditional-create.md
  • .agents/skills/modern-web-guidance/guides/passkeys/passkey-management.md
  • .agents/skills/modern-web-guidance/guides/passkeys/passkey-reauthentication.md
  • .agents/skills/modern-web-guidance/guides/passkeys/passkey-registration.md
  • .agents/skills/modern-web-guidance/guides/passkeys/passkeys.md
  • .agents/skills/modern-web-guidance/guides/performance/batch-analytics-events.md
  • .agents/skills/modern-web-guidance/guides/performance/break-up-long-tasks.md
  • .agents/skills/modern-web-guidance/guides/performance/calculate-total-foreground-time.md
  • .agents/skills/modern-web-guidance/guides/performance/conditional-async-dependencies.md
  • .agents/skills/modern-web-guidance/guides/performance/defer-rendering-heavy-content.md
  • .agents/skills/modern-web-guidance/guides/performance/defer-work-until-scroll-ends.md
  • .agents/skills/modern-web-guidance/guides/performance/deprioritize-background-fetches.md
  • .agents/skills/modern-web-guidance/guides/performance/detect-initial-visibility-state.md
  • .agents/skills/modern-web-guidance/guides/performance/efficient-background-processing.md
  • .agents/skills/modern-web-guidance/guides/performance/faster-spa-view-transitions.md
  • .agents/skills/modern-web-guidance/guides/performance/full-session-analytics.md
  • .agents/skills/modern-web-guidance/guides/performance/identify-heavy-scripts.md
  • .agents/skills/modern-web-guidance/guides/performance/identify-inp-causes.md
  • .agents/skills/modern-web-guidance/guides/performance/improve-next-page-load-performance.md
  • .agents/skills/modern-web-guidance/guides/performance/interactions-in-complex-layouts.md
  • .agents/skills/modern-web-guidance/guides/performance/optimize-image-priority.md
  • .agents/skills/modern-web-guidance/guides/performance/optimize-preload-priority.md
  • .agents/skills/modern-web-guidance/guides/performance/optimize-script-priority.md
  • .agents/skills/modern-web-guidance/guides/performance/performance.md
  • .agents/skills/modern-web-guidance/guides/performance/resolution-optimized-pseudo-elements.md
  • .agents/skills/modern-web-guidance/guides/performance/schedule-tasks-by-priority.md
  • .agents/skills/modern-web-guidance/guides/performance/sequence-distributed-events.md
  • .agents/skills/modern-web-guidance/guides/privacy/privacy.md
  • .agents/skills/modern-web-guidance/guides/security/security.md
  • .agents/skills/modern-web-guidance/guides/user-experience/adapt-scrollbar-to-contrast-preferences.md
  • .agents/skills/modern-web-guidance/guides/user-experience/anchor-positioning-tab-underline.md
  • .agents/skills/modern-web-guidance/guides/user-experience/animate-element-entry-exit.md
  • .agents/skills/modern-web-guidance/guides/user-experience/animate-to-from-top-layer.md
  • .agents/skills/modern-web-guidance/guides/user-experience/animate-to-intrinsic-sizes.md
  • .agents/skills/modern-web-guidance/guides/user-experience/apply-webgl-shaders.md
  • .agents/skills/modern-web-guidance/guides/user-experience/calculate-event-differentials.md
  • .agents/skills/modern-web-guidance/guides/user-experience/calculate-with-intrinsic-sizes.md
  • .agents/skills/modern-web-guidance/guides/user-experience/capture-location-agnostic-data.md
  • .agents/skills/modern-web-guidance/guides/user-experience/carousel-slide-effects.md
  • .agents/skills/modern-web-guidance/guides/user-experience/carousel-snap-highlights.md
  • .agents/skills/modern-web-guidance/guides/user-experience/child-state-based-styling.md
  • .agents/skills/modern-web-guidance/guides/user-experience/complex-shapes.md
  • .agents/skills/modern-web-guidance/guides/user-experience/component-specific-light-dark-theme.md
  • .agents/skills/modern-web-guidance/guides/user-experience/consistent-cross-document-transitions.md
  • .agents/skills/modern-web-guidance/guides/user-experience/content-based-styling.md
  • .agents/skills/modern-web-guidance/guides/user-experience/coordinate-global-events.md
  • .agents/skills/modern-web-guidance/guides/user-experience/cross-document-transitions.md
  • .agents/skills/modern-web-guidance/guides/user-experience/customize-scrollbar-color-and-thickness.md
  • .agents/skills/modern-web-guidance/guides/user-experience/dark-mode.md
  • .agents/skills/modern-web-guidance/guides/user-experience/declarative-button-actions.md
  • .agents/skills/modern-web-guidance/guides/user-experience/declarative-dialog-popover-control.md
  • .agents/skills/modern-web-guidance/guides/user-experience/deliver-optimized-decorative-images.md
  • .agents/skills/modern-web-guidance/guides/user-experience/design-token-reactivity.md
  • .agents/skills/modern-web-guidance/guides/user-experience/directional-navigation-transitions.md
  • .agents/skills/modern-web-guidance/guides/user-experience/dynamic-sibling-animations.md
  • .agents/skills/modern-web-guidance/guides/user-experience/dynamic-sibling-styling.md
  • .agents/skills/modern-web-guidance/guides/user-experience/export-html-media-from-canvas.md
  • .agents/skills/modern-web-guidance/guides/user-experience/expose-canvas-content-to-browser-features.md
  • .agents/skills/modern-web-guidance/guides/user-experience/flicker-free-client-side-ab-testing.md
  • .agents/skills/modern-web-guidance/guides/user-experience/fluid-scaling.md
  • .agents/skills/modern-web-guidance/guides/user-experience/format-human-readable-durations.md
  • .agents/skills/modern-web-guidance/guides/user-experience/group-element-transitions.md
  • .agents/skills/modern-web-guidance/guides/user-experience/improve-text-layout-and-legibility.md
  • .agents/skills/modern-web-guidance/guides/user-experience/individual-transform-properties.md
  • .agents/skills/modern-web-guidance/guides/user-experience/interactive-content-in-3d-scenes.md
  • .agents/skills/modern-web-guidance/guides/user-experience/interactive-content-reveal.md
  • .agents/skills/modern-web-guidance/guides/user-experience/interest-triggered-action-previews.md
  • .agents/skills/modern-web-guidance/guides/user-experience/interest-triggered-tooltips.md
  • .agents/skills/modern-web-guidance/guides/user-experience/light-dismiss-a-dialog.md
  • .agents/skills/modern-web-guidance/guides/user-experience/manage-recurring-intervals.md
  • .agents/skills/modern-web-guidance/guides/user-experience/model-partial-time-concepts.md
  • .agents/skills/modern-web-guidance/guides/user-experience/move-dom-element-without-losing-state.md
  • .agents/skills/modern-web-guidance/guides/user-experience/navigation-drawer.md
  • .agents/skills/modern-web-guidance/guides/user-experience/overflow-clipping-control.md
  • .agents/skills/modern-web-guidance/guides/user-experience/parallax-scroll-effects.md
  • .agents/skills/modern-web-guidance/guides/user-experience/persistent-app-tours.md
  • .agents/skills/modern-web-guidance/guides/user-experience/persistent-toast-notifications.md
  • .agents/skills/modern-web-guidance/guides/user-experience/persistent-top-layer-ui.md
  • .agents/skills/modern-web-guidance/guides/user-experience/physics-based-easing.md
  • .agents/skills/modern-web-guidance/guides/user-experience/platform-controls-dismiss-dialog.md
  • .agents/skills/modern-web-guidance/guides/user-experience/position-aware-tooltips.md
  • .agents/skills/modern-web-guidance/guides/user-experience/precise-text-alignment.md
  • .agents/skills/modern-web-guidance/guides/user-experience/prevent-text-wrapping.md
  • .agents/skills/modern-web-guidance/guides/user-experience/pull-to-reveal.md
  • .agents/skills/modern-web-guidance/guides/user-experience/reduce-style-repetition.md
  • .agents/skills/modern-web-guidance/guides/user-experience/resilient-context-menus-and-nested-dropdowns.md
  • .agents/skills/modern-web-guidance/guides/user-experience/same-document-transitions.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scroll-entry-exit-effects.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scroll-position-aware-elements.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scroll-progress-indicator.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scroll-snap-realtime-feedback.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scroll-snap-state-sync.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scroll-target-on-load.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scrollability-affordance-hints.md
  • .agents/skills/modern-web-guidance/guides/user-experience/scrollytelling.md
  • .agents/skills/modern-web-guidance/guides/user-experience/search-hidden-content.md
  • .agents/skills/modern-web-guidance/guides/user-experience/shaped-cutouts.md
  • .agents/skills/modern-web-guidance/guides/user-experience/shrinking-header-on-scroll.md
  • .agents/skills/modern-web-guidance/guides/user-experience/size-aware-styling.md
  • .agents/skills/modern-web-guidance/guides/user-experience/soft-edge-content-fade.md
  • .agents/skills/modern-web-guidance/guides/user-experience/stabilize-reactive-state.md
  • .agents/skills/modern-web-guidance/guides/user-experience/stack-drill-down.md
  • .agents/skills/modern-web-guidance/guides/user-experience/style-parent-with-has.md
  • .agents/skills/modern-web-guidance/guides/user-experience/support-global-calendar-systems.md
  • .agents/skills/modern-web-guidance/guides/user-experience/swipe-to-remove.md
  • .agents/skills/modern-web-guidance/guides/user-experience/visually-stable-font-fallbacks.md
  • .agents/skills/modern-web-guidance/guides/user-experience/visually-stable-mixed-fonts.md
  • .agents/skills/modern-web-guidance/guides/user-experience/visually-texture-content.md
  • .agents/skills/modern-web-guidance/guides/webmcp/agentic-forms.md
  • .agents/skills/modern-web-guidance/guides/webmcp/agentic-javascript-tools.md
  • .agents/skills/modern-web-guidance/guides/webmcp/webmcp.md
  • .agents/skills/query/SKILL.md
  • .agents/skills/read-file/SKILL.md
  • AGENTS.md
  • REPORT.md
  • apps/server/drizzle/0023_fast_edwin_jarvis.sql
  • apps/server/drizzle/meta/0023_snapshot.json
  • apps/server/drizzle/meta/_journal.json
  • apps/server/public/openapi.json
  • apps/server/src/application/services/directory-sync-service.ts
  • apps/server/src/application/services/job-dispatch-service.ts
  • apps/server/src/application/services/job-transfer-storage.ts
  • apps/server/src/application/services/source-transfer-job-service.ts
  • apps/server/src/components/imports/pending-downloads-indicator-data.ts
  • apps/server/src/components/imports/pending-downloads-indicator.tsx
  • apps/server/src/components/imports/v2-pending-downloads-indicator.tsx
  • apps/server/src/components/media/legacy-media-grid-item.tsx
  • apps/server/src/components/media/legacy-media-sidebar.tsx
  • apps/server/src/components/media/media-grid-item.tsx
  • apps/server/src/components/media/media-sidebar.tsx
  • apps/server/src/components/media/media-viewer.tsx
  • apps/server/src/components/media/v2-media-actions.tsx
  • apps/server/src/components/media/v2-media-grid-item.tsx
  • apps/server/src/components/media/v2-media-sidebar.tsx
  • apps/server/src/components/media/v2-media-viewer.tsx
  • apps/server/src/components/source-form-modal.tsx
  • apps/server/src/components/upload-media-modal.tsx
  • apps/server/src/components/v2-upload-media-modal.tsx
  • apps/server/src/components/v2/v2-app-shell.tsx
  • apps/server/src/components/v2/v2-mobile-header.tsx
  • apps/server/src/components/v2/v2-navigation.tsx
  • apps/server/src/components/v2/v2-sidebar.tsx
  • apps/server/src/components/v2/v2-source-list.tsx
  • apps/server/src/hooks/use-media-source-events.ts
  • apps/server/src/infrastructure/api-clients/queries/index.ts
  • apps/server/src/infrastructure/api-clients/sources-api.ts
  • apps/server/src/infrastructure/api/routers/ai-router.ts
  • apps/server/src/infrastructure/api/routers/characters-router.ts
  • apps/server/src/infrastructure/api/routers/entity-media-counts.ts
  • apps/server/src/infrastructure/api/routers/ips-router.ts
  • apps/server/src/infrastructure/api/routers/jobs-router.ts
  • apps/server/src/infrastructure/api/routers/projects-router.ts
  • apps/server/src/infrastructure/api/routers/sources-router.ts
  • apps/server/src/infrastructure/jobs/job-worker.ts
  • apps/server/src/infrastructure/storage/factory.ts
  • apps/server/src/routes/api/jobs.$jobId.artifact.ts
  • apps/server/src/routes/config.tsx
  • apps/server/src/routes/search.tsx
  • apps/server/src/routes/sources/$mediaSourceId/$mediaId/index.tsx
  • apps/server/src/routes/sources/$mediaSourceId/components/legacy-source-media-page.tsx
  • apps/server/src/routes/sources/$mediaSourceId/components/source-media-page.tsx
  • apps/server/src/routes/sources/$mediaSourceId/components/v2-source-media-page.tsx
  • apps/server/src/routes/sources/$mediaSourceId/index.tsx
  • apps/server/src/routes/sources/index.tsx
  • apps/server/src/routes/v2/config.tsx
  • apps/server/src/routes/v2/jobs.tsx
  • apps/server/src/routes/v2/manager.tsx
  • apps/server/src/routes/v2/media-context.ts
  • apps/server/src/routes/v2/search.tsx
  • apps/server/src/routes/v2/sources/$mediaSourceId/$mediaId/index.tsx
  • apps/server/src/routes/v2/sources/$mediaSourceId/index.tsx
  • apps/server/src/tests/unit/application/services/directory-sync-service.test.ts
  • apps/server/src/tests/unit/application/services/media-service.test.ts
  • apps/server/src/tests/unit/infrastructure/jobs/ccip-jobs.test.ts
  • apps/server/src/tests/unit/infrastructure/jobs/job-worker.test.ts
  • apps/server/src/tests/unit/infrastructure/jobs/tagging-jobs.test.ts
  • apps/tauri/src/hooks/use-media-source-events.ts
  • apps/tauri/src/routes/config.tsx
  • apps/tauri/src/routes/search.tsx
  • apps/tauri/src/routes/sources/$mediaSourceId/$mediaId/index.tsx
  • apps/tauri/src/routes/sources/$mediaSourceId/components/source-media-page.tsx
  • apps/tauri/src/routes/sources/index.tsx
  • apps/tauri/src/routes/v2.tsx
  • apps/tauri/src/routes/v2/$.tsx
  • packages/core/src/domain/characters/schemas.ts
  • packages/core/src/domain/contract/ai.contract.ts
  • packages/core/src/domain/contract/jobs.contract.ts
  • packages/core/src/domain/contract/sources.contract.ts
  • packages/core/src/domain/ips/schemas.ts
  • packages/core/src/domain/jobs/schemas.ts
  • packages/core/src/domain/projects/schemas.ts
  • packages/core/src/domain/repositories/job-repository.ts
  • packages/core/src/domain/repositories/source-repository.ts
  • packages/core/src/domain/sources/events.ts
  • packages/core/src/domain/sources/schemas.ts
  • packages/core/src/domain/tagging/schemas.ts
  • packages/core/src/utils/type-guards.ts
  • packages/db/src/repositories/job-repository.test.ts
  • packages/db/src/repositories/job-repository.ts
  • packages/db/src/repositories/source-repository.ts
  • packages/db/src/schema.ts
  • packages/ui/src/hooks/scroll-container.ts
  • packages/ui/src/hooks/use-batch-job-events.ts
  • packages/ui/src/hooks/use-current-search-persistence.test.ts
  • packages/ui/src/hooks/use-current-search-persistence.ts
  • packages/ui/src/hooks/use-job-events.ts
  • packages/ui/src/hooks/use-media-source-events.ts
  • packages/ui/src/hooks/use-sources-events.ts
  • packages/ui/src/import-review-modal.tsx
  • packages/ui/src/import-review-modal.types.ts
  • packages/ui/src/legacy-import-review-modal.tsx
  • packages/ui/src/legacy-media-detail-skeleton.tsx
  • packages/ui/src/legacy-source-form-modal.tsx
  • packages/ui/src/legacy-upload-media-modal-content.tsx
  • packages/ui/src/legacy-upload-media-modal.tsx
  • packages/ui/src/media-grid-item.tsx
  • packages/ui/src/media-preview-selection.test.ts
  • packages/ui/src/media-preview-selection.ts
  • packages/ui/src/media-viewer.tsx
  • packages/ui/src/pending-downloads-indicator-core.tsx
  • packages/ui/src/pending-downloads-indicator.tsx
  • packages/ui/src/pending-downloads-indicator.types.ts
  • packages/ui/src/query-options/index.ts
  • packages/ui/src/query-options/jobs-query.ts
  • packages/ui/src/screen-skeleton.tsx
  • packages/ui/src/screens/config-screen.tsx
  • packages/ui/src/screens/config-state-screen.tsx
  • packages/ui/src/screens/config-state-screen.types.ts
  • packages/ui/src/screens/legacy-config-state-screen.tsx
  • packages/ui/src/screens/legacy-media-detail-screen.tsx
  • packages/ui/src/screens/manager-screen.tsx
  • packages/ui/src/screens/media-detail-screen-core.tsx
  • packages/ui/src/screens/media-detail-screen.tsx
  • packages/ui/src/screens/media-detail-screen.types.ts
  • packages/ui/src/screens/search-screen.tsx
  • packages/ui/src/screens/search-screen.types.ts
  • packages/ui/src/screens/source-media-screen.tsx
  • packages/ui/src/screens/source-media-screen.types.ts
  • packages/ui/src/screens/v2-config-screen.tsx
  • packages/ui/src/screens/v2-config-state-screen.tsx
  • packages/ui/src/screens/v2-jobs-screen.tsx
  • packages/ui/src/screens/v2-manager-screen.tsx
  • packages/ui/src/screens/v2-manager/batch-tools.tsx
  • packages/ui/src/screens/v2-manager/data-transfer.tsx
  • packages/ui/src/screens/v2-manager/dialogs.tsx
  • packages/ui/src/screens/v2-manager/duplicates.tsx
  • packages/ui/src/screens/v2-manager/entity-panel.tsx
  • packages/ui/src/screens/v2-manager/job-status.tsx
  • packages/ui/src/screens/v2-manager/navigation.tsx
  • packages/ui/src/screens/v2-manager/source-select.tsx
  • packages/ui/src/screens/v2-manager/thumbnail.tsx
  • packages/ui/src/screens/v2-manager/types.ts
  • packages/ui/src/screens/v2-manager/utils.test.ts
  • packages/ui/src/screens/v2-manager/utils.ts
  • packages/ui/src/screens/v2-media-detail-screen.tsx
  • packages/ui/src/screens/v2-search-screen.tsx
  • packages/ui/src/screens/v2-source-media-screen.tsx
  • packages/ui/src/search-control-panel.tsx
  • packages/ui/src/search-filters.tsx
  • packages/ui/src/skeleton.tsx
  • packages/ui/src/sort-controls.tsx
  • packages/ui/src/source-form-modal.tsx
  • packages/ui/src/source-media-grid.tsx
  • packages/ui/src/source-media-page.tsx
  • packages/ui/src/stores/search-store.test.ts
  • packages/ui/src/stores/search-store.ts
  • packages/ui/src/thumbnail-image.tsx
  • packages/ui/src/thumbnail-source.test.ts
  • packages/ui/src/thumbnail-source.ts
  • packages/ui/src/toast.tsx
  • packages/ui/src/upload-media-modal-content.tsx
  • packages/ui/src/upload-media-modal-content.types.ts
  • packages/ui/src/upload-media-modal.tsx
  • packages/ui/src/v2-import-review-modal.tsx
  • packages/ui/src/v2-media-detail-skeleton.tsx
  • packages/ui/src/v2-media-grid-item.tsx
  • packages/ui/src/v2-media-viewer.tsx
  • packages/ui/src/v2-pending-downloads-indicator.tsx
  • packages/ui/src/v2-source-form-modal.tsx
  • packages/ui/src/v2-upload-media-modal-content.tsx
  • packages/ui/src/v2-upload-media-modal.tsx
  • packages/ui/src/v2/search-toolbar.tsx

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

if (value === null || value === undefined) {
return null;
}
return requireNumber(value, fieldName);

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] PostgreSQL の raw claim では artifact_size が string になります。この値は jobs.artifact_size の bigint を db().execute() で直接取得したものですが、Node PostgreSQL の int8 は raw result では文字列です。ここで nullableNumber が例外を投げると、claim SQL 自体は status を in_progress に更新済みのため、worker はジョブを受け取れず stale recovery 後も同じ状態を繰り返します。artifactSize を安全に Number 化するか、raw SQL ではなく Drizzle の型変換を通す実装にして、非 null artifactSize の PostgreSQL ケースをテストしてください。

await this.markCancelled(job);
return;
} else {
await this.jobRepo.markAsCompleted(job.id, safeResult);

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] stale recovery 後の元 worker を fencing してください。requeueStaleInProgress は in_progress を pending に戻しますが、実行中 worker を無効化する lease/attempt token がありません。さらに markAsCompleted/markAsFailed は更新件数を返さないため、更新が 0 行でもこの箇所から completed イベントを発行します。元の source_restore が継続している間に stale recovery と別 worker が同じジョブを実行すると、restore の二重実行や誤った完了イベントが起こり得ます。attempt/lease を条件にした遷移と、遷移成功時だけのイベント発行が必要です。

targetMediaId: readTargetMediaId(job.payload),
progress: readProgress(job.payload),
artifact:
job.artifactPath && job.artifactFileName && job.artifactContentType

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] artifact は completed job にだけ公開してください。source export は成果物メタデータを保存した後に worker のキャンセル判定を通るため、ストリーム中にキャンセルされると status=cancelled のまま artifact fields が残ります。ここではその状態でも downloadUrl を返しますが、artifact route は completed 以外を 404 にするため、Jobs UI に壊れたダウンロードリンクが表示されます。DTO の条件に job.status === completed を加え、キャンセル時にはファイルとメタデータも整理してください。

Sign up for free to 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.

1 participant