{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":656398395,"defaultBranch":"main","name":"pangram-tester","ownerLogin":"1j01","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-06-20T21:56:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3630663?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1687470776.0","currentOid":""},"activityList":{"items":[{"before":"00f3972158beb0d9447d992ece70660b2bc76b63","after":"5eb83637a3482d583d1ebc1452d59664070b85f7","ref":"refs/heads/main","pushedAt":"2023-06-23T20:52:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Update readme","shortMessageHtmlLink":"Update readme"}},{"before":"092202cc86cf70b5e7f9d20c3e5ebe64ee2aed88","after":"00f3972158beb0d9447d992ece70660b2bc76b63","ref":"refs/heads/main","pushedAt":"2023-06-23T08:00:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Warn if sentence contains alphabetic characters outside the alphabet","shortMessageHtmlLink":"Warn if sentence contains alphabetic characters outside the alphabet"}},{"before":"0105de5b2749c89da087da29d85430530c9cf745","after":"092202cc86cf70b5e7f9d20c3e5ebe64ee2aed88","ref":"refs/heads/main","pushedAt":"2023-06-23T07:48:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Avoid event listener attributes","shortMessageHtmlLink":"Avoid event listener attributes"}},{"before":"fbf886ebe288bf25eef8a9e7e518097edf2c54ea","after":"0105de5b2749c89da087da29d85430530c9cf745","ref":"refs/heads/main","pushedAt":"2023-06-23T07:46:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Add reset button to alphabet input; analyze on page load (in case tab is reopened)","shortMessageHtmlLink":"Add reset button to alphabet input; analyze on page load (in case tab…"}},{"before":"2258d9d2b9b8479f9d27b351a60fed0871ea76f0","after":"fbf886ebe288bf25eef8a9e7e518097edf2c54ea","ref":"refs/heads/main","pushedAt":"2023-06-23T06:46:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Gripe more","shortMessageHtmlLink":"Gripe more"}},{"before":"79622e0b2ffe02196d4969188411fdbde03657b2","after":"2258d9d2b9b8479f9d27b351a60fed0871ea76f0","ref":"refs/heads/main","pushedAt":"2023-06-23T06:31:33.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Dim, rather than hiding, suggestions\n\nReduce visual disturbance/distraction while typing.","shortMessageHtmlLink":"Dim, rather than hiding, suggestions"}},{"before":"f94c57906f517f236a59dd038fb7fa92af0f9970","after":"79622e0b2ffe02196d4969188411fdbde03657b2","ref":"refs/heads/main","pushedAt":"2023-06-23T05:16:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Note possibility of MessageChannel for faster loop","shortMessageHtmlLink":"Note possibility of MessageChannel for faster loop"}},{"before":"a85431532ce25eb947ce59a70c2a2b6974a14b03","after":"f94c57906f517f236a59dd038fb7fa92af0f9970","ref":"refs/heads/main","pushedAt":"2023-06-23T04:59:29.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Fix search queue buildup when typing\n\nYield to event loop and cancel dictionary searches if a new request comes in.","shortMessageHtmlLink":"Fix search queue buildup when typing"}},{"before":"8470d80f1cf582833cfcc74b4f57029531b058c9","after":"ae579052c99449de0b37a2d3be18c981034849bf","ref":"refs/heads/word-suggestions/next-try","pushedAt":"2023-06-23T01:36:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[gpt] Tweak scoring and space-adding logic\n\nFrom ChatGPT prompt:\n\n> - Make sure to ignore the result from the worker if the sentence changed to be empty.\n> - The plus button should add a space as separator as long as the sentence input doesn't end with whitespace.\n> - When scoring, every letter in the word should count. It should be positive if and only if the letter is the first occurrence of a letter within the word and the letter is not present in the sentence. Otherwise it should be penalized for redundancy.\n\nIt ignored the first instruction.","shortMessageHtmlLink":"[gpt] Tweak scoring and space-adding logic"}},{"before":"8470d80f1cf582833cfcc74b4f57029531b058c9","after":"a85431532ce25eb947ce59a70c2a2b6974a14b03","ref":"refs/heads/main","pushedAt":"2023-06-23T01:36:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Preserve native undo history when inserting a word","shortMessageHtmlLink":"Preserve native undo history when inserting a word"}},{"before":"510e9c43f8cf246f71942668940bef305236ca63","after":"8470d80f1cf582833cfcc74b4f57029531b058c9","ref":"refs/heads/main","pushedAt":"2023-06-23T01:29:32.000Z","pushType":"push","commitsCount":24,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Update readme","shortMessageHtmlLink":"Update readme"}},{"before":"5b1bfb055c311d511bfe22e879eb05e9a1246e05","after":"8470d80f1cf582833cfcc74b4f57029531b058c9","ref":"refs/heads/word-suggestions/next-try","pushedAt":"2023-06-23T01:28:51.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Update readme","shortMessageHtmlLink":"Update readme"}},{"before":"b7193cec9dd87a600565227b7cc4a1e8e6ec7029","after":"5b1bfb055c311d511bfe22e879eb05e9a1246e05","ref":"refs/heads/word-suggestions/next-try","pushedAt":"2023-06-23T00:29:25.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Fix ignoring of outdated searches and simplify\n\n- `searchId !== currentSearchId` never occurred, in this setup.\n- An id number is technically more efficient, but the sentence string is likely short.","shortMessageHtmlLink":"Fix ignoring of outdated searches and simplify"}},{"before":null,"after":"b7193cec9dd87a600565227b7cc4a1e8e6ec7029","ref":"refs/heads/word-suggestions/next-try","pushedAt":"2023-06-22T21:52:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Fix race condition when input becomes empty while searching for suggestions\n\nChatGPT was ignoring or overcomplicating this.","shortMessageHtmlLink":"Fix race condition when input becomes empty while searching for sugge…"}},{"before":"2abf8f24c25f4af794261159381d1db748cd83e2","after":"510e9c43f8cf246f71942668940bef305236ca63","ref":"refs/heads/main","pushedAt":"2023-06-22T20:29:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[gpt] Add mobile viewport and charset\n\nPrompt: Add mobile viewport and charset\n\nResponse (reasonably) omitted much of the code, so I had to copy/paste.","shortMessageHtmlLink":"[gpt] Add mobile viewport and charset"}},{"before":"4963f19c7d7f4b909ee20f187d0895554f8087df","after":"2abf8f24c25f4af794261159381d1db748cd83e2","ref":"refs/heads/main","pushedAt":"2023-06-22T20:28:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] Add mobile viewport and charset\n\nPrompt: Add mobile viewport and charset\n\nResponse (reasonably) omitted much of the code, so I had to copy/paste.","shortMessageHtmlLink":"[GPT] Add mobile viewport and charset"}},{"before":"66ff7e4395ce42d100b6604a5cfaa8b48b4d7cc2","after":"4963f19c7d7f4b909ee20f187d0895554f8087df","ref":"refs/heads/main","pushedAt":"2023-06-22T20:16:25.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] Add alphabet input, defaulting to English\n\nChatGPT prompt:\n> Add an alphabet input, defaulting to the English alphabet. Update the results also when this changes.\n\nChatGPT response:\n> To add an alphabet input and update the results when it changes, you can modify the existing code as follows:\n>\n> \n>\n> In this updated version, an additional input element with the id \"alphabetInput\" is added to the HTML. The analyzeSentence() function is modified to retrieve the value of this input element and use it as the alphabet for analysis. The function is also called whenever the alphabet input changes to update the results accordingly.","shortMessageHtmlLink":"[GPT] Add alphabet input, defaulting to English"}},{"before":null,"after":"f9558bf8e068d65f4bd2c21f648c8fc3e1aea36e","ref":"refs/heads/word-suggestions/crap","pushedAt":"2023-06-22T19:44:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] It's not highlighting any letters in the suggestio...\n\nChatGPT prompt:\n> It's not highlighting any letters in the suggestions list.\n\nChatGPT response:\n> Apologies for the oversight. Here's the updated code with corrected highlighting in the suggestions list:\n>\n> \n>\n> With these updates, the highlighting of the missing letters in the suggestions list should now be working correctly, without any HTML syntax showing on the page.","shortMessageHtmlLink":"[GPT] It's not highlighting any letters in the suggestio..."}},{"before":null,"after":"4fae9f3d434be237b4b2f04b72e1983e32d7df50","ref":"refs/heads/word-suggestions/after-this-it-really-goes-to-crap","pushedAt":"2023-06-22T19:44:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] Don't use any HTML concatenation\n\nChatGPT prompt:\n> Why am I still seeing stuff like this?\n>\n> Word Suggestions:\n>\n> ghlight\">n class=\"ighlight\">highlight\">an class=\"highlight\">parathyroidectomizing\n>\n>\n> There should be no HTML concatenation...\n\nChatGPT response:\n> Apologies for the oversight. Here's an updated version that avoids HTML concatenation by creating and appending elements:\n>\n> \n>\n> This version uses element creation and appending for the entire functionality, including word suggestions. It avoids HTML concatenation and ensures that the HTML tags are rendered correctly.","shortMessageHtmlLink":"[GPT] Don't use any HTML concatenation"}},{"before":null,"after":"26f918441bdb2cef9feb3a3140734b2263e6a771","ref":"refs/heads/word-suggestions/second-attempt-at-suggest-feature-or-whatever","pushedAt":"2023-06-22T19:43:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] Don't use HTML concatenation for new code. Also, o...\n\nChatGPT prompt:\n> Don't use HTML concatenation for new code. Also, only show the top 30 words.\n\nChatGPT response:\n> Apologies for the oversight. Here's an updated version of the code that avoids HTML concatenation and limits the display to the top 30 word suggestions:\n>\n> \n>\n> This updated version addresses your requirements, including avoiding HTML concatenation, limiting the display to the top 30 word suggestions, and separating the HTML and JavaScript code.","shortMessageHtmlLink":"[GPT] Don't use HTML concatenation for new code. Also, o..."}},{"before":null,"after":"7b4b2ab365a8c203ad8abbc4386cd0c17016e82c","ref":"refs/heads/word-suggestions/first-attempt-freezes-up","pushedAt":"2023-06-22T19:43:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] WIP: address freezing\n\nChatGPT prompt:\n> This freezes up when I start to type. It might be better to do a first pass using a regexp, dynamically created to search for words containing at least some of the missing letters, and maybe when there are more than 10 missing letters, make the regexp require at least 3 missing letters. It also could benefit from running in a Worker.\n\nChatGPT response:\n> You're right, using regular expressions and offloading the computation to a Web Worker can improve performance and responsiveness. Here's an updated version of the code that incorporates these improvements:\n>\n> \n>\n> In addition to the previous improvements, the following changes have been made:A separate JavaScript file named \"worker.js\" is used to run the dictionary processing in a Web Worker. Create a new file named \"worker.js\" in the same directory as the HTML file with the following contents:javascriptCopy codeself.onmessage = function (e) {\n> var dictionary = e.data.dictionary;\n> var regex = e.data.regex;\n>\n> var suggestions = [];\n>\n> for (var i = 0; i < dictionary.length; i++) {\n> var word = dictionary[i];\n> if (regex.test(word)) {\n> var matchedLetters = getMatchedLetters(word);\n> suggestions.push({\n> word: word,\n> highlightedLetters: matchedLetters\n> });\n> }\n> }\n>\n> self.postMessage(suggestions);\n> };\n>\n> function getMatchedLetters(word) {\n> var matchedLetters = [];\n> var lettersMissing = [];\n>\n> for (var i = 0; i < word.length; i++) {\n> var letter = word.charAt(i);\n> if (lettersMissing.includes(letter)) {\n> matchedLetters.push(letter);\n> var index = lettersMissing.indexOf(letter);\n> lettersMissing.splice(index, 1);\n> }\n> }\n>\n> return matchedLetters;\n> }\n> The generateSuggestions function now creates a regular expression using the buildRegex function to match words containing at least some of the missing letters. The regular expression is passed along with the dictionary to the Web Worker for processing.The Web Worker receives the dictionary and regular expression, filters the dictionary words based on the regular expression, and sends back the suggestions to the main thread.The suggestions received from the Web Worker are then displayed in the suggestion list.With these updates, the pangram tester should perform better, and the suggestions should be generated asynchronously in the background using a Web Worker, improving the overall responsiveness of the application.","shortMessageHtmlLink":"[GPT] WIP: address freezing"}},{"before":"9ad1758daf2ab6cd38a3994b5a2dec771881452a","after":"66ff7e4395ce42d100b6604a5cfaa8b48b4d7cc2","ref":"refs/heads/main","pushedAt":"2023-06-22T19:40:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Add link to app on readme","shortMessageHtmlLink":"Add link to app on readme"}},{"before":"0f17d45dda7a82c9090c506212d72c7908d47305","after":null,"ref":"refs/heads/chatgpt-automation","pushedAt":"2023-06-21T05:47:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"}},{"before":"d969f1a12b060451dd88015536d07ad65d12f6f6","after":"9ad1758daf2ab6cd38a3994b5a2dec771881452a","ref":"refs/heads/main","pushedAt":"2023-06-21T05:24:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Update readme","shortMessageHtmlLink":"Update readme"}},{"before":"2ba08f46e8deda6c5411500a18d67418110f538d","after":"d969f1a12b060451dd88015536d07ad65d12f6f6","ref":"refs/heads/main","pushedAt":"2023-06-21T05:23:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Update readme","shortMessageHtmlLink":"Update readme"}},{"before":"0dd316610127a0a61ecd715325c69d0d3e806c31","after":"2ba08f46e8deda6c5411500a18d67418110f538d","ref":"refs/heads/main","pushedAt":"2023-06-21T04:17:08.000Z","pushType":"push","commitsCount":17,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"[GPT] Fix letter count\n\nChatGPT prompt:\n> sentenceLettersCount should include letters already found.\n\nChatGPT response:\n> Apologies for the confusion. Here's the corrected code that includes letters already found in sentenceLettersCount:\n>\n> \n>\n> Now the sentenceLettersCount variable includes all the letters from the alphabet variable found in the sentence, including those already highlighted.","shortMessageHtmlLink":"[GPT] Fix letter count"}},{"before":"25f397c2432f01686a45dbab28480cd76a3e5431","after":"0f17d45dda7a82c9090c506212d72c7908d47305","ref":"refs/heads/chatgpt-automation","pushedAt":"2023-06-21T03:55:56.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Fix overconfident success message\n\n- It may not have done anything if there are no new commits to make\n- If --dry-run is passed, it shouldn't do anything, and this could even be scary","shortMessageHtmlLink":"Fix overconfident success message"}},{"before":"907d38b79a6b71f6a178ef02cc2336d6c062137f","after":"25f397c2432f01686a45dbab28480cd76a3e5431","ref":"refs/heads/chatgpt-automation","pushedAt":"2023-06-21T03:02:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Fix finding prompt message text","shortMessageHtmlLink":"Fix finding prompt message text"}},{"before":"269c73dce5869ebe7e44936a1e71931c7a58d356","after":"907d38b79a6b71f6a178ef02cc2336d6c062137f","ref":"refs/heads/chatgpt-automation","pushedAt":"2023-06-21T02:58:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Fix finding prompt message text","shortMessageHtmlLink":"Fix finding prompt message text"}},{"before":"3b11a6d5ef99bc778a47d7facc1c1fb21752b868","after":"269c73dce5869ebe7e44936a1e71931c7a58d356","ref":"refs/heads/chatgpt-automation","pushedAt":"2023-06-21T02:41:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"1j01","name":"Isaiah Odhner","path":"/1j01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3630663?s=80&v=4"},"commit":{"message":"Add --dry-run and --from-cache options","shortMessageHtmlLink":"Add --dry-run and --from-cache options"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADR_UmYwA","startCursor":null,"endCursor":null}},"title":"Activity · 1j01/pangram-tester"}