<commit_before>! Up Next

 - [X] When I pull a document from the repo, also store its hash
 - [ ] When I save a document, change the hash
 - [ ] When a document doesn't have a hash, show the new commit widget
 - [ ] Commit when I click commit

! Later

 - Hot test running
 - Hot reload of css
 - Hot reload of UI
 - Hot reload of client libs
 - Change propagation framework
 - Load deps from db after restart
 - Actually make the narratives read well (nested comments? copy/paste?)
 - Find dependencies of dependencies
 - Multi-user
 - Running narratives in a secure jail
 - Basic quota system
 - Push to Heroku

 One interesting next step would be to try to split out a minimal core that could be distributed as a really simple server.js + package.json + Procfile that could go to github and get all the narratives it needs. Then that can go into a traditional git repo that we largely don't touch and then we work on everything else.<commit_msg>First commit from the browser<commit_after>! Up Next

 - [X] When I pull a document from the repo, also store its hash
 - [X] When I save a document, change the hash
 - [X] When a document doesn't have a hash, show the new commit widget
 - [X] Commit when I click commit

! Later

 - Hot test running
 - Hot reload of css
 - Hot reload of UI
 - Hot reload of client libs
 - Change propagation framework
 - Load deps from db after restart
 - Actually make the narratives read well (nested comments? copy/paste?)
 - Find dependencies of dependencies
 - Multi-user
 - Running narratives in a secure jail
 - Basic quota system
 - Push to Heroku

 One interesting next step would be to try to split out a minimal core that could be distributed as a really simple server.js + package.json + Procfile that could go to github and get all the narratives it needs. Then that can go into a traditional git repo that we largely don't touch and then we work on everything else.
{'fraction_non_alphanumeric': 0.04811715481171548, 'fraction_numerical': 0.0, 'mean_word_length': 3.367579908675799, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5468928', 'n_tokens_mistral': 495, 'n_tokens_neox': 460, 'n_words': 308}