Skip to content

fix(desktop): hide Matrix-only toolsets from capability toggles - #130719

Draft
iainlane wants to merge 2 commits into
NousResearch:mainfrom
iainlane:codex/fu92-desktop-tool-curation
Draft

iainlane wants to merge 2 commits into
NousResearch:mainfrom
iainlane:codex/fu92-desktop-tool-curation

Conversation

@iainlane

@iainlane iainlane commented Oct 1, 2026 •

Copy link
Copy Markdown

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_custom remain 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 9a71d5a8b59b37d1795ab7065fbbe3b647ba5249 because 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 resolve ws or its declarations (TS2307). The same failure is reproduced on the unchanged prerequisite after a full locked workspace install. ESLint has no new findings; two existing document warnings 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 fix 3ffd8b3da062768b02fa85ba08d50de4c1fd116e changes 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.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) platform/matrix Matrix adapter (E2EE) labels Oct 1, 2026
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
iainlane force-pushed the codex/fu92-desktop-tool-curation branch from 32821fa to a8b61d1 Compare October 2, 2026 18:41

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have platform/matrix Matrix adapter (E2EE) type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants