Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 97515dd65d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| try await index.indexSearchableItems( | ||
| entities[start..<end].map { | ||
| $0.searchableItem(poster: images[$0.id] ?? nil) | ||
| $0.searchableItem(poster: images[$0.id] ?? nil, instance: instance) |
There was a problem hiding this comment.
Invalidate cached Spotlight indexes for entity associations
For an existing installation whose library metadata has not changed, the persisted checksum matches and index returns at line 25 before this new searchableItem(..., instance:) path associates entities. The checksum only incorporates each media item's unchanged searchableHash and CFBundleVersion, while the project continues to use CURRENT_PROJECT_VERSION = 1 across marketing-version bumps, so upgrading alone does not reliably invalidate it. Add an index-schema version to the checksum or explicitly clear the stored checksums so existing Spotlight items receive the new App Entity association.
Useful? React with 👍 / 👎.
- Movie and series entities with a string query, usable as Shortcuts parameters - Open Movie / Open Series intents on the iOS 27 system open schema - Spotlight items are associated with their entity; identifiers keep the existing <kind>:<id>:<instance> format and parsing no longer traps on a missing instance - On-screen entity identifiers on the movie and series detail screens
16ecfc5 to
b54e2b5
Compare
LocalizedStringResource(stringLiteral:) treats a movie or series title as a catalog key, so a title that matches a key (e.g. "Missing") would show its translation. Interpolating it uses the "%@" key with the title as argument.
- One .system.searchInApp intent covers movies and TV: the system allows a single one per app and only passes the search term, so it searches series when the Series tab is selected and movies otherwise, on the same lookup screens as the existing Search intents - Movie and series entities export their title, year and overview as plain text, so Siri can use the movie or series on screen
b54e2b5 to
9bdfe96
Compare
Split out of #796 so the small part can merge first. The Shortcuts automations (Add Movie / Add Series, automatic searches, upcoming releases) follow in
claude/shortcuts-automations, which is stacked on this branch and also carries the shared quality profile and root folder fallback for the add forms.Changes
IndexedEntity) with a string query, usable as Shortcuts parameters.system.openschema.system.searchInAppschema for movies and TV. The system allows only one per app and passes only the search term, so it searches series when the Series tab is selected and movies otherwise, on the same lookup screens as the existing Search intents. The existing Search intents stay as they are so saved shortcuts keep their Title parameterTransferable), and the detail screens carry their entity identifier (appEntityIdentifier) on all architectures, so Siri can use the movie or series on screen<kind>:<id>:<instance>format, so already indexed items still open; parsing no longer traps on an item without an instanceStrings
Six new keys: "%@", "Downloaded Episodes", "IMDb ID", "Size on Disk", "TMDB ID", "TVDB ID". The schema intents take their titles from the system. Checked against
xcodebuild -exportLocalizations: nothing extracted is missing from the catalog.Spotlight
Existing indexes pick up the entity association on the first library load after updating: the index checksum includes
CFBundleVersion, which Xcode Cloud bumps for every TestFlight and App Store build. Local builds stay on build 1, so they only re-index when the library changes.Testing
developand built with Xcode 27.1: macOS (arm64 and x86_64) and the iOS 27.2 simulator succeed, macOS tests passpublic.plain-text), both Open intents and the search intent#if compiler(>=6.4)). CodeQL fails there because the Xcode 26.6 macOS SDK has noappEntityIdentifierfor x86_64, the same SDK gap that failsdevelop's CodeQL onvisibilityPriority🤖 Generated with Claude Code
https://claude.ai/code/session_01MYjz4m99QND1JidaanYFU5