If last week had a coherent theme, it was history: tweaks to the undo history as well as your own command history. Both of these will eventually persist from session to session, but for now they're still ephemeral.

I'm particularly excited by the undo history work because I'm looking forward to implementing a what happened last Tuesday command that can give you a recap of all changes (adding things to the journal, advancing time, moving from one place to another) that happened in a given time frame.

I also refactored out the in-memory cache, which makes the site very slightly slower but will make an eventual cloud sync feature more reliable. And I wrote a blog post about my first year of self-employment. I'll be keeping this page focused on project matters, so if you're interested in what I'm up to and why, my blog is a good place to look.

Changelog updates last week

  • Enhancement: You can now navigate backwards and forwards through your command history with the up and down arrow keys while the autocomplete popup is closed. The history doesn't (yet!) persist between sessions.

  • Enhancement: Just for good measure, added a wee favicon to the site.

  • Enhancement: All place types now include an emoji icon in summary view, such as in the journal listing.

  • Enhancement: Refactored out the local cache. In practice, the only effect this should have right now is that if you have multiple tabs/windows open at once, the journal should remain in sync between all of them.

  • Enhancement: Changes to the time are now properly integrated into the undo history and available at all times.

This week

Much as I'd like to dive straight into the overarching history work, I'm starting to feel the time crunch of my December holiday. I don't expect to be able to deliver cloud sync before then, so I'm focusing on import/export as a way of keeping your data safe.

I had been reluctant to build this feature before now because the data representation has still been somewhat fluid. I still can't guarantee that there will be no further changes (in fact I can guarantee that there will be), but things have solidified somewhat and it's time to introduce some data portability/ownership. I will be documenting the JSON schema once it firms up, but I encourage you to hold off on writing integrations that use the import/export features for the time being. For one thing, there's a lot coming to that format in the future, and for another, I intend to build a webhook API that may suit cloud-based workflows better once cloud sync is done. (Cloud sync and webhooks will be premium features for Buy Me a Coffee supporters.)

If I do finish this work in record time, I plan to jump into work on the hierarchical journal (The Boiler Room is in Passage) as well as party location tracking (go to The Boiler Room). One day there will be a nested listing of places in your journal, but I think that will have to wait until there are more ways to access listings. I don't have a clear picture of how it'll all break down, but there will be commands like characters in Passage and all half-elves.