Conversation
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.
Summary
Right-clicking a Harbor poster currently opens different menus depending on which component rendered it. Collections, downloads, profile content and nested links/images can instead fall through to WebView page commands, while file and membership actions need different targets and guarantees.
This adds a shared context-action system that composes the registered entity, its explicit membership/page context, and the actual image/link/text under the pointer. Independent child controls retain their own target. The work covers title and episode cards, library and collections, downloads/local files/server sources, profiles and social content, readers, live channels, and page navigation without changing their card layouts or including ElegantFin work.
Why
Verification
The detailed coverage and limitations are in docs/context-actions-review.md. Tests use isolated storage, mocked account services and dedicated temporary files; no real account writes or user-file deletion were used for QA.
pnpm run checkand TypeScript checks passed, with the recorded pre-existing gamepad lint warning.cargo checkpassed with three existing dead-code warnings; four native policy tests passed.Final GitHub Code Quality run on
c3fc27a0:cargo checkandcargo testpassed: 187 tests passed, zero failed, two ignored. This establishes native compilation/unit-test coverage; it does not replace a Linux desktop build/runtime trial.Platform Impact
Windows native fixture and full-application startup were exercised. Native Save-dialog interaction, actual local playback/reveal, the full-app asynchronous frame bridge, real connected-provider writes and physical remote/gamepad checks remain manual acceptance items.
The Linux system build was attempted with the Linux target, but this Windows host lacks
x86_64-unknown-linux-gnu; no Linux binary or runtime verification is claimed. macOS/mobile runtime checks are also outstanding. Native Canvas interception is intentionally Windows-specific; fallback behavior remains on other platforms.Unsafe Simkl membership-only removal/unwatch operations remain blocked rather than deleting a whole title/history entry. Cross-family Move, universal cross-tab Back history and an invented Follow/Unfollow service are not included.
AniList/MyAnimeList progress informs the read state, but these context-menu writes do not synchronize progress back to those services. Connected services receive named unsupported outcomes instead of a silent success claim; individual-episode actions do not invent a sequential-progress update.
UI Changes
This is a draft for code review and isolated desktop trial. Before/after screenshots and a short interaction recording are still required before marking it ready. Existing screenshots containing user accounts were not uploaded.
Checklist
vp checkfor the changed files.