Repository navigation
feat(picker): ピッカーのセルにマニフェストのサムネイルを描き、ホバーに説明を加える - #69
Merged
Merged
Conversation
The case carries the package's EffectThumbnail and the placeholder tile the cell draws if the bytes do not decode. The picker's view draws the fallback for it until its image arm lands.
…try has one pickerCell gives the image artwork, with the entry's own tile to fall back on, when EffectCatalogEntry.thumbnail is set, and the tile alone otherwise. Tests cover an entry with a picture in each format, one without, the bundled effect, a broken package, and a picture that is replaced or removed.
…it does not decode resolveArtwork (Presenters, generic over the decoded image) decides what a cell draws: the decoded picture, or the tile the artwork carries when the decoder answers nil. EffectThumbnailDecoding (AppRouter, where AppKit glue is covered) is the live decoder: NSBitmapImageRep rather than NSImage(data:), which answers an image of no size for a bare signature, and a 2048 x 2048 pixel limit against a small PNG that claims a huge picture. The views only map the resolution to pixels, and receive the decoder from EffectPickerWindow.
EffectCatalogEntry gains description (last init parameter, default nil), filled from the manifest for a ready package and nil for the bundled effect and a broken package. The picker's hover shows it on a line after the name and author, without the whitespace around it, cut at 280 characters, and not at all when blank. Tests cover the Repository, the Presenter's wording, and the loopback; Ripple's description is pinned beside its thumbnail.
…ription Key Design Decisions: Thumbnails and Effect picker (the slot is filled, the decode fallback and its limits, the description, the live preview left to #68), plus the layer rows, the Entity row, the physical abstraction table row and the delivery stages. Lane 1's Effect picker row now says what to look for (not yet run on a device). README: the manifest text, the roadmap row and the pre-alpha note. AGENTS.md follows. The stale claims (a placeholder for now, no thumbnails yet, the hover without a description, the view half still to come) were found by grepping the repository for their words.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 10 minutes. View limit details
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Owner
Author
|
マージ |
GeneralD
added a commit
that referenced
this pull request
Nov 3, 2026
fix(picker): #69 のマージ後レビュー指摘への対応と 0.24.0 への bump
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
エフェクトピッカー(#65)のセルに、マニフェストの
」が揃うため、#12 を閉じます。
thumbnail(#66 で読み込み済み)を描きます。サムネイルが無い、またはデコードできないエフェクトは、これまで通りプレースホルダーのタイルを描きます。あわせて、セルへのホバーにマニフェストのdescriptionを足します。これで #12 の「サムネイル付きグリッド」「ホバーで短いライブプレビュー(上部のカメラ映像)は #68(Follow-up of #12)に切り出しました。ホストアプリにプレビューを購読する経路が無く(
が要るためです。この
には入っていません。
CameraInteractorにPreviewViewを attach する口が無い)、先にその7ea416bfeat(entity):EffectArtworkにimage(EffectThumbnail, fallback: EffectPlaceholder)を2d84070feat(presenter): エントリがthumbnailを持つとき、セルのアートワークに画像(とフォールバックのタイル)を選ぶ64bc873feat(picker): セルがサムネイルを描き、デコードできなければタイルに戻る。デコードresolveArtwork、実際のデコードは AppRouter のEffectThumbnailDecodingに置き、Views にはクロージャで渡すf775147feat(catalog):EffectCatalogEntry.descriptionを足し、パッケージのmanifest.descriptionをホバーに運ぶ(…切り詰め)1877801docs(picker): ARCHITECTURE / AGENTS / README /dev-verification.mdをViewsは coverage-ignored で、.claude/rules/coverage-ignored-modules.md)。resolveArtworkに置いてCGImageを作る呼び出しだけを AppRouter のEffectThumbnailDecoding(coverageNSImage(data:)ではなくNSBitmapImageRep: 署名だけが正しい壊れたバイト列に対し、NSImage(data:)は nil ではなくサイズ 0 の画像を返し、セルが空になります。NSBitmapImageRep(data:)?.cgImageは、試した不正docs/ARCHITECTURE.mdに書きました(デコードdescriptionをカタEffectCatalogEntryの拡張で、別PreviewSinkの再利用か、フレーム経路への受け入れ基準の
表
.lensがサムネイル付きグリッドで並ぶEffectPickerPresenterTestsの「an effect whose entry carries a thumbnail gets the picture…」(PNG / JPEG)、デコードEffectArtworkResolutionTests、実デコード:EffectThumbnailDecodingTests。thumbnail.pngが読めることはExamplePackagesTestsEffectPickerPresenterTestsの「select goes to the Interactor…」(#65)。実機での目視(クリックして Zoom などのdev-verification.mdの Lane 1「Effect picker」行は「not yet run」のままthumbnailの無い.lensでもEffectPickerPresenterTestsの「an effect without a thumbnail… gets the tile alone」、壊れたバイト列・途中で切れた PNG・空・ピクセル超過はEffectThumbnailDecodingTestsで nil、EffectArtworkResolutionTestsでタイルに戻るEffectPickerPresenterTestsの「the picker's chosen cell is the menu's checked row, through every change of choice」(#65)が引き続き緑EffectPickerPresenterとEffectPickerGeometryのmake test(下記)make check/make lint緑ローカルのゲート(push
にすべて実行):
make format:make lint:make check:make build:make build-dev-harness:make test:Test run with 1044 tests in 139 suites passed ... with 12 known issues(12 件の known issue は main でもmake test-gpu:Test run with 27 tests in 6 suites passedEffectPickerPresenterTests: サムネイル(PNG / JPEG /EffectArtworkResolutionTests(EffectThumbnailDecodingTests(EffectPackageRepositoryTests/EffectCatalogIntegrationTests/ExamplePackagesTests:descriptionがマニフェストからエントリまで届くこと画面の
としては、オフスクリーンで描画して
しました(コミット外の使い捨て)。Ripple の画像が選択中のセルに描かれ、途中で切れた PNG を持つエントリが「TP」のタイルに戻り、読み込み
のセルが暗くなることを見ています。ただしこれは実機のウィンドウ・クリックの
ではありません。
入れていないもの
.appを/Applicationsに入れた状態)でのクリックによる.claude/rules/dev-verification.mdの Lane 1「Effect picker」行の測定値は「not yet run」のままversion.txtのCloses #12