A theme that cannot take the site down
T-Builder 0.9.33 activates a built theme under a guard, rolls a broken one back at once, and names its PHP correctly when the template's name starts with a digit.
A template was converted and packaged as a theme, the theme was activated, and the site showed "There has been a critical error on this website". Every request, the admin and the REST API included, so the agent had no way back in and the developer had to delete the theme folder by hand. It happened three times in one afternoon. 0.9.33 closes both doors it came through.
A name that starts with a digit
The template was called 7mada. T-Builder names the theme after the template, and until now it also named the theme's PHP after it: constants like 7MADA_DIR, a function 7mada_part, a namespace 7mada. PHP identifiers cannot start with a digit, so functions.php failed to parse the moment the theme was active.
The theme keeps its name and its folder. Its code now gets a letter in front when the name needs one: TB_7MADA_DIR, tb_7mada_part, the namespace Tb7mada. Section widget classes already had this rule; the theme itself now follows it too.
Activation under a guard
Writing a plugin with the agent has been guarded for a while: the plugin is activated, the site fetches itself once, and a plugin that breaks the site is switched off again before anyone sees it. Built themes did not have that guard. They do now.
When a theme is activated, by the agent or by a conversion, T-Builder fetches the site's front page and its REST API with the theme active, past any page cache. If either answers a critical error, the previous theme comes back at once and the result says why, with the fatal from the log when WordPress wrote one. The theme stays installed, not active, so the developer can read the reason and ask for a fix. The site never stays down.
A removed theme is a choice
A conversion builds a theme on its own and activates it when the site runs a default theme or one T-Builder built before. That rule had a blind spot: a developer who had just deleted a broken built theme was back on a default theme, so the next conversion activated the rebuilt one again.
From 0.9.33 a built theme that is gone from the themes folder counts as the developer's decision. The next conversion still builds and installs its theme, but leaves it inactive and says so. Switching it on is one request in the chat.
Inside the plugin
Sites update themselves from the account as usual. Nothing changes for themes that are already running.