Repository navigation
Conversation
The Desktop capability list already excludes tools tied to another messaging platform. Matrix history, unread notifications and image-pack stickers were not included in that filter, so the app displayed switches for tools which require a live Matrix session. The same omissions also included those rows in search suggestions, counts and bulk changes. Add the three registered toolset names to the existing Desktop blocklist. All capability consumers already use its visibility predicate, so the rows disappear together without changing the backend configuration or Matrix runtime controls. Room administration was already excluded. Unrelated toolsets, including extensions with a Matrix-like name, remain visible. The UI contract checks the displayed switches and verifies that a bulk change writes only the ordinary toolset in the selected profile. A second contract checks rows, counts, search suggestions and the original enabled configuration together. All four new cases fail with the old filter; the eleven existing controls continue to pass.
The explicit Desktop blocklist omitted the Matrix reaction and follow-up toolsets that the campaign registers. Both therefore appeared as global capability switches despite the existing policy for platform-only tools. Add both registered toolset identifiers to the existing exclusions. Extend the UI and data contracts to cover their rows, bulk writes, search terms and counts while preserving stored settings and custom Matrix extensions. The three failing contract cases on the previous head now pass.
iainlane
force-pushed
the
codex/fu92-desktop-tool-curation
branch
from
October 2, 2026 18:41
32821fa to
a8b61d1
Compare
This branch has not been deployed
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.
Stack
All campaign PRs in this section target
main. This list records logical merge order. Nesting means the parent PR must merge before its child. Every prerequisite for a dependent must merge first. Only adjacent layers are shown; each linked PR description lists its other dependencies.Desktop already hides toolsets that require another messaging platform, but Matrix history, unread notifications, image packs, reactions and follow-ups were missing from its blocklist. Their rows appeared in the capability list and also affected counts, search suggestions and bulk toggles. Add the five registered names to the existing filter. Matrix room administration was already hidden. Custom extensions such as
matrix_customremain visible, and backend configuration retains its existing behaviour.This is FU92 with a logical dependency on #126398, the Matrix unread family. Merge that PR and its prerequisite stack first. The own two-commit UI layer is physically rebased directly onto the verified upstream snapshot
9a71d5a8b59b37d1795ab7065fbbe3b647ba5249because it imports no Matrix implementation. Review the own layer against that snapshot; prepared head:a8b61d1090defea96ec94ea9749539d4b4da18d4. The full original unread ancestry is archived as provenance, but is not duplicated in this frontend branch.The conflict resolution preserves the exact original final Matrix blocklist, including
matrix_admin, and the upstream Kanban plugin mapping. Both original authors, dates and complete messages are preserved with fresh signatures.Historical validation: two Vitest behaviour contracts cover visible switches, actual bulk writes in the selected profile, counts, search suggestions and unchanged Matrix configuration. The first patch reproduced four failures on the unchanged prerequisite, with eleven controls passing. The follow-up reproduced three failures for the omitted reaction toolsets and aggregate data, with fourteen controls passing. The final signed head passes all seventeen tests across two files with four workers. Renderer TypeScript checking and the production renderer build pass. Formatting, signature verification and the committed base-to-head whitespace check pass.
On that historical head, the full Desktop typecheck was blocked by the unchanged Electron test
electron/source-backend.test.ts:8, which cannot resolvewsor its declarations (TS2307). The same failure is reproduced on the unchanged prerequisite after a full locked workspace install. ESLint has no new findings; two existingdocumentwarnings remain in unrelated lines of the existing capabilities test. These limitations are recorded separately from the successful renderer checks.The established Desktop curation policy comes from commit
00779800f650c8b875f0f9ab6f08fa33531e6494. The later dashboard persistence fix3ffd8b3da062768b02fa85ba08d50de4c1fd116echanges a different surface. No Python tests assert on TypeScript source.The fresh locked-workspace validation on this prepared head passes the complete Desktop TypeScript check (renderer, Electron, end-to-end declarations and builder configuration), ESLint and the production renderer build. Full Desktop Vitest results are recorded separately because the native packaging fixtures require their actual host toolchains. No native packaging receipt is claimed by the renderer build.
Current full Desktop Vitest reports 13,728 tests passed, 11 failed and 25 skipped across 1,532 files. The recorded failures concern native-toolchain, packaging and fixture paths outside the two changed renderer files. The source comparison confirms those fixtures are unchanged from the fixed upstream snapshot; no baseline execution or successful native packaging result is claimed. The complete TypeScript check, ESLint and production renderer build pass.