{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":454526445,"defaultBranch":"master","name":"futr","ownerLogin":"futrnostr","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-02-01T19:41:36.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/178206216?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726685885.0","currentOid":""},"activityList":{"items":[{"before":"6ee088c4d5617d4c428a2a69fa4ed18ad0b6e6a9","after":"d9b5d47e4ca1dab7991a4803ffe1575dfcec637f","ref":"refs/heads/master","pushedAt":"2024-09-26T01:27:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Refactor profile loading in QML\n\n- Replaced direct visibility toggling with Loader components for MyProfile and EditMyProfile.\n- Simplified profileData property initialization in EditMyProfile.ui.qml and MyProfile.ui.qml.\n- Removed unnecessary fireSignal calls in Haskell code.","shortMessageHtmlLink":"Refactor profile loading in QML"}},{"before":"56504d1d46888fa2723635a2d24ed5dd9fdc4d30","after":"6ee088c4d5617d4c428a2a69fa4ed18ad0b6e6a9","ref":"refs/heads/master","pushedAt":"2024-09-25T21:32:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"set fallback profile data to empty string, in order to avoid errors on component load","shortMessageHtmlLink":"set fallback profile data to empty string, in order to avoid errors o…"}},{"before":"a4e2f93f2104921a50f94fccea0b10ce6c9e206a","after":"56504d1d46888fa2723635a2d24ed5dd9fdc4d30","ref":"refs/heads/master","pushedAt":"2024-09-25T21:27:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"prefill edit my profile form, make display my profile button flat","shortMessageHtmlLink":"prefill edit my profile form, make display my profile button flat"}},{"before":"f952ba1b89820f3bb174ab7e6396973cf2649a13","after":"a4e2f93f2104921a50f94fccea0b10ce6c9e206a","ref":"refs/heads/master","pushedAt":"2024-09-25T20:48:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"show profile data in UI, move fallback image to Qt","shortMessageHtmlLink":"show profile data in UI, move fallback image to Qt"}},{"before":"0a15b6497bc5dcf9a4a04d20b9c7671f0138b900","after":"f952ba1b89820f3bb174ab7e6396973cf2649a13","ref":"refs/heads/master","pushedAt":"2024-09-25T02:15:40.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Integrate dynamic profile data and improve profile handling","shortMessageHtmlLink":"Integrate dynamic profile data and improve profile handling"}},{"before":"00003f8ac240e2d7d9884b273465d06edc0fa8a4","after":"0a15b6497bc5dcf9a4a04d20b9c7671f0138b900","ref":"refs/heads/master","pushedAt":"2024-09-24T22:39:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"cleanup RelayPool","shortMessageHtmlLink":"cleanup RelayPool"}},{"before":"777715e8038bf07f2090acbcfed1ebf88d16c5c9","after":"00003f8ac240e2d7d9884b273465d06edc0fa8a4","ref":"refs/heads/master","pushedAt":"2024-09-24T22:35:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Refactor app state and subscription handling\n\n - Move app state to separate AppState module\n - Implement new RelayPool and WebSocket effects\n - Remove Dispatcher and ResponseProcessor effects\n - Add Subscription effect for handling different subscription types\n - Update Futr module to use new app state and effects\n - Refactor main subscription logic in Futr module","shortMessageHtmlLink":"Refactor app state and subscription handling"}},{"before":"4fdb993a61d42f440a8d332e6a4e804d280de5b2","after":"777715e8038bf07f2090acbcfed1ebf88d16c5c9","ref":"refs/heads/master","pushedAt":"2024-09-20T17:41:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"enable compression on websocket connection","shortMessageHtmlLink":"enable compression on websocket connection"}},{"before":"896d6d1d183f771bc612f31edf8e0323a8be3d1b","after":"4fdb993a61d42f440a8d332e6a4e804d280de5b2","ref":"refs/heads/master","pushedAt":"2024-09-19T23:04:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Document Linux Build Process\n\nresolves https://github.com/futrnostr/futr/issues/18","shortMessageHtmlLink":"Document Linux Build Process"}},{"before":"ef7e4a96cfd5076e21d085a97950449f75165cee","after":"896d6d1d183f771bc612f31edf8e0323a8be3d1b","ref":"refs/heads/master","pushedAt":"2024-09-19T23:01:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Make AppImage work again\n\nresolves https://github.com/futrnostr/futr/issues/19","shortMessageHtmlLink":"Make AppImage work again"}},{"before":"26af1e8d42344d540d6d36da3543a81449a1ee9e","after":"ef7e4a96cfd5076e21d085a97950449f75165cee","ref":"refs/heads/master","pushedAt":"2024-09-19T22:25:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Bump GHC Version to 9.6.6 and upgrade Wuss dependency\n\nresolves https://github.com/futrnostr/futr/issues/23","shortMessageHtmlLink":"Bump GHC Version to 9.6.6 and upgrade Wuss dependency"}},{"before":"faa2804e19fd7154c48cbf4f61cf89181098eb61","after":"26af1e8d42344d540d6d36da3543a81449a1ee9e","ref":"refs/heads/master","pushedAt":"2024-09-19T18:57:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Enhanced nostr key management and relay handling\n\n- Added Nostr.Effects.Dispatcher (new module for dispatching responses to subscriptions).\n- Updated relay connection logic.\n- Refactored relay pool state and effect handling.\n- Updated WebSocket effect to remove responseQueue.\n- Fix bugs in Nostr.Keys import and exports.\n- Fix json format of nostr events.\n- Updated default-extensions to include ConstraintKinds, LambdaCase, RankNTypes, and TemplateHaskell.","shortMessageHtmlLink":"Enhanced nostr key management and relay handling"}},{"before":"ffea76ada076257ed7c524791a9814b4147604c1","after":null,"ref":"refs/heads/dependabot/github_actions/kleidukos/get-tested-0.1.8.0","pushedAt":"2024-09-18T18:58:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"}},{"before":"6956f1250739df6a4e4d6203a981ec8b1a05924c","after":"faa2804e19fd7154c48cbf4f61cf89181098eb61","ref":"refs/heads/master","pushedAt":"2024-09-18T02:25:13.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Add login functionality and process subscription queue\n\n- Implement login method in Futr to handle user login and update state with the keyPair.\n- Use fireSignal to trigger UI updates after successful login.\n- Process incoming responses from a subscription.","shortMessageHtmlLink":"Add login functionality and process subscription queue"}},{"before":"4286525cf6893ae69652593fbed0bd893c9c5e2e","after":"6956f1250739df6a4e4d6203a981ec8b1a05924c","ref":"refs/heads/master","pushedAt":"2024-09-17T00:20:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Refactor Key Management Context Handling\n\n- Removed initialState from EffectfulQMLState, using inline initialization in runEffectfulQML.\n- Consolidated FutrEff type constraint and simplified runFutr by removing redundant context passing.\n- Added KeyMgmtEff and KeyMgmgtContextEff constraint synonyms for better type safety and maintainability.\n- Moved loadAccounts out of the effect handler and into a separate function for reuse and modularity.","shortMessageHtmlLink":"Refactor Key Management Context Handling"}},{"before":"9e9cb4e278329887c1f80f4b199627a60f6a64df","after":"4286525cf6893ae69652593fbed0bd893c9c5e2e","ref":"refs/heads/master","pushedAt":"2024-09-16T23:08:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"RelayPool uses single broadcast channel for all connections","shortMessageHtmlLink":"RelayPool uses single broadcast channel for all connections"}},{"before":"a8ae984298f23c506892abecdfc836332e52e460","after":"9e9cb4e278329887c1f80f4b199627a60f6a64df","ref":"refs/heads/master","pushedAt":"2024-09-16T20:51:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"add TimeFormatter, prepare Futr data structure","shortMessageHtmlLink":"add TimeFormatter, prepare Futr data structure"}},{"before":"6691cbe0fe640a0be7e6f224ea4e722ad56c2853","after":null,"ref":"refs/heads/effectful","pushedAt":"2024-09-16T19:25:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"}},{"before":"704f73a6bde202030d464757604b0e64f0719c27","after":"a8ae984298f23c506892abecdfc836332e52e460","ref":"refs/heads/master","pushedAt":"2024-09-16T19:25:05.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Merge pull request #24 from futrnostr/effectful\n\nEffectful","shortMessageHtmlLink":"Merge pull request #24 from futrnostr/effectful"}},{"before":"2aa70976461130ad63d9716dbc7829cd55acefaf","after":"6691cbe0fe640a0be7e6f224ea4e722ad56c2853","ref":"refs/heads/effectful","pushedAt":"2024-09-16T19:06:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"effectful\n\nThe application is now an effectful computation.\n\nAdded modules:\n\n- EffectfulQML: Responsible for starting Qt event loop and firing signals on default signal key\n- Futr: AppState and Context Manager\n- Nostr.Effects.IDGen: effectful ID generator\n- Nostr.Effects.Logging: central effectful logging\n- Nostr.Effects.RelayPool: effectful relay pool implementation\n- Nostr.Effects.ResponseProcessor: effectful subscription processing (placeholder)\n- Nostr.Effects.WebSocket: effectful websocket implementation\n\nRefactored:\n\n- Nostr.Types: added new module containing all nostr base types\n- Nostr.Filter, Nostr.RelayPool, Nostr.Request, Nostr.Response, Types: removed","shortMessageHtmlLink":"effectful"}},{"before":"26235a16a33ea33e697492dd878f6b840ea3d00f","after":"2aa70976461130ad63d9716dbc7829cd55acefaf","ref":"refs/heads/effectful","pushedAt":"2024-09-16T18:56:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"effectful\n\nThe application is now an effectful computation.\n\nAdded modules:\n\n- EffectfulQML: Responsible for starting Qt event loop and firing signals on default signal key\n- Futr: AppState and Context Manager\n- Nostr.Effects.IDGen: effectful ID generator\n- Nostr.Effects.Logging: central effectful logging\n- Nostr.Effects.RelayPool: effectful relay pool implementation\n- Nostr.Effects.ResponseProcessor: effectful subscription processing (placeholder)\n- Nostr.Effects.WebSocket: effectful websocket implementation\n\nRefactored:\n\n- Nostr.Types: added new module containing all nostr base types\n- Nostr.Filter, Nostr.RelayPool, Nostr.Request, Nostr.Response, Types: removed","shortMessageHtmlLink":"effectful"}},{"before":"558e691ae44acbb3de3ab2100416b5d3bbfb7c44","after":"26235a16a33ea33e697492dd878f6b840ea3d00f","ref":"refs/heads/effectful","pushedAt":"2024-09-15T02:00:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"create Futr Eff, refactor main","shortMessageHtmlLink":"create Futr Eff, refactor main"}},{"before":"1a4a632a691e6155d663bacc8cbf5cc3dd149fbc","after":"558e691ae44acbb3de3ab2100416b5d3bbfb7c44","ref":"refs/heads/effectful","pushedAt":"2024-09-14T00:40:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"finish up effectful key mgmt","shortMessageHtmlLink":"finish up effectful key mgmt"}},{"before":null,"after":"1a4a632a691e6155d663bacc8cbf5cc3dd149fbc","ref":"refs/heads/effectful","pushedAt":"2024-09-11T20:35:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"[WIP] effectful","shortMessageHtmlLink":"[WIP] effectful"}},{"before":null,"after":"ffea76ada076257ed7c524791a9814b4147604c1","ref":"refs/heads/dependabot/github_actions/kleidukos/get-tested-0.1.8.0","pushedAt":"2024-09-09T09:22:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump kleidukos/get-tested from 0.1.7.1 to 0.1.8.0\n\nBumps [kleidukos/get-tested](https://github.com/kleidukos/get-tested) from 0.1.7.1 to 0.1.8.0.\n- [Release notes](https://github.com/kleidukos/get-tested/releases)\n- [Changelog](https://github.com/Kleidukos/get-tested/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/kleidukos/get-tested/compare/v0.1.7.1...v0.1.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: kleidukos/get-tested\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump kleidukos/get-tested from 0.1.7.1 to 0.1.8.0"}},{"before":"21b8fe1f02f75e63fc5307d67baff3f4d1126cdb","after":"704f73a6bde202030d464757604b0e64f0719c27","ref":"refs/heads/master","pushedAt":"2024-09-04T00:02:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"update hsqml","shortMessageHtmlLink":"update hsqml"}},{"before":"fbc4932ef758deebe96b860f422043e4791d747d","after":"21b8fe1f02f75e63fc5307d67baff3f4d1126cdb","ref":"refs/heads/master","pushedAt":"2024-09-03T23:57:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"Added new modules:\n\n Nostr.Filter: Defines filters and their JSON representations.\n Nostr.RelayPool: Manages relays, subscriptions, and requests.\n Nostr.Request: Represents Nostr protocol requests.\n Nostr.Response: Handles Nostr protocol responses.\n\nUpdated Nostr.Profile:\n\n Renamed Username to Name and added a Banner field.\n Adjusted ToJSON and FromJSON instances for the new field.\n\nUpdated KeyMgmt.hs:\n\n Incorporated the new Banner field in profile handling.","shortMessageHtmlLink":"Added new modules:"}},{"before":"73723aecbddd194529b5974f9fb836c538b3958b","after":"fbc4932ef758deebe96b860f422043e4791d747d","ref":"refs/heads/master","pushedAt":"2024-09-03T21:36:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"fix my profile view","shortMessageHtmlLink":"fix my profile view"}},{"before":"9d6d159955e00b165ec4b6a19997fc4a59415097","after":"73723aecbddd194529b5974f9fb836c538b3958b","ref":"refs/heads/master","pushedAt":"2024-09-03T21:25:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"add window icon to application","shortMessageHtmlLink":"add window icon to application"}},{"before":"a96cf27dab25d706a4a1b83f5d2e596e4375454d","after":"9d6d159955e00b165ec4b6a19997fc4a59415097","ref":"refs/heads/master","pushedAt":"2024-09-03T19:12:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prolic","name":"Sascha-Oliver Prolić","path":"/prolic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/394428?s=80&v=4"},"commit":{"message":"View / Edit My Profile UI","shortMessageHtmlLink":"View / Edit My Profile UI"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNlQwMToyNzozMy4wMDAwMDBazwAAAATA8J3P","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wM1QxOToxMjozMy4wMDAwMDBazwAAAASr8GYa"}},"title":"Activity · futrnostr/futr"}