Files
management/analysis/data/markers.tsv
T
Thore Cimbal b8b853163d analysis: add deterministic inventory scripts and raw data
run_all.sh reproduces every file under analysis/data/ from zero: it
clones the in-scope components if missing, exports group issue metadata
from git.lab, and regenerates the inventories. Reruns are diff-clean --
no wall-clock time enters an output; 'days since' is measured against
the management repo's HEAD date.

The management repo is inventoried at main, not at the analysis branch,
so this analysis does not observe its own commits. inv_repo.py aborts
the run if anything outside analysis/ was modified.
2026-08-09 12:00:00 +00:00

90 KiB

1repopathlinemarkertextblame_datedays_since_blameblame_commitblame_author
2ThreadNet-Webapps/desktop/README.md58TODO[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]2026-05-10913da363517sorB
3ThreadNet-Webapps/desktop/README.md64TODOTODO: List native pre-requisites2026-05-10913da363517sorB
4ThreadNet-Webapps/desktop/playwright/e2e/launch/launch.spec.ts69XXX// XXX: this test works fine locally but in CI the app start races with the test plumbing up the stdout/stderr pipes2026-05-10913da363517sorB
5ThreadNet-Webapps/desktop/scripts/copy-res.ts57XXX// XXX: Use a debounce because for some reason if we read the language2026-05-10913da363517sorB
6ThreadNet-Webapps/desktop/src/protocol.ts28XXX// XXX: passing args to protocol handlers only works on Windows, so unpackaged deep-linking2026-05-10913da363517sorB
7ThreadNet-Webapps/desktop/src/vectormenu.ts132XXX// XXX: vectorConfig won't have defaults applied to it so we need to duplicate them here2026-05-10913da363517sorB
8ThreadNet-Webapps/desktop/src/webcontents-handler.ts136XXX// XXX: We cannot easily save a blob from the main process as2026-05-10913da363517sorB
9ThreadNet-Webapps/web/.eslintrc.cjs118XXX// XXX: Temporarily allow these as they are not available via the main export2026-05-10913da363517sorB
10ThreadNet-Webapps/web/playwright/e2e/composer/RTE.spec.ts36TODO// TODO add tests for rich text mode2026-05-10913da363517sorB
11ThreadNet-Webapps/web/playwright/e2e/composer/RTE.spec.ts90TODO// TODO add tests for rich text mode2026-05-10913da363517sorB
12ThreadNet-Webapps/web/playwright/e2e/invite/invite-dialog.spec.ts139TODO// TODO: implement the test on room-header.spec.ts2026-05-10913da363517sorB
13ThreadNet-Webapps/web/playwright/e2e/pinned-messages/index.ts67TODO// TODO: without this wait, some tests that send lots of messages flake2026-05-10913da363517sorB
14ThreadNet-Webapps/web/playwright/e2e/read-receipts/high-level.spec.ts207TODO// TODO: I (andyb) think this will fall in an encrypted room2026-05-10913da363517sorB
15ThreadNet-Webapps/web/playwright/e2e/read-receipts/high-level.spec.ts250TODO// TODO: I (andyb) think this will fall in an encrypted room2026-05-10913da363517sorB
16ThreadNet-Webapps/web/playwright/e2e/read-receipts/index.ts354TODO// TODO: without this wait, some tests that send lots of messages flake2026-05-10913da363517sorB
17ThreadNet-Webapps/web/playwright/e2e/spaces/spaces.spec.ts295XXX// XXX: We have some known contrast issues here2026-05-10913da363517sorB
18ThreadNet-Webapps/web/playwright/e2e/spaces/spaces.spec.ts363XXX// XXX: We have some known contrast issues here2026-05-10913da363517sorB
19ThreadNet-Webapps/web/playwright/e2e/spaces/threads-activity-centre/index.ts204TODO// TODO: without this wait, some tests that send lots of messages flake2026-05-10913da363517sorB
20ThreadNet-Webapps/web/playwright/e2e/spotlight/spotlight.spec.ts191TODO// TODO: We currently can’t test finding rooms on other homeservers/other protocols2026-05-10913da363517sorB
21ThreadNet-Webapps/web/playwright/e2e/threads/threads.spec.ts107TODO// TODO: remove this after fixing the issue of ReadReceiptGroup being hidden on the bubble layout2026-05-10913da363517sorB
22ThreadNet-Webapps/web/playwright/e2e/threads/threads.spec.ts111TODO// TODO: enable this after fixing the issue of ReadReceiptGroup being hidden on the bubble layout2026-05-10913da363517sorB
23ThreadNet-Webapps/web/playwright/e2e/threads/threads.spec.ts216XXX// XXX: one would expect this redaction to be shown in the thread the message was in, but due to redactions2026-05-10913da363517sorB
24ThreadNet-Webapps/web/playwright/e2e/timeline/timeline.spec.ts104XXX// XXX: If we send the second event too quickly, there won't be2026-05-10913da363517sorB
25ThreadNet-Webapps/web/playwright/e2e/timeline/timeline.spec.ts123XXX// XXX: If we send the second event too quickly, there won't be2026-05-10913da363517sorB
26ThreadNet-Webapps/web/playwright/e2e/timeline/timeline.spec.ts1346XXX// XXX: This test doesn't actually work because the service worker relies on IndexedDB, which Playwright forces2026-05-10913da363517sorB
27ThreadNet-Webapps/web/playwright/e2e/utils.ts24FIXME* FIXME this does not do what it is supposed to do, and I think it is unfixable.2026-05-10913da363517sorB
28ThreadNet-Webapps/web/playwright/pages/ElementAppPage.ts304TODO* TODO: fix this so that it works correctly if, say, the member list was open instead of the room info panel.2026-05-10913da363517sorB
29ThreadNet-Webapps/web/playwright/pages/bot.ts243XXX// XXX: workaround https://github.com/element-hq/element-web/issues/267552026-05-10913da363517sorB
30ThreadNet-Webapps/web/playwright/plugins/oauth_server/index.ts54TODO// TODO: validate that the request carries an auth header which matches the access token we issued above2026-05-10913da363517sorB
31ThreadNet-Webapps/web/res/css/_common.pcss189FIXME/* FIXME THEME - Tint by CSS rather than referencing a duplicate asset */2026-05-10913da363517sorB
32ThreadNet-Webapps/web/res/css/_common.pcss582XXX/* XXX: Our button style are a mess: buttons that happen to appear in dialogs get special styles applied2026-05-10913da363517sorB
33ThreadNet-Webapps/web/res/css/_common.pcss741TODO/* TODO: Review mx_GeneralButton usage to see if it can use a different class */2026-05-10913da363517sorB
34ThreadNet-Webapps/web/res/css/_common.pcss911TODO/* TODO: Review mx_MessageTimestamp usage after finishing migration of timeline tiles to shared components. */2026-05-10913da363517sorB
35ThreadNet-Webapps/web/res/css/structures/_FilePanel.pcss26FIXME/* FIXME: rather than having EventTile's default CSS be for MessagePanel,2026-05-10913da363517sorB
36ThreadNet-Webapps/web/res/css/structures/_SpacePanel.pcss206TODOtransition: all 0.2s ease-in-out; /* TODO transition */2026-05-10913da363517sorB
37ThreadNet-Webapps/web/res/css/views/auth/_InteractiveAuthEntryComponents.pcss40XXX/* XXX: This should be a common button class */2026-05-10913da363517sorB
38ThreadNet-Webapps/web/res/css/views/dialogs/security/_CreateCrossSigningDialog.pcss23TODO/* TODO: Consider setting this for all dialog titles. */2026-05-10913da363517sorB
39ThreadNet-Webapps/web/res/css/views/dialogs/security/_CreateSecretStorageDialog.pcss47TODO/* TODO: Consider setting this for all dialog titles. */2026-05-10913da363517sorB
40ThreadNet-Webapps/web/res/css/views/dialogs/security/_CreateSecretStorageDialog.pcss57FIXME/* FIXME: plinth colour in new theme(s). background-color: $accent; */2026-05-10913da363517sorB
41ThreadNet-Webapps/web/res/css/views/dialogs/security/_RestoreKeyBackupDialog.pcss15FIXME/* FIXME: plinth colour in new theme(s). background-color: $accent; */2026-05-10913da363517sorB
42ThreadNet-Webapps/web/res/css/views/elements/_Dropdown.pcss88XXX/* XXX: hack to prevent text box being too big and pushing */2026-05-10913da363517sorB
43ThreadNet-Webapps/web/res/css/views/elements/_Field.pcss8TODO/* TODO: Consider unifying with general input styles in _light.pcss */2026-05-10913da363517sorB
44ThreadNet-Webapps/web/res/css/views/elements/_GenericEventListSummary.pcss19TODOline-height: $font-30px; /* TODO: Use a variable */2026-05-10913da363517sorB
45ThreadNet-Webapps/web/res/css/views/elements/_GenericEventListSummary.pcss52TODOorder: 9; /* TODO: Remove */2026-05-10913da363517sorB
46ThreadNet-Webapps/web/res/css/views/elements/_RichText.pcss1XXX/* XXX: bleurgh, what is this? These classes totally break the component */2026-05-10913da363517sorB
47ThreadNet-Webapps/web/res/css/views/messages/_MJitsiWidgetEvent.pcss11XXXcolor: $header-panel-text-primary-color; /* XXX: Variable abuse */2026-05-10913da363517sorB
48ThreadNet-Webapps/web/res/css/views/messages/_MessageActionBar.pcss52TODO/* TODO: use a new class name instead */2026-05-10913da363517sorB
49ThreadNet-Webapps/web/res/css/views/messages/_ThreadActionBar.pcss43TODO/* TODO: use a new class name instead */2026-05-10913da363517sorB
50ThreadNet-Webapps/web/res/css/views/rooms/_AppsDrawer.pcss11TODO--minWidth: 240px; /* TODO this should be 300px but that's too large */2026-05-10913da363517sorB
51ThreadNet-Webapps/web/res/css/views/rooms/_EventBubbleTile.pcss301TODO/* TODO: Use a common class name instead */2026-05-10913da363517sorB
52ThreadNet-Webapps/web/res/css/views/rooms/_EventTile.pcss22TODOclear: both; /* TODO: check if this is necessary */2026-05-10913da363517sorB
53ThreadNet-Webapps/web/res/css/views/rooms/_EventTile.pcss152TODO/* TODO: adjust the values for IRC layout */2026-05-10913da363517sorB
54ThreadNet-Webapps/web/res/css/views/rooms/_EventTile.pcss209TODO/* TODO: ultimately we probably want some transition on here. */2026-05-10913da363517sorB
55ThreadNet-Webapps/web/res/css/views/rooms/_EventTile.pcss551TODO/* TODO: check if this would be necessary; */2026-05-10913da363517sorB
56ThreadNet-Webapps/web/res/css/views/rooms/_EventTile.pcss563TODO/* Reset default values. TODO: remove */2026-05-10913da363517sorB
57ThreadNet-Webapps/web/res/css/views/rooms/_RoomPreviewCard.pcss75XXX/* XXX Remove this when video rooms leave beta */2026-05-10913da363517sorB
58ThreadNet-Webapps/web/res/css/views/rooms/_ThreadSummary.pcss45XXX/* XXX: We use an HEXA `transparent` to work around a Safari <15.4 bug */2026-05-10913da363517sorB
59ThreadNet-Webapps/web/res/css/views/voip/_LegacyCallView.pcss16XXX/* XXX: PiPContainer sets pointer-events: none - should probably be set back in a better place */2026-05-10913da363517sorB
60ThreadNet-Webapps/web/res/decoder-ring/decoder.js90TODO// TODO: expiry/retry logic here?2026-05-10913da363517sorB
61ThreadNet-Webapps/web/res/themes/legacy-dark/css/_legacy-dark.pcss180TODO$button-danger-disabled-bg-color: #f5b6bb; /* TODO: Verify color */2026-05-10913da363517sorB
62ThreadNet-Webapps/web/res/themes/legacy-light/css/_legacy-light.pcss12TODOTODO: Consider putting all emoji fonts to the end rather than the front. */2026-05-10913da363517sorB
63ThreadNet-Webapps/web/res/themes/legacy-light/css/_legacy-light.pcss185XXX$video-feed-secondary-background: #394049; /* XXX: Color from dark theme */2026-05-10913da363517sorB
64ThreadNet-Webapps/web/res/themes/legacy-light/css/_legacy-light.pcss262TODO$button-danger-disabled-bg-color: #f5b6bb; /* TODO: Verify color */2026-05-10913da363517sorB
65ThreadNet-Webapps/web/res/themes/light-custom/css/_custom.pcss130TODO* TODO: Add link2026-05-10913da363517sorB
66ThreadNet-Webapps/web/res/themes/light/css/_light.pcss12TODOTODO: Consider putting all emoji fonts to the end rather than the front. */2026-05-10913da363517sorB
67ThreadNet-Webapps/web/res/themes/light/css/_light.pcss234TODO$button-danger-disabled-bg-color: #f5b6bb; /* TODO: Verify color */2026-05-10913da363517sorB
68ThreadNet-Webapps/web/res/themes/light/css/_light.pcss305XXX$video-feed-secondary-background: #394049; /* XXX: Color from dark theme */2026-05-10913da363517sorB
69ThreadNet-Webapps/web/src/@types/matrix-js-sdk.d.ts48XXX// XXX unspecced usages of `m.room.*` events2026-05-10913da363517sorB
70ThreadNet-Webapps/web/src/Avatar.ts106XXX// XXX: Ideally we'd clear this cache when the theme changes2026-05-10913da363517sorB
71ThreadNet-Webapps/web/src/Avatar.ts144XXX// XXX: We should find out what causes the name to sometimes be falsy.2026-05-10913da363517sorB
72ThreadNet-Webapps/web/src/DateUtils.ts39XXX// XXX: Ideally we could just specify `hour12: boolean` but it has issues on Chrome in the `en` locale2026-05-10913da363517sorB
73ThreadNet-Webapps/web/src/HtmlUtils.tsx361XXX// XXX: We sanitize the HTML whilst also highlighting its text nodes, to avoid accidentally trying2026-05-10913da363517sorB
74ThreadNet-Webapps/web/src/HtmlUtils.tsx365XXX// XXX: hacky bodge to temporarily apply a textFilter to the sanitizeParams structure.2026-05-10913da363517sorB
75ThreadNet-Webapps/web/src/IdentityAuthClient.tsx40XXX// XXX: We shouldn't have to create a whole new MatrixClient just to2026-05-10913da363517sorB
76ThreadNet-Webapps/web/src/IdentityAuthClient.tsx170XXX// XXX: The spec is `token`, but we used `access_token` for a Sydent release.2026-05-10913da363517sorB
77ThreadNet-Webapps/web/src/LegacyCallHandler.tsx528XXX// XXX: this is used by the IPC into Electron to keep device awake2026-05-10913da363517sorB
78ThreadNet-Webapps/web/src/LegacyCallHandler.tsx586TODO// TODO: We should either do away with these or figure out a copy for each code (expect user_hangup...)2026-05-10913da363517sorB
79ThreadNet-Webapps/web/src/Lifecycle.ts104XXX// XXX we might want to fire a new event here to let the app know that the login failed ?2026-05-10913da363517sorB
80ThreadNet-Webapps/web/src/Lifecycle.ts1136XXX// XXX: Defer this so that it doesn't race with MatrixChat unmounting the world by going to /#/welcome2026-05-10913da363517sorB
81ThreadNet-Webapps/web/src/Login.ts151XXX// XXX: Synapse historically wanted `number` and not `phone`2026-05-10913da363517sorB
82ThreadNet-Webapps/web/src/Login.ts273TODO// TODO: should we prompt here?2026-05-10913da363517sorB
83ThreadNet-Webapps/web/src/MatrixClientPeg.ts474XXX// XXX: what is our initial pagination token?! it somehow needs to be synchronised with /sync.2026-05-10913da363517sorB
84ThreadNet-Webapps/web/src/MediaDeviceHandler.ts18XXX// XXX: MediaDeviceKind is a union type, so we make our own enum2026-05-10913da363517sorB
85ThreadNet-Webapps/web/src/Modal.tsx183DEPRECATED* DEPRECATED.2026-05-10913da363517sorB
86ThreadNet-Webapps/web/src/Modal.tsx279XXX// XXX: This is destructive2026-05-10913da363517sorB
87ThreadNet-Webapps/web/src/Modal.tsx286XXX// XXX: This is destructive2026-05-10913da363517sorB
88ThreadNet-Webapps/web/src/Modal.tsx347XXX// XXX: This is destructive2026-05-10913da363517sorB
89ThreadNet-Webapps/web/src/Notifier.ts176XXX// XXX: exported for tests2026-05-10913da363517sorB
90ThreadNet-Webapps/web/src/Notifier.ts270XXX// XXX: Exported for tests2026-05-10913da363517sorB
91ThreadNet-Webapps/web/src/Notifier.ts331TODO// TODO: Support alternative branding in messaging2026-05-10913da363517sorB
92ThreadNet-Webapps/web/src/Notifier.ts431XXX// XXX: Exported for tests2026-05-10913da363517sorB
93ThreadNet-Webapps/web/src/Notifier.ts502XXX// XXX: exported for tests2026-05-10913da363517sorB
94ThreadNet-Webapps/web/src/Notifier.ts547TODO// TODO: Use the call_id to get the *correct* call. We assume there is only one call per room here.2026-05-10913da363517sorB
95ThreadNet-Webapps/web/src/Notifier.ts557XXX// XXX: Should use parseCallNotificationContent once the types are exported.2026-05-10913da363517sorB
96ThreadNet-Webapps/web/src/Registration.tsx25TODO// TODO: Update as needed for https://github.com/matrix-org/matrix-doc/issues/15142026-05-10913da363517sorB
97ThreadNet-Webapps/web/src/Resend.ts48XXX// XXX: temporary logging to try to diagnose2026-05-10913da363517sorB
98ThreadNet-Webapps/web/src/RoomNotifs.ts75XXX// XXX: We have to assume the default is to notify for all messages2026-05-10913da363517sorB
99ThreadNet-Webapps/web/src/ScalarAuthClient.ts22TODO// TODO: Generify the name of this class and all components within - it's not just for Scalar.2026-05-10913da363517sorB
100ThreadNet-Webapps/web/src/ScalarMessaging.ts10TODO// TODO: Generify the name of this and all components within - it's not just for scalar.2026-05-10913da363517sorB
101ThreadNet-Webapps/web/src/ScalarMessaging.ts192TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
102ThreadNet-Webapps/web/src/ScalarMessaging.ts211TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
103ThreadNet-Webapps/web/src/ScalarMessaging.ts505XXX// XXX: This gets the raw event object (I think because we can't2026-05-10913da363517sorB
104ThreadNet-Webapps/web/src/ScalarMessaging.ts868TODO// TODO -- Scalar postMessage API should be namespaced with event.data.api field2026-05-10913da363517sorB
105ThreadNet-Webapps/web/src/SendHistoryManager.ts30TODO// TODO: Performance issues?2026-05-10913da363517sorB
106ThreadNet-Webapps/web/src/SlidingSyncManager.ts336TODO// the request change we have sent out. TODO: this may not be true if you concurrently subscribe to a room :/2026-05-10913da363517sorB
107ThreadNet-Webapps/web/src/TextForEvent.tsx65FIXME// FIXME: Find a better way to determine this from the event?2026-05-10913da363517sorB
108ThreadNet-Webapps/web/src/TextForEvent.tsx538XXX// XXX: This is also surely broken for i18n2026-05-10913da363517sorB
109ThreadNet-Webapps/web/src/TextForEvent.tsx904TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
110ThreadNet-Webapps/web/src/UserActivity.ts180XXX// XXX: exported for tests2026-05-10913da363517sorB
111ThreadNet-Webapps/web/src/accessibility/KeyboardShortcutUtils.ts69XXX// XXX: This keyboard shortcut isn't manually added to2026-05-10913da363517sorB
112ThreadNet-Webapps/web/src/accessibility/KeyboardShortcuts.ts160TODO// TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager2026-05-10913da363517sorB
113ThreadNet-Webapps/web/src/accessibility/KeyboardShortcuts.ts165TODO// TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager2026-05-10913da363517sorB
114ThreadNet-Webapps/web/src/accessibility/KeyboardShortcuts.ts325TODO// TODO: TravisR will fix this nightmare when the new version of the SettingsStore becomes a thing2026-05-10913da363517sorB
115ThreadNet-Webapps/web/src/accessibility/KeyboardShortcuts.ts326XXX// XXX: Exported for tests2026-05-10913da363517sorB
116ThreadNet-Webapps/web/src/async-components/views/dialogs/security/ImportE2eKeysDialog.tsx110TODO// TODO: it would probably be nice to give some feedback about what we've imported here.2026-05-10913da363517sorB
117ThreadNet-Webapps/web/src/autocomplete/UserProvider.tsx87TODO// TODO: lazyload if we have no ev.sender room member?2026-05-10913da363517sorB
118ThreadNet-Webapps/web/src/components/structures/ContextMenu.tsx176XXX// XXX: This isn't pretty but the only way to allow opening a different context menu on right click whilst2026-05-10913da363517sorB
119ThreadNet-Webapps/web/src/components/structures/EmbeddedPage.tsx112HACK// HACK: Workaround for the context's MatrixClient not being set up at render time.2026-05-10913da363517sorB
120ThreadNet-Webapps/web/src/components/structures/EmbeddedPage.tsx119HACK// HACK: Workaround for the context's MatrixClient not updating.2026-05-10913da363517sorB
121ThreadNet-Webapps/web/src/components/structures/IndicatorScrollbar.tsx155HACK// HACK: We increase the amount of scroll to counteract smooth scrolling browsers.2026-05-10913da363517sorB
122ThreadNet-Webapps/web/src/components/structures/LegacyCallEventGrouper.ts95FIXME// FIXME: Find a better way to determine this from the event?2026-05-10913da363517sorB
123ThreadNet-Webapps/web/src/components/structures/LoggedInView.tsx228TODO// TODO: In a future app release, remove support for legacy key.2026-05-10913da363517sorB
124ThreadNet-Webapps/web/src/components/structures/LoggedInView.tsx298TODO// TODO decrease this once Spaces launches as it'll no longer need to include the 56px Community Panel2026-05-10913da363517sorB
125ThreadNet-Webapps/web/src/components/structures/LoggedInView.tsx677XXX// XXX: Forwarding Dead keys in this way does not work as intended but better to at least2026-05-10913da363517sorB
126ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx176TODO* TODO: this doesn't work well, because updates to React state are not instantaneous, meaning that if several2026-05-10913da363517sorB
127ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx235XXX* XXX it's unclear if this is ever cleared, so what happens if the user logs out and then logs back in?2026-05-10913da363517sorB
128ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx308TODO// TODO: show an error screen, rather than a spinner of doom2026-05-10913da363517sorB
129ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx548XXX// XXX: This is a very unreliable way to detect whether or not the the devtools are open2026-05-10913da363517sorB
130ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx684XXX// XXX: This is a collection of several hacks to solve a minor problem. We want to2026-05-10913da363517sorB
131ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx1226TODO// TODO: Immutable DMs replaces this2026-05-10913da363517sorB
132ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx1423HACK// HACK: This is a pretty brutal way of threading the invite back through2026-05-10913da363517sorB
133ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx1542XXX// XXX: fix this properly by having Lifecycle not emit OnLoggedIn when it knows it is about to emit a2026-05-10913da363517sorB
134ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx1943TODO// TODO: Handle encoded room/event IDs: https://github.com/vector-im/element-web/issues/91492026-05-10913da363517sorB
135ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx1979TODO// TODO: Replace oob_data with the threepidInvite (which has the same info).2026-05-10913da363517sorB
136ThreadNet-Webapps/web/src/components/structures/MatrixChat.tsx2153XXX// XXX: workaround for https://github.com/vector-im/element-web/issues/11643 causing a login-loop2026-05-10913da363517sorB
137ThreadNet-Webapps/web/src/components/structures/MessagePanel.tsx481TODO// TODO: Implement granular (per-room) hide options2026-05-10913da363517sorB
138ThreadNet-Webapps/web/src/components/structures/RightPanel.tsx126XXX// XXX: There are three different ways of 'closing' this panel depending on what state2026-05-10913da363517sorB
139ThreadNet-Webapps/web/src/components/structures/RoomSearchView.tsx48XXX// XXX: todo: merge overlapping results somehow?2026-05-10913da363517sorB
140ThreadNet-Webapps/web/src/components/structures/RoomSearchView.tsx49XXX// XXX: why doesn't searching on name work?2026-05-10913da363517sorB
141ThreadNet-Webapps/web/src/components/structures/RoomSearchView.tsx222XXX// XXX: can this ever happen? It will make the result count2026-05-10913da363517sorB
142ThreadNet-Webapps/web/src/components/structures/RoomView.tsx2356XXX// XXX: in future we could give the option of a 'Preview' button which lets them view anyway.2026-05-10913da363517sorB
143ThreadNet-Webapps/web/src/components/structures/ScrollPanel.tsx46XXX* XXX: It's likely this is unnecessary and can be derived from2026-05-10913da363517sorB
144ThreadNet-Webapps/web/src/components/structures/ScrollPanel.tsx573TODO// TODO: Document what magic number 0.9 is doing2026-05-10913da363517sorB
145ThreadNet-Webapps/web/src/components/structures/ScrollPanel.tsx648TODO// TODO: do a binary search here, as items are sorted by offsetTop2026-05-10913da363517sorB
146ThreadNet-Webapps/web/src/components/structures/ScrollPanel.tsx933TODO// TODO: the classnames on the div and ol could do with being updated to2026-05-10913da363517sorB
147ThreadNet-Webapps/web/src/components/structures/SpaceHierarchy.tsx405XXX// XXX: This logic is duplicated from the JS SDK which would normally decide what the name is.2026-05-10913da363517sorB
148ThreadNet-Webapps/web/src/components/structures/SpaceHierarchy.tsx619TODOsetRooms([]); // TODO2026-05-10913da363517sorB
149ThreadNet-Webapps/web/src/components/structures/TimelinePanel.tsx262XXX// XXX: we could track RM per TimelineSet rather than per Room.2026-05-10913da363517sorB
150ThreadNet-Webapps/web/src/components/structures/TimelinePanel.tsx872XXX// XXX: roomReadMarkerTsMap not updated here so it is now inconsistent. Replace2026-05-10913da363517sorB
151ThreadNet-Webapps/web/src/components/structures/TimelinePanel.tsx894TODO// TODO: We should restrict this to only events in our timeline,2026-05-10913da363517sorB
152ThreadNet-Webapps/web/src/components/structures/UserView.tsx51XXX// XXX: We shouldn't need to null check the userId here, but we declare2026-05-10913da363517sorB
153ThreadNet-Webapps/web/src/components/structures/ViewSource.tsx61FIXMEconst decryptedEventSource = mxEvent.clearEvent; // FIXME: clearEvent is private2026-05-10913da363517sorB
154ThreadNet-Webapps/web/src/components/structures/auth/Login.tsx290TODO// TODO: instead hide the Register button if registration is disabled by checking with the server,2026-05-10913da363517sorB
155ThreadNet-Webapps/web/src/components/viewmodels/right_panel/user_info/admin/UserInfoMuteButtonViewModel.tsx56FIXME// FIXME: per the spec, if `events_default` is unset, it defaults to zero. If2026-05-10913da363517sorB
156ThreadNet-Webapps/web/src/components/views/auth/InteractiveAuthEntryComponents.tsx346XXX// XXX: replace with StyledCheckbox2026-05-10913da363517sorB
157ThreadNet-Webapps/web/src/components/views/auth/InteractiveAuthEntryComponents.tsx567TODO1, // TODO: Multiple send attempts?2026-05-10913da363517sorB
158ThreadNet-Webapps/web/src/components/views/beacon/RoomCallBanner.tsx46TODO// TODO matrix rtc2026-05-10913da363517sorB
159ThreadNet-Webapps/web/src/components/views/beta/BetaCard.tsx25XXX// XXX: Keep this around for re-use in future Betas2026-05-10913da363517sorB
160ThreadNet-Webapps/web/src/components/views/context_menus/MessageContextMenu.tsx147XXXprivate reactButtonRef = createRef<any>(); // XXX Ref to a functional component2026-05-10913da363517sorB
161ThreadNet-Webapps/web/src/components/views/context_menus/MessageContextMenu.tsx510XXX// XXX: Typescript signature for AccessibleButton doesn't work properly for non-inputs like `a`2026-05-10913da363517sorB
162ThreadNet-Webapps/web/src/components/views/context_menus/MessageContextMenu.tsx545XXX// XXX: Typescript signature for AccessibleButton doesn't work properly for non-inputs like `a`2026-05-10913da363517sorB
163ThreadNet-Webapps/web/src/components/views/context_menus/MessageContextMenu.tsx599XXX// XXX: Typescript signature for AccessibleButton doesn't work properly for non-inputs like `a`2026-05-10913da363517sorB
164ThreadNet-Webapps/web/src/components/views/context_menus/WidgetContextMenu.tsx109XXX// XXX: won't i18n well, but looks like widget api only support 'message'?2026-05-10913da363517sorB
165ThreadNet-Webapps/web/src/components/views/dialogs/BaseDialog.tsx106XXX// XXX: The contract on MatrixClientContext says it is only available within a LoggedInView subtree,2026-05-10913da363517sorB
166ThreadNet-Webapps/web/src/components/views/dialogs/BaseDialog.tsx175XXX// XXX: We can't import ModuleAPI here because it causes a dependency cycle - hack and2026-05-10913da363517sorB
167ThreadNet-Webapps/web/src/components/views/dialogs/BetaFeedbackDialog.tsx20XXX// XXX: Keep this around for re-use in future Betas2026-05-10913da363517sorB
168ThreadNet-Webapps/web/src/components/views/dialogs/DeactivateAccountDialog.tsx118XXX// XXX: this should be returning a promise to maintain the state inside the state machine correct2026-05-10913da363517sorB
169ThreadNet-Webapps/web/src/components/views/dialogs/DeactivateAccountDialog.tsx188XXX// XXX: onUIAuthComplete breaches the expected method contract, it gets away with it because it2026-05-10913da363517sorB
170ThreadNet-Webapps/web/src/components/views/dialogs/FeedbackDialog.tsx48TODO// TODO: Handle rejection.2026-05-10913da363517sorB
171ThreadNet-Webapps/web/src/components/views/dialogs/GenericFeatureFeedbackDialog.tsx41TODO// TODO: Handle rejection.2026-05-10913da363517sorB
172ThreadNet-Webapps/web/src/components/views/dialogs/ModalWidgetDialog.tsx149TODO// TODO: Replace these with proper widget params2026-05-10913da363517sorB
173ThreadNet-Webapps/web/src/components/views/dialogs/ModuleUiDialog.tsx77XXX// XXX: we have to fudge the types here a little as the react-sdk-module-api lacks React 19 support2026-05-10913da363517sorB
174ThreadNet-Webapps/web/src/components/views/dialogs/PollHistoryDialog.tsx29TODO// @TODO hide dialog title somehow2026-05-10913da363517sorB
175ThreadNet-Webapps/web/src/components/views/dialogs/ScrollableBaseModal.tsx40XXX// XXX: The contract on MatrixClientContext says it is only available within a LoggedInView subtree,2026-05-10913da363517sorB
176ThreadNet-Webapps/web/src/components/views/dialogs/UserSettingsDialog.tsx265XXX// XXX: SDKContext is provided within the LoggedInView subtree.2026-05-10913da363517sorB
177ThreadNet-Webapps/web/src/components/views/dialogs/WidgetCapabilitiesPromptDialog.tsx30TODOwidgetKind: WidgetKind; // TODO: Refactor into the Widget class2026-05-10913da363517sorB
178ThreadNet-Webapps/web/src/components/views/dialogs/spotlight/SpotlightDialog.tsx282TODO// TODO we may want to put invites in their own list2026-05-10913da363517sorB
179ThreadNet-Webapps/web/src/components/views/directory/NetworkDropdown.tsx91XXX// XXX: This seems naff but is needed to convince TypeScript that the overload is fine2026-05-10913da363517sorB
180ThreadNet-Webapps/web/src/components/views/directory/NetworkDropdown.tsx107XXX// XXX: This seems naff but is needed to convince TypeScript that the overload is fine2026-05-10913da363517sorB
181ThreadNet-Webapps/web/src/components/views/elements/AppPermission.tsx66HACK// HACK: We're relying on the query params when we should be relying on the widget's `data`.2026-05-10913da363517sorB
182ThreadNet-Webapps/web/src/components/views/elements/AppTile.tsx552XXX// XXX: This removes persistent elements from the DOM entirely, which feels like2026-05-10913da363517sorB
183ThreadNet-Webapps/web/src/components/views/elements/AppTile.tsx667TODO// TODO replace with full screen interactions2026-05-10913da363517sorB
184ThreadNet-Webapps/web/src/components/views/elements/ImageView.tsx127XXX// XXX: Refs to functional components2026-05-10913da363517sorB
185ThreadNet-Webapps/web/src/components/views/elements/RoomAliasField.tsx152XXX// XXX: FIXME https://github.com/matrix-org/matrix-doc/issues/6682026-05-10913da363517sorB
186ThreadNet-Webapps/web/src/components/views/elements/SSOButtons.tsx126TODO// TODO fallback icon2026-05-10913da363517sorB
187ThreadNet-Webapps/web/src/components/views/elements/Spinner.tsx17XXXonFinished: any; // XXX: Spinner pretends to be a dialog so it must accept an onFinished, but it never calls it2026-05-10913da363517sorB
188ThreadNet-Webapps/web/src/components/views/elements/TruncatedList.tsx45XXX// XXX: I'm not sure why anything would pass null into this, it seems2026-05-10913da363517sorB
189ThreadNet-Webapps/web/src/components/views/messages/IBodyProps.ts33TODOonMessageAllowed?: () => void; // TODO: Docs2026-05-10913da363517sorB
190ThreadNet-Webapps/web/src/components/views/messages/MImageBody.tsx216FIXME// FIXME: we let images grow as wide as you like, rather than capped to 800x600.2026-05-10913da363517sorB
191ThreadNet-Webapps/web/src/components/views/messages/MImageBody.tsx534XXX// XXX: Arguably we may want a different label when the animated image is WEBP and not GIF2026-05-10913da363517sorB
192ThreadNet-Webapps/web/src/components/views/messages/MImageBody.tsx584HACK{/* HACK: This div fills out space while the image loads, to prevent scroll jumps */}2026-05-10913da363517sorB
193ThreadNet-Webapps/web/src/components/views/messages/MessageEvent.tsx293TODO// TODO: move to eventTypes when location sharing spec stabilises2026-05-10913da363517sorB
194ThreadNet-Webapps/web/src/components/views/polls/pollHistory/PollHistory.tsx62TODO{/* @TODO this probably needs some style */}2026-05-10913da363517sorB
195ThreadNet-Webapps/web/src/components/views/right_panel/RoomSummaryCardView.tsx134XXX// XXX: this name should be part of the view model2026-05-10913da363517sorB
196ThreadNet-Webapps/web/src/components/views/right_panel/UserInfo.tsx100FIXME// FIXME: per the spec, if `events_default` is unset, it defaults to zero. If2026-05-10913da363517sorB
197ThreadNet-Webapps/web/src/components/views/right_panel/VerificationPanel.tsx90HACK// HACK: This is a terrible idea.2026-05-10913da363517sorB
198ThreadNet-Webapps/web/src/components/views/right_panel/VerificationPanel.tsx186TODO// TODO: add way to open camera to scan a QR code2026-05-10913da363517sorB
199ThreadNet-Webapps/web/src/components/views/room_settings/AliasSettings.tsx217TODO// TODO: Add error handling based upon server validation2026-05-10913da363517sorB
200ThreadNet-Webapps/web/src/components/views/room_settings/AliasSettings.tsx261TODO// TODO: In future, we should probably be making sure that the alias actually belongs2026-05-10913da363517sorB
201ThreadNet-Webapps/web/src/components/views/room_settings/RoomProfileSettings.tsx53TODO// TODO: Merge with ProfileSettings?2026-05-10913da363517sorB
202ThreadNet-Webapps/web/src/components/views/room_settings/RoomProfileSettings.tsx141TODO// TODO: What do we do about errors?2026-05-10913da363517sorB
203ThreadNet-Webapps/web/src/components/views/room_settings/RoomProfileSettings.tsx162XXX// XXX: Note that we deliberately send an empty string on an empty topic rather2026-05-10913da363517sorB
204ThreadNet-Webapps/web/src/components/views/rooms/BasicMessageComposer.tsx417XXX// XXX: needed when going up and down in editing messages ... not sure why yet2026-05-10913da363517sorB
205ThreadNet-Webapps/web/src/components/views/rooms/BasicMessageComposer.tsx751TODO// TODO: does this allow us to get rid of EditorStateTransfer?2026-05-10913da363517sorB
206ThreadNet-Webapps/web/src/components/views/rooms/EmojiButton.tsx48TODO// TODO: replace ContextMenuTooltipButton with a unified representation of2026-05-10913da363517sorB
207ThreadNet-Webapps/web/src/components/views/rooms/ExtraTile.tsx37XXX// XXX: We copy classes because it's easier2026-05-10913da363517sorB
208ThreadNet-Webapps/web/src/components/views/rooms/LegacyRoomList.tsx433TODO// TODO: Replace with archived view: https://github.com/vector-im/element-web/issues/140382026-05-10913da363517sorB
209ThreadNet-Webapps/web/src/components/views/rooms/MessageComposerButtons.tsx269XXX// XXX: recording UI does not work well in narrow mode, so hide for now2026-05-10913da363517sorB
210ThreadNet-Webapps/web/src/components/views/rooms/NewRoomIntro.tsx100XXX// XXX: We should be using a real member object and not assuming what the receiver wants.2026-05-10913da363517sorB
211ThreadNet-Webapps/web/src/components/views/rooms/ReadReceiptGroup.tsx226XXX// XXX: We should be using a real member object and not assuming what the receiver wants.2026-05-10913da363517sorB
212ThreadNet-Webapps/web/src/components/views/rooms/RoomHeader/RoomHeader.tsx441DEPRECATED// DEPRECATED: Buttons added by a legacy react-sdk module API module.2026-05-10913da363517sorB
213ThreadNet-Webapps/web/src/components/views/rooms/RoomPreviewCard.tsx40XXX// XXX This component is currently only used for spaces and video rooms, though2026-05-10913da363517sorB
214ThreadNet-Webapps/web/src/components/views/rooms/RoomSublist.tsx59HACK// HACK: We really shouldn't have to do this.2026-05-10913da363517sorB
215ThreadNet-Webapps/web/src/components/views/rooms/RoomSublist.tsx86TODO// TODO: Use re-resizer's NumberSize when it is exposed as the type2026-05-10913da363517sorB
216ThreadNet-Webapps/web/src/components/views/rooms/RoomSublist.tsx278XXX// XXX: we have to do this a tick later because we have incorrect intermediate props during a room change2026-05-10913da363517sorB
217ThreadNet-Webapps/web/src/components/views/rooms/RoomSublist.tsx527HACK// HACK: We break typing here, but this 'extra tiles' property shouldn't exist.2026-05-10913da363517sorB
218ThreadNet-Webapps/web/src/components/views/rooms/RoomTile.tsx298TODO// TODO: [FTUE Notifications] Probably need to detect global mute state2026-05-10913da363517sorB
219ThreadNet-Webapps/web/src/components/views/rooms/Stickerpicker.tsx78TODO// TODO: Pick the right manager for the widget2026-05-10913da363517sorB
220ThreadNet-Webapps/web/src/components/views/rooms/Stickerpicker.tsx242TODO// TODO - Add support for Stickerpickers from multiple app stores.2026-05-10913da363517sorB
221ThreadNet-Webapps/web/src/components/views/rooms/Stickerpicker.tsx257FIXME// FIXME: could this use the same code as other apps?2026-05-10913da363517sorB
222ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete.tsx77TODO// TODO determine if utils in SlashCommands.tsx are required.2026-05-10913da363517sorB
223ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete.tsx117TODO// TODO - determine if we show all of the /command suggestions, there are some options in the2026-05-10913da363517sorB
224ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/hooks/useInitialContent.ts45TODO// TODO local storage2026-05-10913da363517sorB
225ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners.ts154TODO// TODO use getKeyBindingsManager().getMessageComposerAction(event) like in useInputEventProcessor2026-05-10913da363517sorB
226ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts58TODO// TODO insert mention - see SendMessageComposer2026-05-10913da363517sorB
227ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts60TODO// TODO insert quote message - see SendMessageComposer2026-05-10913da363517sorB
228ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts71TODO// TODO markdown support2026-05-10913da363517sorB
229ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts95TODO// TODO Do we need to attach mentions here?2026-05-10913da363517sorB
230ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts96TODO// TODO Handle editing?2026-05-10913da363517sorB
231ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts63TODO// TODO thread2026-05-10913da363517sorB
232ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts67TODO// TODO thread2026-05-10913da363517sorB
233ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts116TODO// TODO replace emotion end of message ?2026-05-10913da363517sorB
234ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts118TODO// TODO quick reaction2026-05-10913da363517sorB
235ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts164TODO// TODO save history2026-05-10913da363517sorB
236ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts165TODO// TODO save local state2026-05-10913da363517sorB
237ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts198TODO// TODO emoji2026-05-10913da363517sorB
238ThreadNet-Webapps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts227TODO// TODO Slash Commands2026-05-10913da363517sorB
239ThreadNet-Webapps/web/src/components/views/settings/AddRemoveThreepids.tsx93XXX// XXX: Sydent will accept a number without country code if you add2026-05-10913da363517sorB
240ThreadNet-Webapps/web/src/components/views/settings/AddRemoveThreepids.tsx375TODO// TODO: Inline field validation2026-05-10913da363517sorB
241ThreadNet-Webapps/web/src/components/views/settings/ChangePassword.tsx241TODO// TODO: We can remove this check (but should add some Playwright tests to2026-05-10913da363517sorB
242ThreadNet-Webapps/web/src/components/views/settings/Notifications.tsx341XXX// XXX: Can this even happen? How do we safely recover?2026-05-10913da363517sorB
243ThreadNet-Webapps/web/src/components/views/settings/Notifications.tsx481XXX// XXX: Magic number2026-05-10913da363517sorB
244ThreadNet-Webapps/web/src/components/views/settings/Notifications.tsx489XXX// XXX: Magic number2026-05-10913da363517sorB
245ThreadNet-Webapps/web/src/components/views/settings/Notifications.tsx602XXX// XXX: Horrible assumption that we don't need the remaining fields2026-05-10913da363517sorB
246ThreadNet-Webapps/web/src/components/views/settings/SetIdServer.tsx44XXX// XXX: duplicated logic from js-sdk but it's quite tied up in the validation logic in the2026-05-10913da363517sorB
247ThreadNet-Webapps/web/src/components/views/settings/ThemeChoicePanel.tsx125XXX// XXX: The local echoed value appears to be unreliable, in particular2026-05-10913da363517sorB
248ThreadNet-Webapps/web/src/components/views/settings/ThemeChoicePanel.tsx251XXX// XXX: need some schema for this2026-05-10913da363517sorB
249ThreadNet-Webapps/web/src/components/views/settings/tabs/room/BridgeSettingsTab.tsx61TODO// TODO: We don't have this link yet: this will prevent the translators2026-05-10913da363517sorB
250ThreadNet-Webapps/web/src/components/views/settings/tabs/room/BridgeSettingsTab.tsx83TODO// TODO: We don't have this link yet: this will prevent the translators2026-05-10913da363517sorB
251ThreadNet-Webapps/web/src/components/views/settings/tabs/room/NotificationSettingsTab.tsx104XXX// XXX: I've observed browsers allowing users to pick a audio/ogg files,2026-05-10913da363517sorB
252ThreadNet-Webapps/web/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx63TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
253ThreadNet-Webapps/web/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx274TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
254ThreadNet-Webapps/web/src/components/views/settings/tabs/user/AccountUserSettingsTab.tsx151TODO// TODO: Figure out a design that doesn't involve replacing the current dialog2026-05-10913da363517sorB
255ThreadNet-Webapps/web/src/components/views/settings/tabs/user/AccountUserSettingsTab.tsx160TODO// TODO: Figure out a design that doesn't involve replacing the current dialog2026-05-10913da363517sorB
256ThreadNet-Webapps/web/src/components/views/spaces/QuickThemeSwitcher.tsx57XXX// XXX: The local echoed value appears to be unreliable, in particular2026-05-10913da363517sorB
257ThreadNet-Webapps/web/src/components/views/spaces/SpacePanel.tsx369TODOaria-selected={false} // TODO2026-05-10913da363517sorB
258ThreadNet-Webapps/web/src/device-listener/DeviceListenerOtherDevices.ts86TODO// TODO: maybe we don't need a full DeviceListener check? (Maybe we only2026-05-10913da363517sorB
259ThreadNet-Webapps/web/src/device-listener/DeviceListenerOtherDevices.ts121TODO// TODO: maybe we don't need a full DeviceListener check? (Maybe we only2026-05-10913da363517sorB
260ThreadNet-Webapps/web/src/dispatcher/actions.ts13TODO// TODO: Populate with actual actions2026-05-10913da363517sorB
261ThreadNet-Webapps/web/src/dispatcher/payloads/OpenToTabPayload.ts13TODOaction: Action.ViewUserSettings | string; // TODO: Add room settings action2026-05-10913da363517sorB
262ThreadNet-Webapps/web/src/effects/effect.ts34TODO* animation options TODO2026-05-10913da363517sorB
263ThreadNet-Webapps/web/src/emojipicker/recent.ts28TODO// TODO remove this after some time2026-05-10913da363517sorB
264ThreadNet-Webapps/web/src/events/EventTileFactory.tsx138TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
265ThreadNet-Webapps/web/src/events/EventTileFactory.tsx227TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
266ThreadNet-Webapps/web/src/events/EventTileFactory.tsx427XXX// XXX: this'll eventually be dynamic based on the fields once we have extensible event types2026-05-10913da363517sorB
267ThreadNet-Webapps/web/src/hooks/useSettings.ts32XXX// XXX: This seems naff but is needed to convince TypeScript that the overload is fine2026-05-10913da363517sorB
268ThreadNet-Webapps/web/src/hooks/useSettings.ts41XXX// XXX: This seems naff but is needed to convince TypeScript that the overload is fine2026-05-10913da363517sorB
269ThreadNet-Webapps/web/src/indexing/EventIndex.ts500TODO// TODO we need to ensure to use member lazy loading with this2026-05-10913da363517sorB
270ThreadNet-Webapps/web/src/indexing/EventIndex.ts580TODO// TODO if there are no events at this point we're missing a lot2026-05-10913da363517sorB
271ThreadNet-Webapps/web/src/integrations/IntegrationManagers.ts84TODO// TODO: Log out of the scalar clients2026-05-10913da363517sorB
272ThreadNet-Webapps/web/src/mjolnir/Mjolnir.ts22TODO// TODO: Move this and related files to the js-sdk or something once finalized.2026-05-10913da363517sorB
273ThreadNet-Webapps/web/src/rageshake/submit-rageshake.ts155XXX// XXX: This is synapse-specific but better than nothing until MSC support for a server version endpoint2026-05-10913da363517sorB
274ThreadNet-Webapps/web/src/rageshake/submit-rageshake.ts170XXX// XXX: This relies on the federation listener being delegated via well-known2026-05-10913da363517sorB
275ThreadNet-Webapps/web/src/resizer/resizer.ts36TODO// TODO move vertical/horizontal to config option/container class2026-05-10913da363517sorB
276ThreadNet-Webapps/web/src/settings/SettingLevel.ts13TODO// TODO: [TS] Follow naming convention2026-05-10913da363517sorB
277ThreadNet-Webapps/web/src/settings/Settings.tsx165XXX// XXX: Keep this around for re-use in future Betas2026-05-10913da363517sorB
278ThreadNet-Webapps/web/src/settings/Settings.tsx736TODO// TODO: Wire up appropriately to UI (FTUE notifications)2026-05-10913da363517sorB
279ThreadNet-Webapps/web/src/settings/Settings.tsx1274TODO// TODO: Rename with settings v32026-05-10913da363517sorB
280ThreadNet-Webapps/web/src/settings/controllers/DeviceIsolationModeController.ts36TODO: // TODO: As part of https://github.com/element-hq/element-meta/issues/2492, we will change2026-05-10913da363517sorB
281ThreadNet-Webapps/web/src/settings/controllers/NotificationControllers.ts33TODO// TODO: [TS] Formal type that doesn't cause a cyclical reference.2026-05-10913da363517sorB
282ThreadNet-Webapps/web/src/settings/enums/Layout.ts10TODO/* TODO: This should be later reworked into something more generic */2026-05-10913da363517sorB
283ThreadNet-Webapps/web/src/settings/handlers/AccountSettingsHandler.ts224TODO// TODO: [TS] Types on return2026-05-10913da363517sorB
284ThreadNet-Webapps/web/src/settings/handlers/DeviceSettingsHandler.ts105TODO// TODO: [TS] Type return2026-05-10913da363517sorB
285ThreadNet-Webapps/web/src/settings/handlers/DeviceSettingsHandler.ts121XXX// XXX: This turns they key names into `mx_labs_feature_feature_x` (double feature).2026-05-10913da363517sorB
286ThreadNet-Webapps/web/src/settings/handlers/RoomAccountSettingsHandler.ts148TODO// TODO: [TS] Type return2026-05-10913da363517sorB
287ThreadNet-Webapps/web/src/settings/watchers/ThemeWatcher.ts74XXX// XXX forceTheme2026-05-10913da363517sorB
288ThreadNet-Webapps/web/src/settings/watchers/ThemeWatcher.ts79XXX// XXX: forceTheme param added here as local echo appears to be unreliable2026-05-10913da363517sorB
289ThreadNet-Webapps/web/src/slash-commands/SlashCommands.tsx678XXX// XXX: We should be using a real member object and not assuming what the receiver wants.2026-05-10913da363517sorB
290ThreadNet-Webapps/web/src/slash-commands/utils.ts44XXX// XXX: workaround for https://github.com/microsoft/TypeScript/issues/318162026-05-10913da363517sorB
291ThreadNet-Webapps/web/src/stores/ActiveWidgetStore.ts52XXX// XXX: This listens for state events in order to remove the active widget.2026-05-10913da363517sorB
292ThreadNet-Webapps/web/src/stores/ActiveWidgetStore.ts56TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
293ThreadNet-Webapps/web/src/stores/CallStore.ts149XXX// XXX: This method is guarded with the flag this.inUpdateRoom because2026-05-10913da363517sorB
294ThreadNet-Webapps/web/src/stores/MemberListStore.ts112XXX// XXX: this user may have no lastPresenceTs value!2026-05-10913da363517sorB
295ThreadNet-Webapps/web/src/stores/OwnBeaconStore.ts305TODO// TODO check powerlevels here2026-05-10913da363517sorB
296ThreadNet-Webapps/web/src/stores/ThreepidInviteStore.ts22TODO// TODO: Figure out if these are ever populated2026-05-10913da363517sorB
297ThreadNet-Webapps/web/src/stores/WidgetStore.ts35TODO// TODO consolidate WidgetEchoStore into this2026-05-10913da363517sorB
298ThreadNet-Webapps/web/src/stores/WidgetStore.ts36TODO// TODO consolidate ActiveWidgetStore into this2026-05-10913da363517sorB
299ThreadNet-Webapps/web/src/stores/message-preview/MessagePreviewStore.ts263TODOconst event = payload.event; // TODO: Type out the dispatcher2026-05-10913da363517sorB
300ThreadNet-Webapps/web/src/stores/message-preview/previews/MessageEventPreview.ts39XXX// XXX: Newer relations have a getRelation() function which is not compatible with replies.2026-05-10913da363517sorB
301ThreadNet-Webapps/web/src/stores/notifications/NotificationLevel.ts15TODO// TODO: Remove bold with notifications: https://github.com/vector-im/element-web/issues/142272026-05-10913da363517sorB
302ThreadNet-Webapps/web/src/stores/notifications/RoomNotificationStateStore.ts71TODO// TODO: Update if/when invites move out of the room list.2026-05-10913da363517sorB
303ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts83TODO// TODO: Maybe destroy this if this class supports destruction2026-05-10913da363517sorB
304ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts205TODOconst roomPayload = <any>payload; // TODO: Type out the dispatcher types2026-05-10913da363517sorB
305ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts253TODOconst eventPayload = <any>payload; // TODO: Type out the dispatcher types2026-05-10913da363517sorB
306ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts266TODOconst eventPayload = <any>payload; // TODO: Type out the dispatcher types2026-05-10913da363517sorB
307ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts308TODO// TODO: Type out the dispatcher types so membershipPayload is not any2026-05-10913da363517sorB
308ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts405TODO// TODO: Per-account? https://github.com/vector-im/element-web/issues/141142026-05-10913da363517sorB
309ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts415TODO// TODO: Per-account? https://github.com/vector-im/element-web/issues/141142026-05-10913da363517sorB
310ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts444TODO// TODO: Per-account? https://github.com/vector-im/element-web/issues/141142026-05-10913da363517sorB
311ThreadNet-Webapps/web/src/stores/room-list/RoomListStore.ts454TODO// TODO: Per-account? https://github.com/vector-im/element-web/issues/141142026-05-10913da363517sorB
312ThreadNet-Webapps/web/src/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm.ts253XXX// XXX: If this ever actually gets more than one room passed to it, it'll need more index2026-05-10913da363517sorB
313ThreadNet-Webapps/web/src/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm.ts295TODO// TODO: Regenerate index when this happens: https://github.com/vector-im/element-web/issues/142342026-05-10913da363517sorB
314ThreadNet-Webapps/web/src/stores/room-list/algorithms/list-ordering/NaturalAlgorithm.ts85TODO// TODO: Optimize this to avoid useless operations: https://github.com/vector-im/element-web/issues/144572026-05-10913da363517sorB
315ThreadNet-Webapps/web/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts39TODO// TODO: We could probably improve the sorting algorithm here by finding changes.2026-05-10913da363517sorB
316ThreadNet-Webapps/web/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts45TODO// TODO: Don't assume we're using the same client as the peg2026-05-10913da363517sorB
317ThreadNet-Webapps/web/src/stores/room-list/filters/SpaceFilterCondition.ts55XXX// XXX: Room List Store has a bug where updates to the pre-filter during a local echo of a2026-05-10913da363517sorB
318ThreadNet-Webapps/web/src/stores/spaces/SpaceStore.ts582TODO// TODO consider sorting by number of in-refs to favour nodes with fewer parents.2026-05-10913da363517sorB
319ThreadNet-Webapps/web/src/stores/spaces/SpaceStore.ts1054TODO// TODO rebuild the space parent and not the room - check permissions?2026-05-10913da363517sorB
320ThreadNet-Webapps/web/src/stores/spaces/SpaceStore.ts1055TODO// TODO confirm this after implementing parenting behaviour2026-05-10913da363517sorB
321ThreadNet-Webapps/web/src/stores/spaces/SpaceTreeLevelLayoutStore.ts31XXX// XXX: localStorage doesn't allow booleans2026-05-10913da363517sorB
322ThreadNet-Webapps/web/src/stores/spaces/SpaceTreeLevelLayoutStore.ts37XXX// XXX: localStorage doesn't allow booleans2026-05-10913da363517sorB
323ThreadNet-Webapps/web/src/stores/widgets/ElementWidgetDriver.ts92TODO// TODO: Consider alternative designs for matrix-widget-api?2026-05-10913da363517sorB
324ThreadNet-Webapps/web/src/stores/widgets/ElementWidgetDriver.ts97TODO// TODO: Refactor widgetKind into the Widget class2026-05-10913da363517sorB
325ThreadNet-Webapps/web/src/stores/widgets/ElementWidgetDriver.ts278TODO// TODO: Do something when the widget requests new capabilities not yet asked for2026-05-10913da363517sorB
326ThreadNet-Webapps/web/src/stores/widgets/ElementWidgetDriver.ts295TODO// TODO: this results in an unexpected behavior when this function is called during the capabilities renegotiation of MSC2974 that will be resolved later.2026-05-10913da363517sorB
327ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts66TODO// TODO: Purge this code of its overgrown hacks and compatibility shims.2026-05-10913da363517sorB
328ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts68TODO// TODO: Don't use this. We should avoid overriding/mocking matrix-widget-api2026-05-10913da363517sorB
329ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts256TODO// TODO: Replace these with proper widget params2026-05-10913da363517sorB
330ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts263TODO// TODO: Stop doing this2026-05-10913da363517sorB
331ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts400TODO// TODO: Replace this event listener with appropriate driver functionality once the API2026-05-10913da363517sorB
332ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts432TODO// TODO: Spec this interaction.2026-05-10913da363517sorB
333ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts474TODO// TODO: Pick the right manager for the widget2026-05-10913da363517sorB
334ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts496HACK// HACK: This is a really dirty way to ensure that Jitsi cleans up2026-05-10913da363517sorB
335ThreadNet-Webapps/web/src/stores/widgets/WidgetMessaging.ts512XXX// XXX is the removeAllListeners necessary here?2026-05-10913da363517sorB
336ThreadNet-Webapps/web/src/stores/widgets/WidgetPermissionStore.ts24TODO// TODO (all functions here): Merge widgetKind with the widget definition2026-05-10913da363517sorB
337ThreadNet-Webapps/web/src/stores/widgets/types.ts32TODO// TODO: [Deferred] Maximizing (fullscreen) widgets by default.2026-05-10913da363517sorB
338ThreadNet-Webapps/web/src/stores/widgets/types.ts40TODO// TODO: [Deferred] Forced layout (fixed with no changes)2026-05-10913da363517sorB
339ThreadNet-Webapps/web/src/utils/DMRoomMap.ts26TODO// TODO: convert these to maps2026-05-10913da363517sorB
340ThreadNet-Webapps/web/src/utils/DMRoomMap.ts156TODO// TODO: [Canonical DMs] Handle lookups for email addresses.2026-05-10913da363517sorB
341ThreadNet-Webapps/web/src/utils/FileDownloader.ts54TODO// TODO: If we decide to keep the download link behaviour, we should bring the style management into here.2026-05-10913da363517sorB
342ThreadNet-Webapps/web/src/utils/MediaEventHelper.ts19TODO// TODO: We should consider caching the blobs. https://github.com/vector-im/element-web/issues/171922026-05-10913da363517sorB
343ThreadNet-Webapps/web/src/utils/MessageDiffUtils.tsx209XXX// XXX: sometimes diffDOM says insert a newline when there shouldn't be one2026-05-10913da363517sorB
344ThreadNet-Webapps/web/src/utils/WidgetUtils.ts78TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
345ThreadNet-Webapps/web/src/utils/WidgetUtils.ts82TODO// TODO: Generify the name of this function. It's not just scalar.2026-05-10913da363517sorB
346ThreadNet-Webapps/web/src/utils/WidgetUtils.ts203TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
347ThreadNet-Webapps/web/src/utils/WidgetUtils.ts213TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
348ThreadNet-Webapps/web/src/utils/WidgetUtils.ts303TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
349ThreadNet-Webapps/web/src/utils/WidgetUtils.ts328TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
350ThreadNet-Webapps/web/src/utils/WidgetUtils.ts345TODO// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)2026-05-10913da363517sorB
351ThreadNet-Webapps/web/src/utils/WidgetUtils.ts448TODO// TODO: Remove URL hacks when the mobile clients eventually support v2 widgets2026-05-10913da363517sorB
352ThreadNet-Webapps/web/src/utils/WidgetUtils.ts546TODO// TODO: Pick the right manager for the widget2026-05-10913da363517sorB
353ThreadNet-Webapps/web/src/utils/beacon/useBeacon.ts26TODO// TODO could this be less stupid?2026-05-10913da363517sorB
354ThreadNet-Webapps/web/src/utils/dm/startDm.ts54TODO// TODO: [Canonical DMs] Remove this check and instead just create the multi-person DM2026-05-10913da363517sorB
355ThreadNet-Webapps/web/src/utils/exportUtils/HtmlExport.tsx418TODO// TODO: Handle callEvent errors2026-05-10913da363517sorB
356ThreadNet-Webapps/web/src/utils/permalinks/MatrixSchemePermalinkConstructor.ts53TODO// TODO: Change API signature to accept the URL for checking2026-05-10913da363517sorB
357ThreadNet-Webapps/web/src/utils/permalinks/PermalinkConstructor.ts11TODO* TODO: Convert this to a real TypeScript interface2026-05-10913da363517sorB
358ThreadNet-Webapps/web/src/vector/app.tsx92XXX// XXX: This lives here because certain components import so many things that importing it in a sensible place (eg.2026-05-10913da363517sorB
359ThreadNet-Webapps/web/src/vector/app.tsx118XXX// XXX: This path matching is a bit brittle, but better to do it early instead of in the app code.2026-05-10913da363517sorB
360ThreadNet-Webapps/web/src/vector/index.html56TODO<noscript>Sorry, Element requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->2026-05-10913da363517sorB
361ThreadNet-Webapps/web/src/vector/init.tsx54XXX// XXX: We call this twice, once here and once in MatrixChat as a prop. We call it here to ensure2026-05-10913da363517sorB
362ThreadNet-Webapps/web/src/vector/jitsi/index.html13TODO<!-- TODO: i18n -->2026-05-10913da363517sorB
363ThreadNet-Webapps/web/src/vector/jitsi/index.pcss8TODO/* TODO: Match the user's theme: https://github.com/element-hq/element-web/issues/12794 */2026-05-10913da363517sorB
364ThreadNet-Webapps/web/src/vector/jitsi/index.ts55XXX// XXX: It is unclear whether this is a typo of TOOLBAR_BUTTONS or if its just really undocumented,2026-05-10913da363517sorB
365ThreadNet-Webapps/web/src/vector/platform/IPCManager.ts33TODO// TODO this should be moved into the preload.js file.2026-05-10913da363517sorB
366ThreadNet-Webapps/web/src/vector/url_utils.ts72XXX// XXX: unclear where, if anywhere, this is set2026-05-10913da363517sorB
367ThreadNet-Webapps/web/src/vector/url_utils.ts77XXX// XXX: Fragment params seemingly relating to 3pid invites, though the code in the area doubts they are ever specified2026-05-10913da363517sorB
368ThreadNet-Webapps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts443FIXME// FIXME: persist this somewhere smarter than local storage2026-05-10913da363517sorB
369ThreadNet-Webapps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts456FIXME// FIXME: persist this somewhere smarter than local storage2026-05-10913da363517sorB
370ThreadNet-Webapps/web/src/viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx201XXX// XXX: won't i18n well, but looks like widget api only support 'message'?2026-05-10913da363517sorB
371ThreadNet-Webapps/web/src/widgets/CapabilityText.tsx131TODO// TODO: Support MSC3819 (to-device capabilities)2026-05-10913da363517sorB
372ThreadNet-Webapps/web/src/widgets/WidgetType.ts9TODO// TODO: Move to matrix-widget-api2026-05-10913da363517sorB
373ThreadNet-Webapps/web/test/setup/setupManualMocks.ts47TODO// TODO: Extract this to a function and have tests that need it opt into it.2026-05-10913da363517sorB
374ThreadNet-Webapps/web/test/test-utils/test-utils.ts56TODO* TODO: once the components are updated to get their MatrixClients from2026-05-10913da363517sorB
375ThreadNet-Webapps/web/test/test-utils/utilities.ts182XXX// XXX: Maybe in the future with Jest 29.5.0+, we could use `runAllTimersAsync` instead.2026-05-10913da363517sorB
376ThreadNet-Webapps/web/test/unit-tests/Lifecycle-test.ts784XXX// XXX: these tests are broken, Lifecycle.setLoggedIn does not work with OIDC and its token refreshers due to clearing storage2026-05-10913da363517sorB
377ThreadNet-Webapps/web/test/unit-tests/Notifier-test.ts583TODO// TODO: Once https://github.com/matrix-org/matrix-js-sdk/pull/5134 is merged this can be MembershipKind.Session2026-05-10913da363517sorB
378ThreadNet-Webapps/web/test/unit-tests/components/structures/MatrixChat-test.tsx199TODO// TODO: nowadays the access token lives (encrypted) in indexedDB, and localstorage is only used as a fallback.2026-05-10913da363517sorB
379ThreadNet-Webapps/web/test/unit-tests/components/structures/MatrixChat-test.tsx1250XXX// XXX This test is strange, it was working with legacy crypto2026-05-10913da363517sorB
380ThreadNet-Webapps/web/test/unit-tests/components/structures/MatrixChat-test.tsx1301FIXME// FIXME: except it is *also* used as the permanent client for the rest of the test.2026-05-10913da363517sorB
381ThreadNet-Webapps/web/test/unit-tests/components/structures/MessagePanel-test.tsx104HACK// HACK: We assume all settings want to be disabled2026-05-10913da363517sorB
382ThreadNet-Webapps/web/test/unit-tests/components/views/beacon/RoomCallBanner-test.tsx152TODO// TODO: test clicking buttons2026-05-10913da363517sorB
383ThreadNet-Webapps/web/test/unit-tests/components/views/beacon/RoomCallBanner-test.tsx153TODO// TODO: add live location share warning test (should not render if there is an active live location share)2026-05-10913da363517sorB
384ThreadNet-Webapps/web/test/unit-tests/components/views/context_menus/MessageContextMenu-test.tsx729XXX// XXX: We probably shouldn't be assuming all events are going to be message events, but considering this2026-05-10913da363517sorB
385ThreadNet-Webapps/web/test/unit-tests/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx90XXX// XXX the error message is... misleading.2026-05-10913da363517sorB
386ThreadNet-Webapps/web/test/unit-tests/components/views/rooms/EditMessageComposer-test.tsx264TODO// TODO Edits do not properly strip the double slash used to skip2026-05-10913da363517sorB
387ThreadNet-Webapps/web/test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx107TODO// TODO refactor and expand tests when mentions become <a> tags2026-05-10913da363517sorB
388ThreadNet-Webapps/web/test/unit-tests/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx68TODO// TODO case for canonical2026-05-10913da363517sorB
389ThreadNet-Webapps/web/test/unit-tests/models/Call-test.ts844TODO// TODO refactor initial device configuration to use the EW settings.2026-05-10913da363517sorB
390ThreadNet-Webapps/web/test/unit-tests/slash-commands/utils.ts29TODO// TODO: if getCommand took a MatrixClient argument, we could use2026-05-10913da363517sorB
391ThreadNet-Webapps/web/test/unit-tests/stores/SpaceStore-test.ts268TODO// TODO this test should be failing right now2026-05-10913da363517sorB
392ThreadNet-Webapps/web/test/unit-tests/stores/SpaceStore-test.ts620XXX// XXX: All rooms space is forcibly enabled, as part of a future PR test Home space better2026-05-10913da363517sorB
393ThreadNet-Webapps/web/test/unit-tests/stores/SpaceStore-test.ts681XXX// XXX: All rooms space is forcibly enabled, as part of a future PR test Home space better2026-05-10913da363517sorB
394ThreadNet-Webapps/web/test/unit-tests/utils/MegolmExportEncryption-test.ts123TODO// TODO find a subtlecrypto shim which doesn't break this test2026-05-10913da363517sorB
395ThreadNet-Webapps/web/test/unit-tests/utils/objects-test.ts63XXX// XXX: inverted expectation for ease of assertion2026-05-10913da363517sorB
396ThreadNet-Webdocs/config.md145DEPRECATED11. `welcome_user_id`: **DEPRECATED** An optional user ID to start a DM with after creating an account. Defaults to nothing (no DM created).2026-05-10913da363517sorB
397ThreadNet-Webdocs/customisations.md3DEPRECATED### 🦖 DEPRECATED2026-05-10913da363517sorB
398ThreadNet-Webdocs/deprecated-modules.md4DEPRECATED> DEPRECATED. Use [Element web module api](https://github.com/element-hq/element-modules/tree/main/packages/element-web-module-api) instead.2026-05-10913da363517sorB
399ThreadNet-Webdocs/monorepo.md30TODO- #TODO should we just use short-lived release branches? We'd need to effectively interlace them for the various packages which feels messy2026-05-10913da363517sorB
400ThreadNet-Webdocs/native-node-modules.md43TODO- Linux: TODO. Using the docker environment as above is recommended.2026-05-10913da363517sorB
401ThreadNet-Webdocs/native-node-modules.md44TODO- OS X: TODO2026-05-10913da363517sorB
402ThreadNet-Webpackages/shared-components/src/core/i18n/i18n.tsx293TODO// TODO: Cache regexps2026-05-10913da363517sorB
403ThreadNet-Webpackages/shared-components/src/room/timeline/event-tile/body/DecryptionFailureBodyView/DecryptionFailureBodyView.tsx125TODO// TODO: event should be hidden instead of showing this error.2026-05-10913da363517sorB
404ThreadNet-Webpackages/shared-components/src/room/timeline/event-tile/body/DecryptionFailureBodyView/DecryptionFailureBodyView.tsx138TODO// TODO: event should be hidden instead of showing this error.2026-05-10913da363517sorB
405ThreadNet-Webpackages/shared-components/src/room/timeline/event-tile/body/MFileBodyView/FileBodyView.tsx263TODOTODO: Move iframe (and dummy link) into FileDownloader.2026-05-10913da363517sorB
406ThreadNet-Webscripts/analyse_unused_exports.ts49TODO// TODO: This might break on Windows2026-05-10913da363517sorB
407ThreadNet-Webscripts/gen-workflow-mermaid.ts223TODO// TODO workflow_call reusables2026-05-10913da363517sorB
408ThreadNet-Webscripts/gen-workflow-mermaid.ts266TODO// TODO should we be just dropping these?2026-05-10913da363517sorB
409ThreadNet-Webscripts/gen-workflow-mermaid.ts514TODO// TODO separate disconnected nodes into their own graph2026-05-10913da363517sorB
410ThreadNet-Webscripts/gen-workflow-mermaid.ts551TODO// TODO unsure about this edge2026-05-10913da363517sorB
411ThreadNet-Webscripts/gen-workflow-mermaid.ts557TODO// TODO handle job.if on github.event_name2026-05-10913da363517sorB
412ThreadNet-Webscripts/gen-workflow-mermaid.ts604TODO// TODO validate edge case2026-05-10913da363517sorB
413threadnet-call.eslintrc.cjs69XXX// XXX: We use /lib in lots of places, so allow for now.2026-07-3198fb630cfbThore Cimbal
414threadnet-callknip.ts17TODO// installed binary. TODO We should switch to Compose v2:2026-07-3198fb630cfbThore Cimbal
415threadnet-callplaywright/access.spec.ts109XXX// XXX check the display names on the video tiles2026-07-3198fb630cfbThore Cimbal
416threadnet-callplaywright/widget/test-helpers.ts76XXX// XXX This using the notification toast to join the room.2026-07-3198fb630cfbThore Cimbal
417threadnet-callplaywright/widget/test-helpers.ts371XXX// XXX we need to be better at our HTML markup and accessibility, it would make2026-07-3198fb630cfbThore Cimbal
418threadnet-callsdk/index.html7TODO// TODO use the url where the matrixrtc-sdk.js file from dist is hosted2026-07-3198fb630cfbThore Cimbal
419threadnet-callsdk/main.ts45TODO// TODO how can this get fixed? to just be part of `livekit-client`2026-07-3198fb630cfbThore Cimbal
420threadnet-callsrc/Modal.module.css95TODO/* TODO: Support tabs */2026-07-3198fb630cfbThore Cimbal
421threadnet-callsrc/Modal.tsx60TODO// TODO: Better tabs support2026-07-3198fb630cfbThore Cimbal
422threadnet-callsrc/auth/LoginPage.tsx29TODOconst homeserver = Config.defaultHomeserverUrl(); // TODO: Make this configurable2026-07-3198fb630cfbThore Cimbal
423threadnet-callsrc/auth/LoginPage.tsx37TODO// TODO: Handle hitting login page with authenticated client2026-07-3198fb630cfbThore Cimbal
424threadnet-callsrc/auth/useInteractiveLogin.ts56XXX// XXX: This claims to return an IAuthData which contains none of these2026-07-3198fb630cfbThore Cimbal
425threadnet-callsrc/auth/useInteractiveRegistration.ts104XXX// XXX: This claims to return an IAuthData which contains none of these2026-07-3198fb630cfbThore Cimbal
426threadnet-callsrc/components/MediaMuteAndSwitchButton.stories.tsx65TODO// (both are TODO placeholders in the component). The mute button is first in the DOM.2026-07-3198fb630cfbThore Cimbal
427threadnet-callsrc/grid/SpotlightPortraitLayout.tsx64TODO// TODO: We pretend that the minimum height is the width, because the2026-07-3198fb630cfbThore Cimbal
428threadnet-callsrc/home/useGroupCallRooms.ts110TODO// TODO: check JoinRule.Restricted and return true if join condition is satisfied2026-07-3198fb630cfbThore Cimbal
429threadnet-callsrc/livekit/MatrixAudioRenderer.tsx81TODO// TODO make sure to also skip the warn logging for the local identity2026-07-3198fb630cfbThore Cimbal
430threadnet-callsrc/livekit/TrackProcessorContext.tsx33TODO//TODO-MULTI-SFU: This is not yet fully there.2026-07-3198fb630cfbThore Cimbal
431threadnet-callsrc/livekit/openIDSFU.ts150DEPRECATED// DEPRECATED2026-07-3198fb630cfbThore Cimbal
432threadnet-callsrc/reactions/ReactionsReader.ts76TODO// TODO: Convert this class to the functional reactive style and get rid of2026-07-3198fb630cfbThore Cimbal
433threadnet-callsrc/reactions/ReactionsReader.ts269TODO// TODO refactor to use memer id `membershipEvent.membershipID` (needs to happen in combination with other memberId refactors)2026-07-3198fb630cfbThore Cimbal
434threadnet-callsrc/reactions/index.ts87TODO// TODO: These need to be translated.2026-07-3198fb630cfbThore Cimbal
435threadnet-callsrc/room/CallEventAudioRenderer.test.tsx173TODO// TODO: What is this string supposed to be?2026-07-3198fb630cfbThore Cimbal
436threadnet-callsrc/room/GroupCallView.test.tsx8TODO// TODO-MULTI-SFU: Restore or discard these tests. The role of GroupCallView has2026-07-3198fb630cfbThore Cimbal
437threadnet-callsrc/room/GroupCallView.test.tsx92TODO// // TODO: perhaps there is a more elegant way to manage the type import here?2026-07-3198fb630cfbThore Cimbal
438threadnet-callsrc/room/GroupCallView.test.tsx95TODO// // TODO: leaveRTCSession no longer exists! Tests need adapting.2026-07-3198fb630cfbThore Cimbal
439threadnet-callsrc/room/GroupCallView.test.tsx176TODO// TODO-MULTI-SFU: This cast isn't valid, it's likely the cause of some current test failures2026-07-3198fb630cfbThore Cimbal
440threadnet-callsrc/room/GroupCallView.test.tsx188TODO// TODO-MULTI-SFU: Make joined and setJoined work2026-07-3198fb630cfbThore Cimbal
441threadnet-callsrc/room/GroupCallView.test.tsx464XXX// XXX: Wrapping the following click in act() shouldn't be necessary (the2026-07-3198fb630cfbThore Cimbal
442threadnet-callsrc/room/GroupCallView.test.tsx470TODO// TODO investigate if this is a test setup issue or an actual problem.2026-07-3198fb630cfbThore Cimbal
443threadnet-callsrc/room/GroupCallView.tsx166TODO// TODO move this into the callViewModel LocalMembership.ts2026-07-3198fb630cfbThore Cimbal
444threadnet-callsrc/room/GroupCallView.tsx241TODO// TODO-MULTI-SFU what to do with error handling now that we don't use this function?2026-07-3198fb630cfbThore Cimbal
445threadnet-callsrc/room/GroupCallView.tsx264XXX// XXX: I think this is broken currently - LiveKit *won't* request2026-07-3198fb630cfbThore Cimbal
446threadnet-callsrc/room/GroupCallView.tsx336TODO// TODO split this into leave and onDisconnect2026-07-3198fb630cfbThore Cimbal
447threadnet-callsrc/room/InCallView.tsx103TODO// TODO refactor those reasons into an enum2026-07-3198fb630cfbThore Cimbal
448threadnet-callsrc/room/InCallView.tsx140TODO// TODO move this somewhere else once we use the callViewModel in the lobby as well!2026-07-3198fb630cfbThore Cimbal
449threadnet-callsrc/room/InCallView.tsx224TODO// TODO-MULTI-SFU This is unused now??2026-07-3198fb630cfbThore Cimbal
450threadnet-callsrc/room/InCallView.tsx230TODO// TODO-MULTI-SFU decide how to handle this properly2026-07-3198fb630cfbThore Cimbal
451threadnet-callsrc/room/InCallView.tsx648TODO// TODO compute is local or tag it in the livekit room items already2026-07-3198fb630cfbThore Cimbal
452threadnet-callsrc/room/LobbyView.tsx99TODO// TODO: Make sure that this module is resilient when it comes to camera/microphone availability!2026-07-3198fb630cfbThore Cimbal
453threadnet-callsrc/room/LobbyView.tsx212TODO// TODO: Unify this component with InCallView, so we can get slick joining2026-07-3198fb630cfbThore Cimbal
454threadnet-callsrc/room/RoomPage.tsx243TODO// TODO: This doesn't belong here, the app routes need to be reworked2026-07-3198fb630cfbThore Cimbal
455threadnet-callsrc/room/useRoomState.ts25TODO// TODO: matrix-js-sdk says that Room.currentState is deprecated, but it's not2026-07-3198fb630cfbThore Cimbal
456threadnet-callsrc/settings/settings.ts84TODO// TODO: This setting can be disabled. Work out an approach to disableable2026-07-3198fb630cfbThore Cimbal
457threadnet-callsrc/state/AndroidControlledAudioOutput.ts142TODO// TODO: it appears that on Android the hosting application is only using the deprecated callback (onOutputDeviceSelect)2026-07-3198fb630cfbThore Cimbal
458threadnet-callsrc/state/AndroidControlledAudioOutput.ts281TODO// TODO only want to check from the added device, not all devices.?2026-07-3198fb630cfbThore Cimbal
459threadnet-callsrc/state/AppViewModel.ts17TODO// TODO: Move more application logic here. The CallViewModel, at the very2026-07-3198fb630cfbThore Cimbal
460threadnet-callsrc/state/CallViewModel/CallViewModel.ts161TODO//TODO2026-07-3198fb630cfbThore Cimbal
461threadnet-callsrc/state/CallViewModel/CallViewModel.ts241TODO* TODO: it seems more reasonable to add a leave() method (that calls requestDisconnect) that will then update leave$ and remove the hangup pattern2026-07-3198fb630cfbThore Cimbal
462threadnet-callsrc/state/CallViewModel/CallViewModel.ts540TODO// TODO. This might need to get called again on each change of matrixRTCMode...2026-07-3198fb630cfbThore Cimbal
463threadnet-callsrc/state/CallViewModel/CallViewModel.ts793TODO// TODO: Respect io.element.functional_members2026-07-3198fb630cfbThore Cimbal
464threadnet-callsrc/state/CallViewModel/CallViewModel.ts1300TODO// TODO: Respect io.element.functional_members (while still2026-07-3198fb630cfbThore Cimbal
465threadnet-callsrc/state/CallViewModel/CallViewModel.ts1303TODO// TODO: Only hide name tags in DMs, not group chats that just2026-07-3198fb630cfbThore Cimbal
466threadnet-callsrc/state/CallViewModel/localMember/LocalMember.test.ts534TODO// TODO add an integration test combining publisher and localMembership2026-07-3198fb630cfbThore Cimbal
467threadnet-callsrc/state/CallViewModel/localMember/LocalMember.test.ts683TODO// TODO add tests for matrix local matrix participation.2026-07-3198fb630cfbThore Cimbal
468threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts83XXX// XXX: This state is removed for now since we do not have full control over2026-07-3198fb630cfbThore Cimbal
469threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts91TODO// TODO not sure how to map that correctly with the2026-07-3198fb630cfbThore Cimbal
470threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts96XXX// XXX: This state is removed for now since we do not have full control over2026-07-3198fb630cfbThore Cimbal
471threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts132TODO// TODO add a comment into some code style readme or file header callviewmodel2026-07-3198fb630cfbThore Cimbal
472threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts304XXX// XXX We might want to give some user feedback here to let them know their media is not working.2026-07-3198fb630cfbThore Cimbal
473threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts635TODO// TODO Update matrixRTCSession to allow udpating the transport without leaving the session!2026-07-3198fb630cfbThore Cimbal
474threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts659TODO// TODO refactor this based no livekitState$2026-07-3198fb630cfbThore Cimbal
475threadnet-callsrc/state/CallViewModel/localMember/LocalMember.ts889TODO// TODO where/how do we track errors originating from the ongoing rtcSession?2026-07-3198fb630cfbThore Cimbal
476threadnet-callsrc/state/CallViewModel/localMember/LocalTransport.ts77TODO// TODO livekit_alias-cleanup2026-07-3198fb630cfbThore Cimbal
477threadnet-callsrc/state/CallViewModel/localMember/LocalTransport.ts227XXX// XXX: WORK AROUND due to a reconnection glitch.2026-07-3198fb630cfbThore Cimbal
478threadnet-callsrc/state/CallViewModel/localMember/Publisher.ts257TODO// TODO what about screen share?2026-07-3198fb630cfbThore Cimbal
479threadnet-callsrc/state/CallViewModel/localMember/RtcTransportAutoDiscovery.ts93TODO// TODO: Workaround for an issue in the js-sdk RoomWidgetClient that2026-07-3198fb630cfbThore Cimbal
480threadnet-callsrc/state/CallViewModel/remoteMembers/Connection.test.ts572TODO// // TODO understand what is wrong with our mocking that requires ts-expect-error2026-07-3198fb630cfbThore Cimbal
481threadnet-callsrc/state/CallViewModel/remoteMembers/Connection.test.ts608TODO// // TODO: Refactor the code to make it testable.2026-07-3198fb630cfbThore Cimbal
482threadnet-callsrc/state/CallViewModel/remoteMembers/Connection.ts139TODO// TODO: can we just keep the ConnectionOpts object instead of spreading?2026-07-3198fb630cfbThore Cimbal
483threadnet-callsrc/state/CallViewModel/remoteMembers/Connection.ts193TODO// TODO consider an autostart pattern...2026-07-3198fb630cfbThore Cimbal
484threadnet-callsrc/state/CallViewModel/remoteMembers/ConnectionFactory.ts43TODO// TODO evaluate if this should be done like the Publisher Factory2026-07-3198fb630cfbThore Cimbal
485threadnet-callsrc/state/CallViewModel/remoteMembers/ConnectionFactory.ts190TODO// TODO test and consider this:2026-07-3198fb630cfbThore Cimbal
486threadnet-callsrc/state/CallViewModel/remoteMembers/ConnectionManager.ts83TODO// TODO - write test for scopes (do we really need to bind scope)2026-07-3198fb630cfbThore Cimbal
487threadnet-callsrc/state/CallViewModel/remoteMembers/ConnectionManager.ts117TODO// TODO logger: only construct one logger from the client and make it compatible via a EC specific sing2026-07-3198fb630cfbThore Cimbal
488threadnet-callsrc/state/CallViewModel/remoteMembers/ConnectionManager.ts197TODO// TODO: This whole optional SFUConfig parameter is not particularly elegant.2026-07-3198fb630cfbThore Cimbal
489threadnet-callsrc/state/CallViewModel/remoteMembers/ConnectionManager.ts204TODO// TODO subscribe to connection state to retry or log issues?2026-07-3198fb630cfbThore Cimbal
490threadnet-callsrc/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts37TODO// TODO decide if we can also drop the userId. Its in the matrix membership anyways.2026-07-3198fb630cfbThore Cimbal
491threadnet-callsrc/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts142TODO// TODO add back in the callviewmodel pauseWhen(this.pretendToBeDisconnected$)2026-07-3198fb630cfbThore Cimbal
492threadnet-callsrc/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts144TODO// TODO add this to the JS-SDK2026-07-3198fb630cfbThore Cimbal
493threadnet-callsrc/state/CallViewModel/remoteMembers/MatrixMemberMetadata.ts81TODO// TODO: do we need: pauseWhen(this.pretendToBeDisconnected$),2026-07-3198fb630cfbThore Cimbal
494threadnet-callsrc/state/CallViewModel/remoteMembers/integration.test.ts85TODO//TODO a bit annoying to have to do a http mock?2026-07-3198fb630cfbThore Cimbal
495threadnet-callsrc/state/MuteStates.test.ts82TODO// TODO I'd expect it to go back to previous state (enabled)2026-07-3198fb630cfbThore Cimbal
496threadnet-callsrc/state/MuteStates.test.ts264TODO// TODO I'd expect it to go back to previous state (enabled)??2026-07-3198fb630cfbThore Cimbal
497threadnet-callsrc/state/MuteStates.ts118TODO// TODO: better error handling2026-07-3198fb630cfbThore Cimbal
498threadnet-callsrc/state/MuteStates.ts130TODO// TODO: better error handling2026-07-3198fb630cfbThore Cimbal
499threadnet-callsrc/state/media/MemberMediaViewModel.ts44TODO// TODO: Encryption status is kinda broken and thus unused right now. Remove?2026-07-3198fb630cfbThore Cimbal
500threadnet-callsrc/tile/GridTile.tsx370TODO{/* TODO: Figure out how to make this slider keyboard accessible */}2026-07-3198fb630cfbThore Cimbal
501threadnet-callsrc/tile/MediaView.tsx191TODO{/* TODO: Bring this back once encryption status is less broken */}2026-07-3198fb630cfbThore Cimbal
502threadnet-callsrc/tile/TileAvatar.module.css18TODO/* TODO: make this --cpd-color-fg-primary when available. */2026-07-3198fb630cfbThore Cimbal
503threadnet-callsrc/useCallViewKeyboardShortcuts.ts70TODO// TODO: Make sure that this module is resilient when it comes to camera/microphone availability!2026-07-3198fb630cfbThore Cimbal
504threadnet-callsrc/utils/matrix.ts110XXX// XXX: we read from the URL params in RoomPage too:2026-07-3198fb630cfbThore Cimbal
505threadnet-calltsconfig.json43TODO// TODO: Enable the following options later.2026-07-3198fb630cfbThore Cimbal