fulcro 2024-12-17

Well, I got over-enthusiastic about Fulcro Inspect and have cost myself a few weeks of dev time rewriting a bunch of stuff šŸ˜„ Inspect internals were kind of a mess (largely due to supporting both electron and chrome in the same code base, and how crazy complicated it is to make chrome work)…so, I made a new abstraction called a ā€œdevtool remoteā€ that makes it so I can just install a Fulcro remote and send loads/mutations, and then on the other end supply a pathom async parser to handle them. Building that abstraction took me way longer than I thought it would (like weeks of my spare time), but I’ve got it working for electron and chrome now, so it is possible to build Fulcro apps that act as Chrome or Electron apps whose ā€œnetworkingā€ is bi-directional. I’ve called that fulcro-devtool-remote, since that’s it’s main purpose: Building dev tools USING Fulcro that expect to talk to some target across a websocket or chrome extension to web page. The target can be anything (even a Clojure app), and the target need not be Fulcro (the abstraction is a ā€œconnectionā€ that has a transmit for sending, and is given a pathom async parser for receiving). The ā€œnetworkā€ protocol is EQL. After doing that, I spent the last week rewriting Inspect to use the new abstraction, and simplified the internals of that quite a bit. In the process I fixed all of the known bugs (there were a few that had creeped in as part of optimizations). I’m going to try to make the upgrade path as clean as possible, and it won’t break Fulcro; however, since I have to release a new Chrome extension to the web store as part of this manifest v3 mess, Chrome Fulcro Inspect will end up requiring the latest release of Fulcro (when I get around to releasing all of this mess). The older versions of the electron app, of course, will continue to work with older versions of Fulcro, in case you cannot upgrade immediately for some reason. Your other option will be to download the older v2 manifest chrome extension zip file, and install that in the developer mode of <chrome://extensions> until such time that chrome stops allowing v2. After I get all of THAT done, then I hope to continue on the development of the statecharts integration add-ons, which is what I’m actually excited about: Stuff that will make it super nice to compose Fulcro apps with statecharts instead of dynamic routers, along with visualizations of statecharts in Inspect.

šŸŽ‰ 15