{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":92377859,"defaultBranch":"master","name":"WFN","ownerLogin":"wokhan","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-05-25T07:35:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/24826061?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1678707720.9672909","currentOid":""},"activityList":{"items":[{"before":"a60bec0b02f614127472dc98c2bbc6eaead37fc3","after":"5df32a298e75cc3541d4ba0208256216ed80c92b","ref":"refs/heads/master","pushedAt":"2023-04-26T09:32:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"WIP!\nrefactor: Now using CsWin32 to generate P/Invoke methods and structures. Allows to use SafeHandles where available to limit memory leaks risk and improve stability. It also means a lot of files have been removed since they're now generated.\nfeat: chart's tooltip now show only one line per process (but it still has to be improved.\nfix: GetMaxUserPort was reading the registry every single time, which is pretty unjustified. Caching it in a static variable to avoid this.","shortMessageHtmlLink":"WIP!"}},{"before":"52de1c53a03438c0882d96fc56792ec44ef0a833","after":"a60bec0b02f614127472dc98c2bbc6eaead37fc3","ref":"refs/heads/master","pushedAt":"2023-04-05T13:57:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"FIX: Binding for notifications activation setting was broken.\nFIX: Units wer wrongly set (either empty or incorrect) after moving to the custom converter.\nMISC: Removed all legacy service-detection related code and the corresponding useless window.\nMISC: Minor refactoring (on Process/StorePackage helpers' NativeMethods). I might consider using CsWin32 library for that in a near future.\nMISC: Renamed LogEntryViewModel to LoggedConnection as it looks way more meaningful. Same goes for MonitoredConnection instead of Connection.","shortMessageHtmlLink":"FIX: Binding for notifications activation setting was broken."}},{"before":"63e8f3a599aa454dac527bf2cd804e1ef45fa48e","after":"52de1c53a03438c0882d96fc56792ec44ef0a833","ref":"refs/heads/master","pushedAt":"2023-04-02T20:20:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"FIX: fixed a \"no-impact\" issue with CountryFlags.WPF when the Coordinates.CountryISOCode property is null (or the object itself).\nFIX: fixed a regression with GetOrSetValueAsync from Wokhan.Core (it wasn't working anymore with inherited private backing fields).\nFIX: first step to fix #163 (rules matching doesn't work as expected). Still need to investigate but a code update was required (check on \"service\" parameters nullability).","shortMessageHtmlLink":"FIX: fixed a \"no-impact\" issue with CountryFlags.WPF when the Coordin…"}},{"before":"9c0987f37a60138470c402b5b408e0bdd5fb305d","after":"63e8f3a599aa454dac527bf2cd804e1ef45fa48e","ref":"refs/heads/master","pushedAt":"2023-04-02T14:23:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"FIX: Uses an updated version of Wokhan.Core with a fix on GetOrSetValueAsync. Should be way more stable with no more memory violations.\nIMP: Now using a ConcurrentDictionary to resolve the app icons. Meaning that icons might get resolved multiple times but with no lock (less wait time).","shortMessageHtmlLink":"FIX: Uses an updated version of Wokhan.Core with a fix on GetOrSetVal…"}},{"before":"5867959704ea462ec31d1a410623c383bb457227","after":"9c0987f37a60138470c402b5b408e0bdd5fb305d","ref":"refs/heads/master","pushedAt":"2023-04-02T09:35:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"FIX: attempt to fix #160 by moving the Axes init in a Loaded event handler.","shortMessageHtmlLink":"FIX: attempt to fix #160 by moving the Axes init in a Loaded event ha…"}},{"before":"684bfae5d1afac370cf08d164e02c2cd98ea0bc5","after":"5867959704ea462ec31d1a410623c383bb457227","ref":"refs/heads/master","pushedAt":"2023-04-02T08:55:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"FIX: I (hopefully) fixed issue #154 regarding a blocking exception when refreshing the event log (also modified the DataView binding as it was assigned by code instead of XAML).\nIMP: Removed ResolvedHost from the CurrentConn class, as we already have a TargetHostName property on the parent class with the same goal. CurrentConn will be simplified further (and eventually renamed).\nMISC: minor refactoring.","shortMessageHtmlLink":"FIX: I (hopefully) fixed issue #154 regarding a blocking exception wh…"}},{"before":"3d846c65e6135f2d2fdd3d122c65e358f83cd41f","after":"684bfae5d1afac370cf08d164e02c2cd98ea0bc5","ref":"refs/heads/master","pushedAt":"2023-03-27T20:53:26.887Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Refactoring: Introduced a custom GeoLocation record (to avoid dependencies to Bing Maps where not required).\nImprovement: Added country flags in the connections list and in the map.\nRefactoring: too many try/catch blocks in ProcessHelper.GetLocalUserOwner - btw there is something weird with it, see comments.\nMisc.: Updated the GeoIP DB.\nImprovement: the message regarding the missing DB file is now directly displayed over the map.\nRefactoring: partly rewrote the Connection constructor regarding the Owner/Path/Filename resolution.\nRefactoring: removed both ReasonColor and DirectionColor from LogEntryViewModel to handle them through conditional styling.\nUI: added bullet-shaped background for the protocol column. Looks nicer.","shortMessageHtmlLink":"Refactoring: Introduced a custom GeoLocation record (to avoid depende…"}},{"before":"214f856512de2835bb3fa27a2e63fd7eaef4054e","after":"3d846c65e6135f2d2fdd3d122c65e358f83cd41f","ref":"refs/heads/master","pushedAt":"2023-03-19T21:41:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Merged GeoConnection2 and Connection classes to make things more readable (lazily loading the corresponding members). Still has to be improved a bit regarding the routes resolution.\nThe bandwidth graph looks better (units are alright now but values seem off?!).\nIntroduced the GeoLocationHelper class to handle IP-based geolocation.\nMore minor refactoring (as usual). Mainly null-related stuff.","shortMessageHtmlLink":"Merged GeoConnection2 and Connection classes to make things more read…"}},{"before":"40f9fcbc0c677f3454c625400623cf4f09290e34","after":"214f856512de2835bb3fa27a2e63fd7eaef4054e","ref":"refs/heads/master","pushedAt":"2023-03-18T11:26:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Avoided a deadlock in DNS resolution.\nMinor refactoring and warnings resolutions.","shortMessageHtmlLink":"Avoided a deadlock in DNS resolution."}},{"before":"8d2bc5d924f848575bb9940bd2ae25fbc6be0c20","after":"40f9fcbc0c677f3454c625400623cf4f09290e34","ref":"refs/heads/master","pushedAt":"2023-03-17T23:06:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Rewrote the IP resolution code (again) since it was keeping too much unused information (we only need the hostname).\nReplaced the DispatcherTimer (running on the UI thread) in TimerBasedPage by a System.Timers.Timer, allowing to remove useless Task.Run and async calls since it's already running on another thread.\nRemoved UseBlockRules setting and factorized rule creation code accorrdingly.\nWIP: trying to fix the scaling issue with the bandwidth graph.","shortMessageHtmlLink":"Rewrote the IP resolution code (again) since it was keeping too much …"}},{"before":"f36fca85b4700ff6995c4d9ff6303b84cbf93631","after":"8d2bc5d924f848575bb9940bd2ae25fbc6be0c20","ref":"refs/heads/master","pushedAt":"2023-03-14T22:13:22.978Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"More nullable delight (again).\nAlso rewrote the filtering logic in the Rules page (again). It appears that a Predicate delegate can be considered as a multicast delegate, contrary to what I understood, meaning you can use the \"+\" operator to chain predicates - at least on the CollectionView.Filter property.\nRewrote the DNS resolution logic (simpler and probably faster).","shortMessageHtmlLink":"More nullable delight (again)."}},{"before":"62c9b0db68e7a6ddf0973b945d55f80ec869f64b","after":"f36fca85b4700ff6995c4d9ff6303b84cbf93631","ref":"refs/heads/master","pushedAt":"2023-03-13T11:30:36.110Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Updated the release workflow to match the improvements of the nightly one.","shortMessageHtmlLink":"Updated the release workflow to match the improvements of the nightly…"}},{"before":"c0ea1e3ce9e5dba79e274807517eb8de232fe62a","after":"62c9b0db68e7a6ddf0973b945d55f80ec869f64b","ref":"refs/heads/master","pushedAt":"2023-03-13T11:05:35.504Z","pushType":"push","commitsCount":2,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Merge branch 'master' of https://github.com/wokhan/WFN","shortMessageHtmlLink":"Merge branch 'master' of https://github.com/wokhan/WFN"}},{"before":"cefe9028474510881515437df6a7a0cb08a0ba03","after":"c0ea1e3ce9e5dba79e274807517eb8de232fe62a","ref":"refs/heads/master","pushedAt":"2023-03-12T21:35:11.394Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Now it works but...\n\n... I still wanted to rename the packages so that it should appear ordered by date.","shortMessageHtmlLink":"Now it works but..."}},{"before":"a7be20daf7c65c152ebea333f23e71301ecb9a9f","after":"cefe9028474510881515437df6a7a0cb08a0ba03","ref":"refs/heads/master","pushedAt":"2023-03-12T20:55:15.291Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Github action fix \n\nAccording to some discussion I've lost the link to, using \"--self-contained false\" at the solution level when publishing doesn't work... While removing it works. Go figure...","shortMessageHtmlLink":"Github action fix"}},{"before":"e34bcd7889ffa792861877e376efc641af0df759","after":"a7be20daf7c65c152ebea333f23e71301ecb9a9f","ref":"refs/heads/master","pushedAt":"2023-03-12T18:16:46.557Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Github action update for nightlies (5/...)\n\nLooks better.","shortMessageHtmlLink":"Github action update for nightlies (5/...)"}},{"before":"b73a03d33d33c6779157e248a443fbd4fe3e2b6c","after":"e34bcd7889ffa792861877e376efc641af0df759","ref":"refs/heads/master","pushedAt":"2023-03-12T18:11:05.835Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Github action update for nightlies (4/...)\n\nTweaked the matrix approach since... I wrote \"relaase\" instead of \"release\" and guess what, it didn't work. For my defense, I'm in a car. 🤣","shortMessageHtmlLink":"Github action update for nightlies (4/...)"}},{"before":"0f03b04893557b1761613278ba8cc22848f60282","after":"b73a03d33d33c6779157e248a443fbd4fe3e2b6c","ref":"refs/heads/master","pushedAt":"2023-03-12T16:32:47.060Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Github action update for nightlies (3/...)\n\nAnother minute, another try... the update-tag was duplicated in each job (unnecessarily) and the GitHub token was missing.","shortMessageHtmlLink":"Github action update for nightlies (3/...)"}},{"before":"ec5d7199963b3c668fa810cb8297545a1b5d792e","after":"0f03b04893557b1761613278ba8cc22848f60282","ref":"refs/heads/master","pushedAt":"2023-03-12T16:23:36.669Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Github action update for nightlies\n\nTrying to use matrix configuration to simplify the file and workflow. Note: should probably rely on the solution/csproj file to build for x86/x64/any.\r\nAlso use update-tag github action since the previous one (update-latest) doesn't seem to do what I was after.","shortMessageHtmlLink":"Github action update for nightlies"}},{"before":"9557011bd778016d3d3985f1dcd42f1bee38da9f","after":"ec5d7199963b3c668fa810cb8297545a1b5d792e","ref":"refs/heads/master","pushedAt":"2023-03-12T15:11:09.149Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Added latest-tag github action\n\nShould allow to update the assets source link.\r\nAlso updated deploy-nightly action to v2.","shortMessageHtmlLink":"Added latest-tag github action"}},{"before":"9b9dd1c5816da19a6f4fda2e02a89d98496c8c11","after":"9557011bd778016d3d3985f1dcd42f1bee38da9f","ref":"refs/heads/master","pushedAt":"2023-03-12T10:53:51.770Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Fixed a regression no settings save / reload.\nBumped the version number to 2.6.x.","shortMessageHtmlLink":"Fixed a regression no settings save / reload."}},{"before":"fbd0a2d5b210801288adde576aa4d0fc83cfd78a","after":"9b9dd1c5816da19a6f4fda2e02a89d98496c8c11","ref":"refs/heads/master","pushedAt":"2023-03-12T10:48:06.730Z","pushType":"push","commitsCount":1,"pusher":{"login":"wokhan","name":"Jérôme Saliba","path":"/wokhan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24826061?s=80&v=4"},"commit":{"message":"Now using CommunityToolkit MVVM RelayCommands instead of click handler almost everywhere.\nTweaked the app color / layout in the Connections page's list so that it gets more readable.\nAdded a way to retrieve the icon and name for Store apps.\nMinor refactoring.","shortMessageHtmlLink":"Now using CommunityToolkit MVVM RelayCommands instead of click handle…"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADIIbEiQA","startCursor":null,"endCursor":null}},"title":"Activity · wokhan/WFN"}