{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":581583060,"defaultBranch":"main","name":"mahler","ownerLogin":"balena-io-modules","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-12-23T16:12:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/17724750?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716571476.0","currentOid":""},"activityList":{"items":[{"before":"99c7e2765b47d5fd754cf39716d5ed5fb7a6aef7","after":"7596476fc6e2b1dfbbdb9e9e244e92185177dba3","ref":"refs/heads/v4","pushedAt":"2024-05-27T14:53:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Move state rollback to Agent runtime\n\nThe `observe` module would observe changes on a state and revert to the\nprevious state if an error occurred, however this had a flaw as the\nrollback would revert the whole state object, causing problems if\nconcurrent changes were performed in parallel branches of the plan. This\nmoves the reversal to the Agent runtime, where the path information can\nbe used to revert, limiting the reverted changes only to the path that\nthe action modifies.\n\nChange-type: patch","shortMessageHtmlLink":"Move state rollback to Agent runtime"}},{"before":"4028d83dd7e6db96cc0e925e17e49cfc30d10323","after":"99c7e2765b47d5fd754cf39716d5ed5fb7a6aef7","ref":"refs/heads/v4","pushedAt":"2024-05-27T14:37:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Move state rollback to Agent runtime\n\nThe `observe` module would observe changes on a state and revert to the\nprevious state if an error occurred, however this had a flaw as the\nrollback would revert the whole state object, causing problems if\nconcurrent changes were performed in parallel branches of the plan. This\nmoves the reversal to the Agent runtime, where the path information can\nbe used to revert, limiting the reverted changes only to the path that\nthe action modifies.\n\nChange-type: patch","shortMessageHtmlLink":"Move state rollback to Agent runtime"}},{"before":"37112ae72635523540ae3684b20448125cd51e96","after":"4028d83dd7e6db96cc0e925e17e49cfc30d10323","ref":"refs/heads/v4","pushedAt":"2024-05-27T14:33:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Move state rollback to Agent runtime\n\nThe `observe` module would observe changes on a state and revert to the\nprevious state if an error occurred, however this had a flaw as the\nrollback would revert the whole state object, causing problems if\nconcurrent changes were performed in parallel branches of the plan. This\nmoves the reversal to the Agent runtime, where the path information can\nbe used to revert, limiting the reverted changes only to the path that\nthe action modifies.\n\nChange-type: patch","shortMessageHtmlLink":"Move state rollback to Agent runtime"}},{"before":"505330da1bd39717627811a11271d3c4d8cc75bf","after":"37112ae72635523540ae3684b20448125cd51e96","ref":"refs/heads/v4","pushedAt":"2024-05-26T21:32:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Move state rollback to Agent runtime\n\nThe `observe` module would observe changes on a state and revert to the\nprevious state if an error occurred, however this had a flaw as the\nrollback would revert the whole state object, causing problems if\nconcurrent changes were performed in parallel branches of the plan. This\nmoves the reversal to the Agent runtime, where the path information can\nbe used to revert, limiting the reverted changes only to the path that\nthe action modifies.\n\nChange-type: patch","shortMessageHtmlLink":"Move state rollback to Agent runtime"}},{"before":"8adfb742eb58a221f04dbdee13dbd576401e7b4a","after":"505330da1bd39717627811a11271d3c4d8cc75bf","ref":"refs/heads/v4","pushedAt":"2024-05-26T18:40:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Move state rollback to runtime\n\nThe `observe` module would observe changes on a state and revert to the\nprevious state if an error occurred, however this had a flaw as the\nrollback would revert the whole state object, causing problems if\nconcurrent changes were performed in parallel branches of the plan. This\nmoves the reversal to the Agent runtime, where the path information can\nbe used to revert, limiting the reverted changes only to the path that\nthe action modifies.\n\nChange-type: patch","shortMessageHtmlLink":"Move state rollback to runtime"}},{"before":"6505a6ac2f8cbb0ee515d0a616adafccce7b30a9","after":"8adfb742eb58a221f04dbdee13dbd576401e7b4a","ref":"refs/heads/v4","pushedAt":"2024-05-26T17:06:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Modify runtime to report changes\n\nThis updates the agent runtime and observer to report on changes\nrather than the full state. The Agent still aggregates changes and\nreports a new state object each time.\n\nChange-type: patch","shortMessageHtmlLink":"Modify runtime to report changes"}},{"before":"1861702dd32fcb801d6abea4a6a2d3ff7422833d","after":"6505a6ac2f8cbb0ee515d0a616adafccce7b30a9","ref":"refs/heads/v4","pushedAt":"2024-05-25T03:20:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Modify runtime to report changes\n\nWIP, this updates the agent runtime and observer to report on changes\nrather than the full state. The Agent still aggregates changes and\nreports a new state object each time.\n\nChange-type: patch","shortMessageHtmlLink":"Modify runtime to report changes"}},{"before":"bae5d33b1bcef5973f74706f20a7575739872dc3","after":"1861702dd32fcb801d6abea4a6a2d3ff7422833d","ref":"refs/heads/v4","pushedAt":"2024-05-24T19:38:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Simplify Sensor interface.\n\nThis updates the sensor interface to no longer require a state reference\nas input, but simply return a subscribable for changes on a specific\npath. This makes the interface simpler and moves the responsibility of\nupdating the state to sensor subscribers.\n\nThis is however a breaking change, even though the contructor interface\ndoes not changes.\n\nChange-type: major","shortMessageHtmlLink":"Simplify Sensor interface."}},{"before":null,"after":"bae5d33b1bcef5973f74706f20a7575739872dc3","ref":"refs/heads/v4","pushedAt":"2024-05-24T17:24:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Simplify Sensor interface.\n\nSensors are simply observables that report changes to a part of the\nglobal state.\n\nChange-type: major","shortMessageHtmlLink":"Simplify Sensor interface."}},{"before":"c073eaae26f8424dc8b6fbb09a19ee8a925de2b6","after":"e00e49e1271a9e8bf1fa5a2077fdc223f1c509e3","ref":"refs/heads/main","pushedAt":"2024-05-10T15:12:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flowzone-app[bot]","name":null,"path":"/apps/flowzone-app","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56742327?s=80&v=4"},"commit":{"message":"v3.5.1","shortMessageHtmlLink":"v3.5.1"}},{"before":"29e6263223b1008d37b0745441184969b425ec19","after":null,"ref":"refs/heads/fix-imports","pushedAt":"2024-05-10T15:11:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"flowzone-app[bot]","name":null,"path":"/apps/flowzone-app","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56742327?s=80&v=4"}},{"before":"427a15894f7a232edb25bf32060156b208fb122b","after":"c073eaae26f8424dc8b6fbb09a19ee8a925de2b6","ref":"refs/heads/main","pushedAt":"2024-05-10T15:11:30.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"flowzone-app[bot]","name":null,"path":"/apps/flowzone-app","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56742327?s=80&v=4"},"commit":{"message":"Merge pull request #69 from balena-io-modules/fix-imports\n\nFix import paths using `lib/*`","shortMessageHtmlLink":"Merge pull request #69 from balena-io-modules/fix-imports"}},{"before":null,"after":"29e6263223b1008d37b0745441184969b425ec19","ref":"refs/heads/fix-imports","pushedAt":"2024-05-10T14:56:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Fix import paths using `lib/*`\n\nThese import paths will not work after building the module.\n\nChange-type: patch","shortMessageHtmlLink":"Fix import paths using lib/*"}},{"before":"db35d6d368ef2da81d12b29ac115fc59169cab4f","after":"427a15894f7a232edb25bf32060156b208fb122b","ref":"refs/heads/main","pushedAt":"2024-05-10T03:19:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flowzone-app[bot]","name":null,"path":"/apps/flowzone-app","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56742327?s=80&v=4"},"commit":{"message":"v3.5.0","shortMessageHtmlLink":"v3.5.0"}},{"before":"db777322f9f75fc0e50e2c1b4439bc1e27973c2b","after":null,"ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-10T03:18:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"flowzone-app[bot]","name":null,"path":"/apps/flowzone-app","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56742327?s=80&v=4"}},{"before":"5e8d54c43285199f82bb4dfd5ecc21cd444636c2","after":"db35d6d368ef2da81d12b29ac115fc59169cab4f","ref":"refs/heads/main","pushedAt":"2024-05-10T03:18:35.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"flowzone-app[bot]","name":null,"path":"/apps/flowzone-app","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56742327?s=80&v=4"},"commit":{"message":"Merge pull request #67 from balena-io-modules/dynamic-sensors\n\nAdd support for dynamically created sensors","shortMessageHtmlLink":"Merge pull request #67 from balena-io-modules/dynamic-sensors"}},{"before":"6c56d563d12cbb3e0eaaf9e495754dc73c124ab6","after":"db777322f9f75fc0e50e2c1b4439bc1e27973c2b","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-10T02:39:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Update sensor subscription at runtime init\n\nWith dynamic sensors, the runtime now only subscribes to sensors whose\nlenses match an existing property in the current state. If a property\ndoes not exist, the sensor is not used.\n\nSimilarly, when the state changes, the runtime now checks for\nsubscriptions that are no longer applicable, or new sensors that\nshould be subscribed to and updates its internal state of subscriptions.\n\nChange-type: minor","shortMessageHtmlLink":"Update sensor subscription at runtime init"}},{"before":"d753cda9ffcdbcd9ed8151ea557be02f0ea990a7","after":"6c56d563d12cbb3e0eaaf9e495754dc73c124ab6","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-10T02:32:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Fix Pointer tests","shortMessageHtmlLink":"Fix Pointer tests"}},{"before":"f0566c73412aec9d14bfb63ac48ac134efe90ade","after":"d753cda9ffcdbcd9ed8151ea557be02f0ea990a7","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-09T23:03:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Update sensor subscription at runtime init\n\nWith dynamic sensors, the runtime now only subscribes to sensors whose\nlenses match an existing property in the current state. If a property\ndoes not exist, the sensor is not used.\n\nSimilarly, when the state changes, the runtime now checks for\nsubscriptions that are no longer applicable, or new sensors that\nshould be subscribed to and updates its internal state of subscriptions.\n\nChange-type: minor","shortMessageHtmlLink":"Update sensor subscription at runtime init"}},{"before":"6bee13b7704a3736774744298b13f53c44901efd","after":"f0566c73412aec9d14bfb63ac48ac134efe90ade","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-09T21:54:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Update sensor subscription at runtime init\n\nWith dynamic sensors, the runtime now only subscribes to sensors whose\nlenses match an existing property in the current state. If a property\ndoes not exist, the sensor is not used.\n\nSimilarly, when the state changes, the runtime now checks for\nsubscriptions that are no longer applicable, or new sensors that\nshould be subscribed to and updates its internal state of subscriptions.\n\nChange-type: minor","shortMessageHtmlLink":"Update sensor subscription at runtime init"}},{"before":"faadcb2eb5b5aa9d52190141a7d9555c98c3d8e5","after":"6bee13b7704a3736774744298b13f53c44901efd","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-08T21:16:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Update sensor subscription at runtime init\n\nWith dynamic sensors, the runtime now only subscribes to sensors whose\nlenses match an existing property in the current state. If a property\ndoes not exist, the sensor is not used.\n\nChange-type: minor","shortMessageHtmlLink":"Update sensor subscription at runtime init"}},{"before":"2e2f8a695b33b1979996e803729959aa9c76312a","after":"faadcb2eb5b5aa9d52190141a7d9555c98c3d8e5","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-06T00:34:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Add lens utilities\n\nThis adds lens utilities to\n\n- Check if the starting part o a lens matches another\n- Get all elements of an object that match a given lens\n\nBoth these utilities will be helpful when creating/destroying dynamic\nsensors\n\nChange-type: minor","shortMessageHtmlLink":"Add lens utilities"}},{"before":"1a4d94e84912aebc55ca30c02ff69ff2c99cd2a9","after":"2e2f8a695b33b1979996e803729959aa9c76312a","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-06T00:26:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Add lens utilities\n\nThis adds lens utilities to\n\n- Check if the starting part o a lens matches another\n- Get all elements of an object that match a given lens\n\nBoth these utilities will be helpful when creating/destroying dynamic\nsensors\n\nChange-type: minor","shortMessageHtmlLink":"Add lens utilities"}},{"before":"c137620a0cc9a300cc7ffd6bb840b70400a1c036","after":"1a4d94e84912aebc55ca30c02ff69ff2c99cd2a9","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-04T22:57:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Add lens utility to find values matching path\n\nChange-type: minor","shortMessageHtmlLink":"Add lens utility to find values matching path"}},{"before":"acbb77f22eb6ef090c1a359d6ab6d8afe57a242d","after":"c137620a0cc9a300cc7ffd6bb840b70400a1c036","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-03T16:31:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Allow using observables for sensors\n\nThis is useful for creating agent sensors on some data coming from a\nstream values\n\nChange-type: minor","shortMessageHtmlLink":"Allow using observables for sensors"}},{"before":"3c505e38f70ddfc349abb6700bd4646b4b93e6f3","after":"acbb77f22eb6ef090c1a359d6ab6d8afe57a242d","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-03T16:29:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Allow using observables for sensors\n\nThis is useful for creating agent sensors on some data coming from a\nstream values\n\nChange-type: minor","shortMessageHtmlLink":"Allow using observables for sensors"}},{"before":"9387bdc7762487d8776b14c6f3e57a6c4d036298","after":"3c505e38f70ddfc349abb6700bd4646b4b93e6f3","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-03T15:54:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Allow using observables for sensors\n\nThis is useful for creating agent sensors on some data coming from a\nstream values\n\nChange-type: minor","shortMessageHtmlLink":"Allow using observables for sensors"}},{"before":"e50a87de7e25234e3a846e70ce7ecffc0336fce3","after":"9387bdc7762487d8776b14c6f3e57a6c4d036298","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-02T19:31:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Allow lens variables for Sensor constructor\n\nThis is a first step in allowing sensors to be created dynamically on\nthe Agent when a new matching property is created/removed. Think of the\ncase where we want a new sensor whenever a new object is created (like a\nprocess) in order to track state changes of that sub-element of the\nglobal state.\n\nChange-type: minor","shortMessageHtmlLink":"Allow lens variables for Sensor constructor"}},{"before":"de4e27c3600a5c7a605d98d73c96643b96e4351b","after":"e50a87de7e25234e3a846e70ce7ecffc0336fce3","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-02T19:28:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Allow lens variables for Sensor constructor\n\nThis is a first step in allowing sensors to be created dynamically on\nthe Agent when a new matching property is created/removed. Think of the\ncase where we want a new sensor whenever a new object is created (like a\nprocess) in order to track state changes of that sub-element of the\nglobal state.\n\nChange-type: minor","shortMessageHtmlLink":"Allow lens variables for Sensor constructor"}},{"before":null,"after":"de4e27c3600a5c7a605d98d73c96643b96e4351b","ref":"refs/heads/dynamic-sensors","pushedAt":"2024-05-02T18:54:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pipex","name":"Felipe Lalanne","path":"/pipex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1822826?s=80&v=4"},"commit":{"message":"Allow lens variables for Sensor constructor\n\nThis is a first step in allowing sensors to be created dynamically on\nthe Agent when a new matching property is created/removed. Think of the\ncase where we want a new sensor whenever a new object is created (like a\nprocess) in order to track state changes of that sub-element of the\nglobal state.\n\nChange-type: patch","shortMessageHtmlLink":"Allow lens variables for Sensor constructor"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVQHZyQA","startCursor":null,"endCursor":null}},"title":"Activity ยท balena-io-modules/mahler"}