| Commit message (Collapse) | Author | Age |
... | |
| |
|
|\ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Last commit allows this simplification
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I think there was a race where a SessionKey message had been drained
from the TChan, but not yet added to the developer state, which was
resonsible for recent instability at startup.
It manifested as protocol errors where the prevActivity hash was wrongly
Nothing.
Fixed by adding a MissingHashes type to tag things whose hashes have
been stripped, and adding back the hashes when needed, which always
happens inside atomically blocks, so won't have such a race.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
And improve some messages.
|
| |
|
|
|
|
|
| |
The control window doesn't know it's running for a developer, so it
would prompt to allow these, which was pointless.
|
| |
|
| |
|
| |
|
|
|
|
| |
This fixes chat message echoing consistency too.
|
|
|
|
| |
Can be confusing otherwise when running debug-me --control
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
start
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Works!
|
|
|
|
|
|
|
|
|
| |
Make watcher also log and display the name of the logfile at start and
end of session.
--download still downloads to current directory because that seems less
surprising than downloading to elsewhere. Also, the user might want to
keep a copy of the local log while downloading the server log.
|
|
|
|
| |
documenting well ahead of implementation now
|
| |
|
| |
|
|
|
|
| |
This way changes to JSON won't risk breaking that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do include it in the data that gets signed, so it can be recovered
by trying each likely (recently seen) Activity as the prevMessage, and
checking the signature.
The UserState and DeveloperState already had the necessary state about
recently seen hashes, so this does not impact data use.
One tricky bit is that relayFromSocket needs to wait for the TMChan
to be empty before calling restorePrevActivityHash. Otherwise, the
hashes of items in the channel that have not been processed yet won't be
tried. The TMChan is not really being used as a channel since only 1
item can be in it. It could be converted to a TMVar, but closeTMChan is
used so I left it as a channel.
Note that the server does not restore hashes of messages that pass
through it; it's just a dumb relay.
Sending a single key press now only needs 94 bytes of data to be sent,
down from 169!
---
Also switched to SHA512, since hashes are no longer being sent over
the wire and so the larger size does not matter. SHA512 is slightly
faster and more secure.
This commit was sponsored by Ewen McNeill.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This way it's not tied to details of the haskell binary library,
and implementations in other languages should be fairly simple to do.
The haskell protobuf library was used because it does not need extra
tooling or build steps. So I didn't write a .proto file, but one could
fairly easily be written by following ProtocolBuffers.hs and translating
it.
ProtocolBuffers.hs is *extremely* repetative and tedious code. Surely
there must be a way to not need to write all of that? Oh well, I wrote
it..
Sizes of serialized messages:
">>> debug-me session started": 121
sending a single key press: 169
This seems equally as efficient as the binary serialization was;
that was 165 bytes before elapsedTime was added.
This commit was sponsored by Ethan Aubin.
|
|
|
|
| |
Make it a monoid and use mempty = 0
|
|
|
|
| |
Not related to the Log anymore.
|
|
|
|
|
|
|
| |
I forgot to configure the git repo for debug-me to sign all commits,
so this is the first signed commit.
Every previous commit was made by me, so they're all good. :)
|
| |
|