5,840 Commits over 1,584 Days - 0.15cph!
▊▊ ▋▊▊▅▅ ▍▄▌▅ ▅▅▆▄▆▄▊ ▋▍ ▋▇▌▅▆▍▇ ▋▋▊▄▍▋ ▇█ ▉▇▌ ▆▇▉▌▆▇▅ ▉▅▄▌ ▇▉▇▄█▄▆ ▋▉ █▊▌▇▆▇▌ ▅█▌ ▌▉▌▅▇██▍ ▄▉▍▊ ▌▆▍█▅▊▌▆▆▅▋▋▇ ▉█▆ ▉▌▉▍▅▇ ▆▇ █▇▍▊ ▄▅▅ ▆▊▋▌▊▇▋▆▅▆ ▅▉▊▋▄ ▌▋▍▆▇▆ ▍▍██▄ ▊▍
merge from fix_editor_logthread_nre -> main
Add try catch to the OutputHandler so if an exception SOMEHOW happens it can't kill the process (since it runs in the finalizer thread)
Fix log thread throwing ObjectDisposedException in editor
- also fix the Task exceptions not being flattened fully
merge from sentry_upload -> main
Re-add the "max 3 uploads per session" logic that got removed accidently
Add missing catch {} to a try statement that only had a finally {} block
Fix HttpContent being double disposed
merge from main -> sentry_upload
- fix reading tail of log not truncating extra bytes
- fix log files >5MB being skipped over instead of the tail uploaded
Tests for new way of reading logfile
- switch from writing sentry tags to disk and trying to link them to crashes to putting the sentry tags in the log file and parsing them when uploading the crash
- upload the last 100KB of the logfile instead of the whole thing
- cleanup
merge from main -> sentry_upload
▋ ▇▄▆▇█ ▉▅▌▍ █▇▋▉▋▊▋ ▍▉ ▇▄▍▋█▋▆ ▇▄█▇▌▅ ▆▊▆▋█▊▊█ ▌▋▋ ▊▉▇▌▍ ▌ ▌▉▍▅▄▄▋▉▊█ ▄▅▉▊█▅ ▇▄ ▅▆▄▆▅▆ ▄█▇▆▄ ▍█▇ ▇▆▉▌▌▄▆▉ ▉▅▌▆▊ ▇▇▄▇█▅▆▋ ▊▋▊█ ▋▄▉▋▉█ ▊▍▊▋▇ ▅▉▇▆ ▋▊▋▌█▌▊▋
Cherrypick CS
163721 (the command to test crash uploads) to the newer branch
merge from main -> sentry_upload
Don't kick for errors on background threads
Refactor Output.OnMessage() so it passes a single struct parameter instead of (message, stacktrace,logLevel)
- if I'm gonna to refactor it to add a 4th parameter, may as well make it a single class/struct passed
- allows a bool to be passed for "if it was sent on a background thread or not"
Update existing console tests to account for new behavior
Prevent the downgrade in the editor since it doesn't result in kick
Lower error level from exception -> warning on the client on background threads so clients don't get kicked from random exceptions
- keep it on server since it's only used for logging
Fix composter showing "Turn on" and "Turn off" menu option
- make both stove & composter not show the menu options
▋ ▄▉▌ ▊▆▊▆██▅▍ ▉█▄▉▍▄▍ ▌▍▄█▄▌▊ ▆▄▇▍▇ ▅▌ ▊▆ ▆▋▍▆ ▆▅▍ ▊▇ ▉▋▆▆ ▊▇▇ ▄█▋▋▊▊▉▍ ▍ ▄▊▍█▅▍▅▍▆▌▋ ▍▌▊▋▍▇▅█ ▅█▍▇▄▊▆▊▅▌▉ ▉▆ ▄▆▆ █▄▅▅ ▉▊▇▄▌▉█▆▌▄▌▆▉▄ ▋▉▅▆▍▌▍▇
▍▆ ▉▄▋▌▌▋▌▊▉▌ ▉▋ ▍▇█▍▊▋ ▆▌▆▉ ▊▇▄▍▋▉▉ ▋▊▆▋ ▊▍▅▄▍▅▇ ▆▌ ▋▆▌▄▇▊ ▌▆▄▄▅▄▄ ▍██▌ ▌▄▇▅ ▌▆▇▄▆ █▇▍▊ ▊▌▊▇ ▌▇▉▍▉ ▅▊▆ ▋▉ ▅▊▊ ▄▊ ▉▄▆▇▌
Split MinidumpUploader into multiple .cs files as it got a little unwieldy
█▅ ▉▅▄█▊ ▇▅▉▋ █▇█▄▍▉▆ ▌▆ ▊▌▆▇▅▍▋ ▍▌▌▆▍▉ ▋▉▄▍ ▌▌ ▄▇▄▌▌▄ ▆▄ █▋▉▇▄▌▋▅▊▌ ▆▍▅▋▊█▇
Fixes
- fix typo in URL
- indicate when client is on the main menu (crashing ingame vs disconnecting from server then crashing)
- cleanup modded framework check, just read the server tags instead of looking for Oxide.dll loaded
Upload the crash dumps to our backend now that the crash handler is fixed
- uploads client & server crashes, modded or vanilla then we filter on backend
- write state of session every 30s and on scene changes: when the crash actually happens we won't have a chance to write the latest state
merge from main -> optimize_json_garbage
▄▄ ██▆▌▅ ▆▄█▊ ▋█▇▌▋▄▉ ▄▆ ▉▌▇▇▋▋▉ ▇▊█▅▄▌▅ ▉█▅▊▊▌▄ ▉▅▌ ▅▍▄▋▇▉▄ ▆▌▅ ▍▆▋ ▅▋ █▆▌▉▉ ▇▊▌▇ ▌█ ▉▇▌▅▆ ▄▊█ ▆▌▋▋▍ ▄█ ▌▅▋▅▆▋ ▄▍▆ ▊▅▍ ▊▉▉▄▋ ▍▌▍▊▇▋ ▍▍▉▆▍▌▋ █▌ ▉▅▉█ ▅▅▉ ▋▉█▊█▄▄▄▍ ▊▌▄▌▄▄ ▋██▋▆▋█ ▄▄▉▅ ▇ ██▄▄▍▉█▅█▆ ▋▆▍▍
▋ ▇▄▌▋▉ ▅█▉▇ ▉▅▉▇▇▊█ ▄▊ ▌▍▅▆▊▉▇ ▅▌▄▋▍▄ ▊▍▌▍▊█▆▍▄▌ ▊▋▆▌█▌▅▄▉ ▍▄ ▋▍▊▅ █▆██▆█▋▇█▉ ▉█▇ ▄▄▋▋▋▅▉██▊▌▆▋▄▆▄▄▍▄▆ ▌▅▅▌█▋█▌
█▊ ▍█▉▊▍ █▉█▋ ▊▉▍▅▊▋▅ ▆▊ ▌▆▉▄▍▄▇ ▍▊▍▄ ▌▅▉▇▇▇▉▉▌▋█▉ ▍▋▋▄▉ ▉▍▊▋▇█▋▅ ▅▌██▆▄▋▊█▌█▍
merge from fix_masterkey_swipe -> main
Add tests to prove the swiping is correct
Fix the master key getting stuck in the animation state if you left click with key, as it derives from the keycard but has no swipe animation
merge from editor_save_toolbar -> main
merge from main -> editor_save_toolbar
merge from qol_compost_ui -> main
merge from main -> qol_compost_ui
▄▄ ▆▄▉▍▋▊ ▋█▌ ▆▇ ▅▇▅▉▉▇▊ ▄▄▌▆▊█▋█▋▅▍▋▍ ▅▉▌▊▊▇ ▊▅ ▅▇▇ ▇▊▆ ▅▇ ▆█▍▊▆▆▄▅▍▇▄▅▆▌▊█▅▇▅▉█▉▌ ▆▋█▍▊█ ▌▄▆▊▅▉ ▊▄ ▄▊▌█▋▊▆ ▆█▍▆▋▌▆ ▇▄ ▊▍▋ ▊▊▍▌▇ ▇▊▄▇ ▌▉▅ ▇▍█▅▊▇▄ ▊▌▉▍▆▉▊ ▌▉ ▊▋ ▆▄▅▋ ▄▇▄▌█▄ ▄▉▍█▌▌ ▌▌█ ▄▊▋▉▇▌▄ ▋▋▇▋▉ ▅█▊▉▉▍ ▉▌ ▅▄▋ ▌▍▊▇▊██▊▋▄▅ ▊▄▉█ ▌▍ ▄▉▇▉ ▋▉▍▅▆▍▆▌▇ ▄▆▄▍▌▉ ▊▉
▉▋ ▉▌▅▅▆▄▊ ▄▅█ ▊▉ ▊▉▅▍▇▆▌ ▋▊▍▉▌▍ ▌█ ▇▉█▉▅ ▅▌▋▍ ▅▄█▌▋▆▌▋ ▌▅▆ ▅▇█ ▍ ▄▄▋▄ ▊▆ ▆▅█▊
Fix a 4 year old bug: being able to move items into the output of a furnace by splitting them into the output slots
- the reason I avoided it was you have to modify all the ItemFilter methods in the project and add a BasePlayer parameter
- this allows us to block the player moving items into the output of the furnace but keep the furnace able to move cooked items into it's output