{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":257360655,"defaultBranch":"main","name":"imageflow-dotnet-server","ownerLogin":"imazen","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-04-20T17:49:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1761920?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1701733649.0","currentOid":""},"activityList":{"items":[{"before":"944bc4a3faa539a223d8529935ac6d4f3390b092","after":"0ff63c2f5e071353b04cf3341360e905180aea58","ref":"refs/heads/refactorblob","pushedAt":"2024-05-24T20:43:31.000Z","pushType":"push","commitsCount":23,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Get HybridCache.Benchmark running (still not correctly configured, and should have a direct-to-iblobcache mode).","shortMessageHtmlLink":"Get HybridCache.Benchmark running (still not correctly configured, an…"}},{"before":"2f9b9cd10749519049d9406ed3f50b7fdea9806a","after":"944bc4a3faa539a223d8529935ac6d4f3390b092","ref":"refs/heads/refactorblob","pushedAt":"2024-03-21T08:19:41.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Create Imageflow.Server.ExampleModernAPI and CustomMediaEndpoint","shortMessageHtmlLink":"Create Imageflow.Server.ExampleModernAPI and CustomMediaEndpoint"}},{"before":"62e72ee6177a2f46ef1fea575aafcfa4654a0998","after":"2f9b9cd10749519049d9406ed3f50b7fdea9806a","ref":"refs/heads/refactorblob","pushedAt":"2024-03-19T04:41:29.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Move MiddlewareOptionsServerBuilder","shortMessageHtmlLink":"Move MiddlewareOptionsServerBuilder"}},{"before":"c3ce0bdff9afc2381ea105eaebbc57522e88fa20","after":"62e72ee6177a2f46ef1fea575aafcfa4654a0998","ref":"refs/heads/refactorblob","pushedAt":"2024-03-19T04:25:36.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Fix request cache key building to use entire querystring for now","shortMessageHtmlLink":"Fix request cache key building to use entire querystring for now"}},{"before":"cde118fdd05c031098ce930cb3c8d11d2be58abf","after":"c3ce0bdff9afc2381ea105eaebbc57522e88fa20","ref":"refs/heads/refactorblob","pushedAt":"2024-03-18T22:15:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Refactor BlobWrapper design to accomodate disposal and reference tracking requirements.","shortMessageHtmlLink":"Refactor BlobWrapper design to accomodate disposal and reference trac…"}},{"before":"b591aa527dd28f68aca00a0b28d48d3457f5b0f8","after":"cde118fdd05c031098ce930cb3c8d11d2be58abf","ref":"refs/heads/refactorblob","pushedAt":"2024-03-09T05:11:27.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Imazen.Common: Fix API breakage w/ BuildDateAttribute and CommitAttribute","shortMessageHtmlLink":"Imazen.Common: Fix API breakage w/ BuildDateAttribute and CommitAttri…"}},{"before":"97a56d0048f3c3ace7d1c164ef1f34c951ae9eae","after":"b591aa527dd28f68aca00a0b28d48d3457f5b0f8","ref":"refs/heads/refactorblob","pushedAt":"2024-02-27T13:09:41.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Correct some shipped API records","shortMessageHtmlLink":"Correct some shipped API records"}},{"before":"4fb47d7f6f7190a7d513450be59a04f5fe88d58e","after":"97a56d0048f3c3ace7d1c164ef1f34c951ae9eae","ref":"refs/heads/refactorblob","pushedAt":"2024-02-27T10:51:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"(squash) Completely rewrite the product to enable all the new scenarios (multi-cache support, self-healing, input and output caching, blob caching, configurable routing system, new packages and assemblies. Enable trim/aot/singlefile analyzers, drop newtonsoft\n\npublic string->string? MyOpenSourceProjectUrl\n\nDon't dispose the HttpClient in RemoteReader; and start streaming data after the headers have buffered.","shortMessageHtmlLink":"(squash) Completely rewrite the product to enable all the new scenari…"}},{"before":"627c34ac02652bd63f126f435e4f24001a3e55ad","after":"4fb47d7f6f7190a7d513450be59a04f5fe88d58e","ref":"refs/heads/refactorblob","pushedAt":"2024-02-27T10:37:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Imazen.Common - change new interfaces\n Create Imazen.Common.Extensibility.BlobCache.*\n Move Imazen.Common.Storage.Caching there.\nIntroduced IUniqueNamed for caches and providers\n\nAdd Imazen.Common.Concurrency.BoundedTaskCollection\nAnd IBoundedTaskItem and BlobTaskItem.\nThis replaces the AsyncWriteCollection established in hybridcache\n\nAdd Imazen.Common.Extensibility.Logging\nDI-friendly IReLoggerStore and IReLoggerFactory\nallow for memory-constrained error retention for in-component diagnostics.\n\nAdd HostedServiceProxy to Imazen.Common.Extensibility.Support\nThis allows any DI component to easily (also) be an IHostedService by registering a proxy that is generic over its own type, so that even if there are multiple instances of said novel type, all will be started/stopped.\n\nAdd BlobStringValidator to Imazen.Common\n(Imazen.Common.Extensibility.Support)\nto support blob cache provider creation\n\nImazen.Common: Add INamedStreamCache & IStreamCacheProvider\nIUniqueNamed is required for both\n\nWIP\n\nWIP that builds\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nwip\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP - fixing nullability annotations and warnings\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP\n\nWIP - cleanup\n\nBump dependencies, enable trim/aot/singlefile analyzers, drop newtonsoft\n\nImprove code and reduce warnings\n\nStart moving Licensing into routing\n\nBuild a custom route matching engine because I'm just not tired enough by this massive rewrite\n\nWrap up inital draft of MatchExpression tester\n\nFix build errors; still working on tests\n\nExpression matching tests passing\n\nFix bugs in matching engine\n\nImprovements to match syntax\n\nAdd IBackedByReadOnlyMemory and ReadOnlyMemoryBlob\n\nUpdate Imageflow.Net\n\nLicensing WIP\n\nFix bug in IFastCond optimizer and make HasSupportedImageExtension a generic copy of HasFastSuffixes\n\nFix failing signature verification\n\nFix WhenAnyMatchesOrDefault tests and impl\n\nAdd AsyncDisposableHost to make testing more ergonomic\n\nAdd DisposalPromise enum, Refactor IConsumableBlob.TakeStream to .BorrowStream(DisposalPromise), and fix usage to be proper. Also, replace pointless implementations of IConsumableBlob with the default one, since it does everything all of the impls .needed\n\nFix PresetsLayer\n\nSkip empty cache group\n\nFix s3 bucket ref\n\nMake Imazen.Routing.Helpers.PathHelpers.ImagePathSuffixes internally accessible\n\nRegister LicenseOptions in tests\n\nMisc\n\nNuget update\n\npublic string->string? MyOpenSourceProjectUrl\n\nDon't dispose the HttpClient in RemoteReader; and start streaming data after the headers have buffered.\n\nNullability fixes","shortMessageHtmlLink":"Imazen.Common - change new interfaces"}},{"before":"ba7a5dcd3eb5905b88d7b0a73caff507003b283f","after":"627c34ac02652bd63f126f435e4f24001a3e55ad","ref":"refs/heads/refactorblob","pushedAt":"2024-02-27T10:08:34.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Nullability fixes","shortMessageHtmlLink":"Nullability fixes"}},{"before":"f6fa315049dd85990749681e8c3c348f46e387b1","after":"ba7a5dcd3eb5905b88d7b0a73caff507003b283f","ref":"refs/heads/refactorblob","pushedAt":"2024-02-10T07:02:55.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Licensing WIP","shortMessageHtmlLink":"Licensing WIP"}},{"before":"f308a5a68aa51481ab359591b14e7a9bfd613a61","after":"f6fa315049dd85990749681e8c3c348f46e387b1","ref":"refs/heads/refactorblob","pushedAt":"2024-02-05T00:27:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Improvements to match syntax","shortMessageHtmlLink":"Improvements to match syntax"}},{"before":"d78e0f061f62216545a81041349082085cfa84c3","after":"f308a5a68aa51481ab359591b14e7a9bfd613a61","ref":"refs/heads/refactorblob","pushedAt":"2024-02-04T03:31:00.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Expression matching tests passing","shortMessageHtmlLink":"Expression matching tests passing"}},{"before":"52468d6215162dd900a63352f46257d3d08125c4","after":"d78e0f061f62216545a81041349082085cfa84c3","ref":"refs/heads/refactorblob","pushedAt":"2024-02-03T09:06:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Build a custom route matching engine because I'm just not tired enough by this massive rewrite","shortMessageHtmlLink":"Build a custom route matching engine because I'm just not tired enoug…"}},{"before":"08130d7d200888421beb17f1f74628a72c3dc681","after":"52468d6215162dd900a63352f46257d3d08125c4","ref":"refs/heads/refactorblob","pushedAt":"2024-01-29T21:49:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Improve code and reduce warnings","shortMessageHtmlLink":"Improve code and reduce warnings"}},{"before":"31fc0dc369e725ff876cf907dcdd12025b28772f","after":"08130d7d200888421beb17f1f74628a72c3dc681","ref":"refs/heads/refactorblob","pushedAt":"2024-01-29T21:14:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"Bump dependencies, enable trim/aot/singlefile analyzers, drop newtonsoft","shortMessageHtmlLink":"Bump dependencies, enable trim/aot/singlefile analyzers, drop newtonsoft"}},{"before":"dfda9fff4c4614c9e621ce21e61114dffc4cd814","after":"31fc0dc369e725ff876cf907dcdd12025b28772f","ref":"refs/heads/refactorblob","pushedAt":"2024-01-27T08:47:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP - cleanup","shortMessageHtmlLink":"WIP - cleanup"}},{"before":"7b420ae5154c07ea56a27ea5acff5880c9327543","after":"dfda9fff4c4614c9e621ce21e61114dffc4cd814","ref":"refs/heads/refactorblob","pushedAt":"2024-01-27T08:39:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"1e81a5b2b7e35551690dfdb7f6866959d25993a3","after":"7b420ae5154c07ea56a27ea5acff5880c9327543","ref":"refs/heads/refactorblob","pushedAt":"2024-01-26T20:05:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"d78d2972e72b4813c12ad7fb5af6b40a030799bd","after":"1e81a5b2b7e35551690dfdb7f6866959d25993a3","ref":"refs/heads/refactorblob","pushedAt":"2024-01-26T18:52:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"375613e83053c771bf7cb04d4d9aeb489e014478","after":"d78d2972e72b4813c12ad7fb5af6b40a030799bd","ref":"refs/heads/refactorblob","pushedAt":"2024-01-26T18:14:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"e51f9ecf4a9314bffdc1ac7f86520b8c50fd9da6","after":"375613e83053c771bf7cb04d4d9aeb489e014478","ref":"refs/heads/refactorblob","pushedAt":"2024-01-26T07:56:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"9669e04ba7ece18e6ee3f88bdfdb91e72648613f","after":"e51f9ecf4a9314bffdc1ac7f86520b8c50fd9da6","ref":"refs/heads/refactorblob","pushedAt":"2024-01-26T06:45:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP - fixing nullability annotations and warnings","shortMessageHtmlLink":"WIP - fixing nullability annotations and warnings"}},{"before":"d126cfe5b44d9099dd975322b404d218027b27be","after":"9669e04ba7ece18e6ee3f88bdfdb91e72648613f","ref":"refs/heads/refactorblob","pushedAt":"2024-01-26T05:04:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"56e41b40a5ccfa72ba55afeeb0148c6be5d39ed1","after":"d126cfe5b44d9099dd975322b404d218027b27be","ref":"refs/heads/refactorblob","pushedAt":"2024-01-25T23:35:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"ba175ca9a0f901383a5dea6cb1f0bb7c7ff37794","after":"56e41b40a5ccfa72ba55afeeb0148c6be5d39ed1","ref":"refs/heads/refactorblob","pushedAt":"2024-01-25T19:46:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"ac3213588c4fb2a0cd9cc7ce035043c42712b8ad","after":"ba175ca9a0f901383a5dea6cb1f0bb7c7ff37794","ref":"refs/heads/refactorblob","pushedAt":"2024-01-24T09:02:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"43326350fc56efd2cc7b8c62074d6ec976ed398e","after":"ac3213588c4fb2a0cd9cc7ce035043c42712b8ad","ref":"refs/heads/refactorblob","pushedAt":"2024-01-22T23:21:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"8fe4ee5f3cc837ef7dc21e4d84ef1da2b08df1d0","after":"43326350fc56efd2cc7b8c62074d6ec976ed398e","ref":"refs/heads/refactorblob","pushedAt":"2024-01-22T05:15:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"66e8c371b06d3baac907bf59d4e9f77b8e67db38","after":"8fe4ee5f3cc837ef7dc21e4d84ef1da2b08df1d0","ref":"refs/heads/refactorblob","pushedAt":"2024-01-21T09:24:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lilith","name":"Lilith River","path":"/lilith","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107935?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEU2SW0wA","startCursor":null,"endCursor":null}},"title":"Activity · imazen/imageflow-dotnet-server"}