{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":253607844,"defaultBranch":"main","name":"food-diary","ownerLogin":"pkirilin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-04-06T20:26:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/42248355?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719051871.0","currentOid":""},"activityList":{"items":[{"before":"1e473f3a0fb1dd7927a3f52e78257747b3582db6","after":"bc465f84f895a86ceeb8f677514ce33a63f14a35","ref":"refs/heads/add-note-by-photo-error-handling","pushedAt":"2024-06-22T20:47:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Handle OpenAI errors as ProblemDetails","shortMessageHtmlLink":"Handle OpenAI errors as ProblemDetails"}},{"before":null,"after":"1e473f3a0fb1dd7927a3f52e78257747b3582db6","ref":"refs/heads/add-note-by-photo-error-handling","pushedAt":"2024-06-22T10:24:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Merge branch 'main' of https://github.com/pkirilin/food-diary into add-note-by-photo-error-handling","shortMessageHtmlLink":"Merge branch 'main' of https://github.com/pkirilin/food-diary into ad…"}},{"before":"cb649ddac459d6df983ba4b9418bc90e6e937cd0","after":null,"ref":"refs/heads/fix-editing-product-from-photo","pushedAt":"2024-06-17T19:33:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"}},{"before":"4bbae5dba43764d6338aa6390ae33791810c2bd7","after":"ffc137444767e6e5ebca98fdb5026092c3863e39","ref":"refs/heads/main","pushedAt":"2024-06-17T19:33:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fix editing product from photo (#109)\n\n* Added editing product after note recognized by photo\r\n\r\n* Fill product form values after note recognized\r\n\r\n* Fixed double toggle dialog bug","shortMessageHtmlLink":"Fix editing product from photo (#109)"}},{"before":"3d4a36652b5b36cc60c4c0c7356cafb65581c057","after":"cb649ddac459d6df983ba4b9418bc90e6e937cd0","ref":"refs/heads/fix-editing-product-from-photo","pushedAt":"2024-06-16T19:16:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fixed double toggle dialog bug","shortMessageHtmlLink":"Fixed double toggle dialog bug"}},{"before":null,"after":"3d4a36652b5b36cc60c4c0c7356cafb65581c057","ref":"refs/heads/fix-editing-product-from-photo","pushedAt":"2024-06-16T14:20:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fill product form values after note recognized","shortMessageHtmlLink":"Fill product form values after note recognized"}},{"before":"6b4e06704325e758739a2141665d72070ec8ec84","after":null,"ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T20:23:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"}},{"before":"a242afa22fbce2cf20f240a8cec7125e2b13fd34","after":"4bbae5dba43764d6338aa6390ae33791810c2bd7","ref":"refs/heads/main","pushedAt":"2024-06-12T20:23:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Add root docker compose (#108)\n\n* Added base docker-compose file with envs\r\n\r\n* Added quick start with docker-compose to README\r\n\r\n* Show docker-compose version\r\n\r\n* Use latest docker-compose version\r\n\r\n* Fixed docker setup step error\r\n\r\n* Use compose action\r\n\r\n* Trying to fix 'depends-on' error in GHA","shortMessageHtmlLink":"Add root docker compose (#108)"}},{"before":"39fe217bbb6639db9647a24a528c916d606b4599","after":"6b4e06704325e758739a2141665d72070ec8ec84","ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T19:25:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Trying to fix 'depends-on' error in GHA","shortMessageHtmlLink":"Trying to fix 'depends-on' error in GHA"}},{"before":"fb7dc26c8106d5438cdb5a685529d25d0305b56d","after":"39fe217bbb6639db9647a24a528c916d606b4599","ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T19:13:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Use compose action","shortMessageHtmlLink":"Use compose action"}},{"before":"cbe8bdbc80f465338a0cad8e00dae5b3e30ba017","after":"fb7dc26c8106d5438cdb5a685529d25d0305b56d","ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T18:53:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fixed docker setup step error","shortMessageHtmlLink":"Fixed docker setup step error"}},{"before":"b9bfeace6ca7dd8ee241e4f6ef8925c253e409fe","after":"cbe8bdbc80f465338a0cad8e00dae5b3e30ba017","ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T18:28:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Use latest docker-compose version","shortMessageHtmlLink":"Use latest docker-compose version"}},{"before":"1e356594fa77b383909a0ed2841178f706f25843","after":"b9bfeace6ca7dd8ee241e4f6ef8925c253e409fe","ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T18:18:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Show docker-compose version","shortMessageHtmlLink":"Show docker-compose version"}},{"before":null,"after":"1e356594fa77b383909a0ed2841178f706f25843","ref":"refs/heads/add-root-docker-compose","pushedAt":"2024-06-12T17:58:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Merge branch 'main' of https://github.com/pkirilin/food-diary into simplify-local-start","shortMessageHtmlLink":"Merge branch 'main' of https://github.com/pkirilin/food-diary into si…"}},{"before":"e5db22f9e1d062f4290f13118a3e7c1a4ce5da58","after":"a242afa22fbce2cf20f240a8cec7125e2b13fd34","ref":"refs/heads/main","pushedAt":"2024-06-12T16:30:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Move revision-secrets values to repository variables (#107)\n\n* Fixed deploy actions\r\n\r\n* Trying to remove recently added OpenAI secrets\r\n\r\n* Revert \"Trying to remove recently added OpenAI secrets\"\r\n\r\nThis reverts commit 17b33aec0cfe2dcc53a9b311aa69229fe9e5caa4.\r\n\r\n* Revert \"Fixed deploy actions\"\r\n\r\nThis reverts commit 6e8c6f1bf68953ab83a173ed1ef1b7c21ea72073.\r\n\r\n* Moved revision-secrets values to repository variables","shortMessageHtmlLink":"Move revision-secrets values to repository variables (#107)"}},{"before":"9301945769b45d9771346b9a8da0fac2042031ae","after":null,"ref":"refs/heads/fix-deploy-action","pushedAt":"2024-06-12T16:30:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"}},{"before":"c75dcceea3be8555d0edece6098a594b19375bdd","after":"9301945769b45d9771346b9a8da0fac2042031ae","ref":"refs/heads/fix-deploy-action","pushedAt":"2024-06-12T16:00:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Moved revision-secrets values to repository variables","shortMessageHtmlLink":"Moved revision-secrets values to repository variables"}},{"before":"17b33aec0cfe2dcc53a9b311aa69229fe9e5caa4","after":"c75dcceea3be8555d0edece6098a594b19375bdd","ref":"refs/heads/fix-deploy-action","pushedAt":"2024-06-11T20:35:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Revert \"Trying to remove recently added OpenAI secrets\"\n\nThis reverts commit 17b33aec0cfe2dcc53a9b311aa69229fe9e5caa4.","shortMessageHtmlLink":"Revert \"Trying to remove recently added OpenAI secrets\""}},{"before":"6e8c6f1bf68953ab83a173ed1ef1b7c21ea72073","after":"17b33aec0cfe2dcc53a9b311aa69229fe9e5caa4","ref":"refs/heads/fix-deploy-action","pushedAt":"2024-06-11T19:19:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Trying to remove recently added OpenAI secrets","shortMessageHtmlLink":"Trying to remove recently added OpenAI secrets"}},{"before":null,"after":"6e8c6f1bf68953ab83a173ed1ef1b7c21ea72073","ref":"refs/heads/fix-deploy-action","pushedAt":"2024-06-11T18:50:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fixed deploy actions","shortMessageHtmlLink":"Fixed deploy actions"}},{"before":"63659664e1427c37342c1fe6dd98a37d5b1cf847","after":null,"ref":"refs/heads/add-client-side-image-compression","pushedAt":"2024-06-11T18:04:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"}},{"before":"c615709f4426627d8a46c58e2d33be6fb7d5a370","after":"e5db22f9e1d062f4290f13118a3e7c1a4ce5da58","ref":"refs/heads/main","pushedAt":"2024-06-11T18:04:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fix image compression issues (#106)\n\n* Implemented image compression on client\r\n\r\n* Send resized file to the API\r\n\r\n* Added OpenAI secrets\r\n\r\n* Added image optimizer\r\n\r\n* Hide 'Add' button when recognize note failed\r\n\r\n* Fixed reading image from wrong stream","shortMessageHtmlLink":"Fix image compression issues (#106)"}},{"before":"2eae6c92c7dbbd2202da7f6c8b515357446f5e1b","after":"63659664e1427c37342c1fe6dd98a37d5b1cf847","ref":"refs/heads/add-client-side-image-compression","pushedAt":"2024-06-11T16:23:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Fixed reading image from wrong stream","shortMessageHtmlLink":"Fixed reading image from wrong stream"}},{"before":"3951b5151df8397d39d23e44079d7d5d15d4b86a","after":"2eae6c92c7dbbd2202da7f6c8b515357446f5e1b","ref":"refs/heads/add-client-side-image-compression","pushedAt":"2024-06-11T16:07:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Added image optimizer","shortMessageHtmlLink":"Added image optimizer"}},{"before":"01ea03560bc6d09f80f1f277388711c82debfb62","after":"3951b5151df8397d39d23e44079d7d5d15d4b86a","ref":"refs/heads/add-client-side-image-compression","pushedAt":"2024-06-11T07:06:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Added OpenAI secrets","shortMessageHtmlLink":"Added OpenAI secrets"}},{"before":"cb8a797222e62f146c21b80700d5782b331ca5bc","after":"01ea03560bc6d09f80f1f277388711c82debfb62","ref":"refs/heads/add-client-side-image-compression","pushedAt":"2024-06-10T21:30:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Send resized file to the API","shortMessageHtmlLink":"Send resized file to the API"}},{"before":null,"after":"cb8a797222e62f146c21b80700d5782b331ca5bc","ref":"refs/heads/add-client-side-image-compression","pushedAt":"2024-06-09T21:26:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Implemented image compression on client","shortMessageHtmlLink":"Implemented image compression on client"}},{"before":"123cb85862b2885266c92b40161456674828a189","after":null,"ref":"refs/heads/add-note-by-photo","pushedAt":"2024-06-09T13:56:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"}},{"before":"e750e44db1c2ed04ea880cf7da9352e79012d4a4","after":"c615709f4426627d8a46c58e2d33be6fb7d5a370","ref":"refs/heads/main","pushedAt":"2024-06-09T13:56:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Add note by photo (#105)\n\n* Init AddNoteAsPhoto button\r\n\r\n* Fixed ButtonGroup fullWidth breaking styles in dialog buttons\r\n\r\n* Fixed product input margin\r\n\r\n* Upload files in a page action via form\r\n\r\n* Redirect to add note by photo page after photo uploaded\r\n\r\n* Use array of photos in loader/action contracts\r\n\r\n* Updated browserslist\r\n\r\n* Upload files and get urls from API\r\n\r\n* Renamed route\r\n\r\n* Added subheader for new/note/by-photo page\r\n\r\n* Added ImageList with NoteInputForm UI\r\n\r\n* Recognize note from photo and auto fill form\r\n\r\n* Removed product autoFocus\r\n\r\n* Take first existing category for recognized note\r\n\r\n* Submit note by photo form\r\n\r\n* Add note inside action\r\n\r\n* Fixed redirect error after creating note\r\n\r\n* Fixed empty displayOrder\r\n\r\n* Turn add note by photo route into nested modal route\r\n\r\n* Added loading animations\r\n\r\n* Restrict file input to choose only jpg/png\r\n\r\n* Refactored AddNoteByPhoto loader\r\n\r\n* Removed extra auth check from nested route\r\n\r\n* Reduced the number of query params in new route\r\n\r\n* Fixed loading animation bugs\r\n\r\n* Fixed unnecessary api calls for nextDisplayOrder\r\n\r\n* Fixed recognize note contracts\r\n\r\n* Fixed errors in tests\r\n\r\n* Removed upload files API step, reverted previous changes\r\n\r\n* Init RecognizeNote API endpoint\r\n\r\n* Parse base64 string from uploaded photos\r\n\r\n* Init RecognizeNoteByPhotoRequestHandler code with OpenAI chat completions request\r\n\r\n* Support both string and object for MessageContent\r\n\r\n* Parse notes from OpenAI model response\r\n\r\n* Return recognized notes as output json object\r\n\r\n* Fixed MessageContent serialization\r\n\r\n* Fixed BaseAddress issue\r\n\r\n* Fixed ImageUrl contracts\r\n\r\n* Implemented image compression and resizing\r\n\r\n* Fixed exception handling\r\n\r\n* Added prompt\r\n\r\n* Convert all input images to jpeg\r\n\r\n* Fixed uploaded photo size, added file name\r\n\r\n* Fixed bug when same file is not selected more than once\r\n\r\n* Added retry recognize note button\r\n\r\n* Use official OpenAI SDK\r\n\r\n* Moved image resize code to handler\r\n\r\n* Make ChatCompletionOptions static\r\n\r\n* Added error handling for empty image and image without food cases\r\n\r\n* Moved OpenAI configuration to Integrations section\r\n\r\n* Added OpenAI ApiKey to README\r\n\r\n* Removed unused code","shortMessageHtmlLink":"Add note by photo (#105)"}},{"before":"d32b3894cfe0abcb1fca055fe177ac3633b05ffd","after":"123cb85862b2885266c92b40161456674828a189","ref":"refs/heads/add-note-by-photo","pushedAt":"2024-06-08T21:06:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pkirilin","name":"Pavel Kirilin","path":"/pkirilin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42248355?s=80&v=4"},"commit":{"message":"Removed unused code","shortMessageHtmlLink":"Removed unused code"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbHO1rQA","startCursor":null,"endCursor":null}},"title":"Activity · pkirilin/food-diary"}