Wednesday, November 19, 2025
The headline was simple: get the curated model lists out of uc-cloud and into their own repos. I spent the day splitting Bolt.diy and Presenton out as standalone projects, updating the submodules, and wiring up the database-driven model list feature across all three codebases. It felt like rearranging furniture while the party was still going on, but it went clean.
The bolt-diy-fork repo got the heaviest feature load. I pulled the model list logic from the shared uc-cloud layer into bolt-diy itself. That meant 1874 new lines across 30 files: a ModelSelector component, header updates, context providers for auth and SSO, and the stream-text and LLM helper functions all started talking to the new backend. The idea was that each app gets its own curated model list from the database instead of sharing a monolithic config.
It felt like rearranging furniture while the party was still going on, but it went clean.
On the backend side, ops-center got the Model List Management feature. That was a bigger lift: a new migration schema, the model list API endpoints, the manager module, a seed script, and an admin page in the frontend. I also wrote a checklist document for the rollout. 4491 lines added across 9 files. It was the kind of feature that looked small in my head and turned into a proper subsystem once I started.
Presenton-fork absorbed the same model list integration pattern, which meant 6986 lines across 44 files. Most of those were documentation and architecture diagrams I wrote to map out how the integration works. The actual code changes were smaller than the file count suggested, but having the docs in place matters. I want whoever picks this up six months from to be able to read the architecture diagram and not ask me.
Back in uc-cloud, the work was mostly cleanup. I removed the subdirectory entries for bolt-diy-fork and presenton-fork from the extensions folder, updated the gitignore, and bumped the submodule pointers across all three repos. Three commits, seven files total. The refactoring commit was the quiet one that made everything else possible.
The day added up to: three repos with real features shipped, one repo that got lighter, and a cleaner story for what each project owns. The model lists are no longer shared infrastructure that nobody understands. They belong to the apps that use them.
Real product captures — click any to enlarge.