vector-im / hydrogen-web Goto Github PK
View Code? Open in Web Editor NEWLightweight matrix client with legacy and mobile browser support
License: Apache License 2.0
Lightweight matrix client with legacy and mobile browser support
License: Apache License 2.0
Error in status bar:
Sync failed because of Error: wrapped DOMException: (name: ConstraintError) (code: ConstraintError) Unable to add key to index 'byEventId': at least one key does not satisfy the uniqueness requirements.
In console:
Uncaught (in promise) Error: add on undefined failed: (name: ConstraintError) (code: ConstraintError) Unable to add key to index 'byEventId': at least one key does not satisfy the uniqueness requirements.
at Store.add (brawl.js:3685)
8brawl.js:3685 Uncaught (in promise) Error: add on undefined failed: (name: AbortError) (code: AbortError) The transaction was aborted, so the request cannot be fulfilled.
at Store.add (brawl.js:3685)
brawl.js:3676 Uncaught (in promise) Error: put on undefined failed: (name: AbortError) (code: AbortError) The transaction was aborted, so the request cannot be fulfilled.
at Store.put (brawl.js:3676)
brawl.js:686 unable to commit sync tranaction
_syncRequest @ brawl.js:686
Implement session backup so we can read encrypted history from before we logged in.
m.megolm_backup.v1
using AESAs we don't have a concept of trust yet, we will only verify that the backup came from a session we trust by the fact that you enter the 4S passphrase, which gives us the session backup key.
Because of matrix-org/synapse#7083
E.g. element-hq/element-meta#1390 was an image in with no content.url
which threw in ImageTile, blocking 10 or so messages from ever being displayed, without a clear error.
We should have a mechanism where we render the tile with errorToDOM
or something similar.
Also we should have a safe function to read fields/paths of an event, and act predictably when that field is missing/wrong type/ ...
Rather than hardcode it in html, as html and service worker can be out of sync (especially on github pages)
used to happen only after we got rate limited and we had to refresh. Recently I've seen it happen when only sending 2 messages in fresh page load.
{
"type": "m.room.member",
"sender": "@bruno1:localhost",
"content": {
"membership": "leave"
},
"state_key": "@bruno1:localhost",
"origin_server_ts": 1598466841459,
"unsigned": {
"replaces_state": "$JGaEFO-E10_WO8ii6gHAtb5kYRRqFIGa15RZqH23Ntc",
"prev_content": {
"membership": "join",
"displayname": "Problembär Bruno",
"avatar_url": "mxc://localhost/lsZyAmPfrxGYbtQTUdXWenjC"
},
"prev_sender": "@bruno1:localhost",
"age": 83
},
"event_id": "$DY_s7cDSr_HvgyjQe183kSYeyxHFcRLAGbiX8Vepduo"
}
Synapse doesn't send displayname
nor avatar_url
, hydrogen updates the member without these fields and the sort function in Heroes.applyChanges fails, bricking opening a session.
possible website embed possible?
Timeline stopped showing new incoming message. Clicking the room tile again (several times? can't remember) refreshed the timeline. Might have clicked the room tile quite a few times before and/or have scrolled up/filled gaps before this happened.
Confirmed sync was running with the devtools. No errors in the console.
Did something close the timeline (e.g. disposed the TimelineViewModel?) this is on bwindels/reconnect
btw.
e.g. configure for HS URL & other stuff to toggle
See https://gist.github.com/bwindels/1632a4254627242ca9a7c38f522bbf0b and https://github.com/bwindels/timeline-log-viewer and bwindels/logtree
branch for details
Also see https://github.com/vector-im/hydrogen-web/blob/master/doc/impl-thoughts/RELATIONS.md
after catchup sync on Android device after opening the app. This was right after upgrading to 0.0.21, with having synced this session only a few minutes before with 0.0.20
Sometimes when you close a room/go to another one that was unread, the room you left goes all the way to the bottom or somewhere close.
One reason could be that the properties of the room have changed without causing a rerendering somehow, so what you see isn't what is being sorted anymore. Unsure how that could happen though.
Another reason could be that lastMessageTimestamp ends up something else than null or a number (e.g. undefined).
should have been converted to a ConnectionError?
This is in Chromium Version 83.0.4103.116 (Developer Build) Fedora Project (64-bit)
device_one_time_keys_count
and upload more OTKs if neededolmAccount
and areDeviceKeysUploaded
keys from session store when clearing the session, otherwise e2ee keys would rotate while keeping same device id/access token. Important to do this before doing a release!receive_sync_response
, go over all to_device
messages encrypted with olm and get their sender_key
.OlmMachine
live longer than one of our txns.Request seems to make it to service worker, which does a failing request, but we don't seem to fallback to cache?
failing to persist initial sync on firefox with local "main" synapse on bruno2
I get a ton of:
Error: add on undefined failed: (name: TransactionInactiveError) (code: TransactionInactiveError) A request was placed against a transaction which is currently not active, or which is finished.
and no items in timelineEvents or timelineFragments are stored, presumably something is going wrong in the SyncWriter.
The error was not introduced in bwindels/fixconstrainterror-part2, and is already on master. Use git bisect to find out where it was introduced?
it's easy to repro on my local ff, just clear the bruno2 session and click on it to do an initial sync. the console is full of errors
Show replied to text as quoted, until we support them properly.
We need to store either the most recent m.room.member
eventId or the display name and avatar on an incoming event. We can have a FILO cache of x members for synced messages, and load a state event from store if it's not in there. But how do we handle filling gaps? How do we find out what the room state was at the beginning of the fragment we're trying to backfill (end, forward-fill, respectively).
SAML / OpenID Connect login support
highlight_count
and notification_count
in sync responseAfter the /versions response comes back successfully to the Reconnector
, sync will be retried. If the server is not fully ready yet to respond to sync requests, this can stall (seemingly) forever with "Trying to reconnect now ...". Not sure how this can happen as the sync request has a timeout of of 30+80s now... I waited for what I think was longer than 1min50s.
highlight_count
and notification_count
in sync response...
Join room from room directory & link.
This will allow hydrogen to be added to matrix.to as well
comes in as account_data
:
{
"events": [
{
"type": "m.tag",
"content": {
"tags": {
"m.lowpriority": {}
}
}
}
]
}
Implements #1
Note that CSS will be fixed in another PR, this PR is just JS.
Status bar says: Sync failed because of AbortError: The user aborted a request.
DOMElement.closest
Guest Login will be nice
As it doesn't make sense to await them, we should await the transaction rather. This can create a lot of unnecessary promises during a big sync response.
I don't think we need the "relations infrastructure" for this, as we when we receive a redaction, we either:
With response body:
content-type: text/html
<html><body><h1>429 Too Many Requests</h1>
No server is available to handle this request.
</body></html>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.