Code generation
- A brick, generator, or animation whose alias is a JavaScript reserved word —
class,default,return, and the rest — compiles to a parseable generated project. The identifier is suffixed with_instead of being emitted verbatim. See pull app. - The Generator LLM Interrupted event field, new in this release for the OpenAI and Anthropic generators, is declared in the generated types and documentation. See BRICKS Foundation.
Security
- New
bricks-sastCLI — static security review for CTOR applications. It scans an application config for dangerous configuration — inline plaintext secrets, SSRF-prone requests, SQL string-building, ReDoS-prone patterns, and more — with severity gating, baselines, custom rules, and SARIF / JSON output for CI.
Automations
match_screenshotarguments are documented and typed as the runner actually reads them:[name, allowFailureMismatch?, threshold?].
Code generation
- The Subspace
exceed_boundaryframe flag survives a pull → push round trip and is declared in the generated types. See pull app.
Modules
- Controller-made overrides of a linked Module’s public Data survive a pull → push round trip. They lived only in the Subspace, so the server refilled Module defaults on every push and silently reverted them. See pull app.
Skills
- New rules for choosing between Items and hand-laid lists, keyed on structural signals rather than item counts, with mid-build escalation triggers and a hand-laid → Items migration recipe. See skills.
- A new display-scale reference for
bricks-design, mapping physical screen size, viewing distance, and interaction mode to concrete type, spacing, and touch-target numbers.
Validation
bricks app doctorand the ctor compile gate now validate item-Brick event maps, flagging malformed entries and dead keys left behind by older Short Edit writes. See BRICKS CLI.- Compiling an automation map without
AUTOMATION_MAP_DEFAULTnow fails with an actionable message, instead of compiling green with zero runnable tests.
Code generation
- Item-Brick state groups using
item_key_mappingconditions survive a pull → source → compile round trip; an unrecognized condition now fails loudly instead of being silently stripped. - Test-case jump conditions use a single
data/statuscontract: non-statusconditional jumps actually fire,subspace_id/property_bank_idare preserved, and a legacy data condition survives the round trip.
MCP server
- MCP editing tools and Simulator screenshots are confined to the project directory. See MCP server.
Breaking changes
- Project tooling moved to the BRICKS CLI —
@fugood/bricks-ctorno longer ships project tooling. Thebricks ctorcommand group in@fugood/bricks-clireplaces it, and existing projects migrate automatically onbricks ctor postinstall, which updates package scripts, the dependency, and.mcp.json. See BRICKS CLI.
MCP server
- Experimental editing tools — dedicated tools for editing entries, events, canvas items, switches, and DataCalculationScript files, so common operations no longer need raw source edits. See MCP server.
- Subspace references —
() => subspace1getters replace hand-typedSUBSPACE_<uuid>literals in embeds, handlers, and link metadata, and a newnew_subspacetool scaffolds a Subspace. - Typed script members for MCP Server and HTTP Server sandbox scripts.
Skills
- The bricks-ctor skill adds a multi-Subspace design guide.
Code generation
- Generated Items Brick projects now bind item Outlets to the intended Data properties.
Code generation
- Generated projects preserve collapsed editor state and Data Bank property IDs after
bricks ctor pull-app. - Project code generation preserves zero-valued Data bounds and zero/false frame standby settings.
Skills
- The bricks-ctor skill guides agents to supported native and Google font-family choices.
MCP server
- MCP config validation accepts DataCalculationScript outputs that fan out to multiple Data nodes. See MCP server.
Code generation
- Generated projects now start with canvases, Bricks, and Data collapsed by default while preserving explicit expanded-state settings.
- Generated Items Brick projects preserve item fields such as frame type and detail / list press behaviors.
MCP server
- Simulator MCP output now points agents to the Preview DevTools /
bricks devtoolsinspection loop after successful compiles. See MCP server.
Code generation
- Generated projects serialize array data values correctly.
- Data Calculation sandbox output no longer accumulates extra
{ }blocks on each compile. - Other generated-project stability fixes.
Pull app
bricks ctor pull-app— creates missing parent directories and respects the selected starting branch.
Code generation
- Generated projects preserve conditional jumps whose target case id is dynamic, instead of silently dropping them during compile.
- Generator code generation no longer produces duplicate variable declarations when entity aliases collide.
- Generated projects no longer lose a Data Calculation when one alias collides with another’s fallback file name.
Automation tests
- Legacy automation tests now migrate into per-test files instead of being dropped and replaced with empty placeholders.
MCP
- A malformed MCP config no longer wipes your other configured MCP servers during project setup.
Codex
- Generated projects pre-approve the bricks-ctor MCP tools for Codex, so Codex CLI sessions can call them without stalled approval prompts.
Claude Code
- Claude Code projects seed local auto-mode trusted BRICKS infrastructure without enabling auto mode automatically.
Compile validation
- Generated project compile checks catch Data Calculation cycles and broken PROPERTY_BANK_EXPRESSION strings earlier.
Compile validation
bricks app check-config --validate-automation— surfaces broken automation_map / test_map references (missing Subspaces, Bricks, Canvases, Banks, dynamic senders / handlers, malformedPROPERTY_BANK_*input_to_receiverprefixes) at compile time. The project agent’s compile path enables this by default.
Automation
- Optional
subspaceIdon method steps —brick_press,execute_action,wait_until_*,delay, and other method steps can omitsubspaceId; the runtime resolves it to the root subspace. The Config Editor labels the empty option as “Root (default)”.
Type system
- Animation event handlers now accept a getter form (
() => Animation) so lazy or forward references between animations type-check, matching every other entity reference. booleanaccepted as an alias forboolon Data type fields for ergonomics with TypeScript-trained authors. Runtime output is unchanged.
MCP
- MCP tool output no longer carries ANSI escape sequences from
tsc/bun/brickschild processes; terminal callers stay color-on.
Auto-compile and pull
- Background auto-compile — hash-gated background builds while a project session is active, with an inline compile-error banner and a Pull / Update Config pill flow that detects server-newer / local-ahead state.
- Non-force Pull — the Pull dialog gains a non-force option that branches at the server’s last commit, applies the new files, and merges
mainback in. Force Pull keeps the previous in-place overwrite.
Deploy and rename
- Deploy / Update Config forward the
application.jsonname so renaming a project locally renames it on the server in the same request. Pairs withbricks app/module release --name.
Generated files
- Automation-test and data-calculation filenames now use a kebab-cased alias slug so they stay stable across reorders; orphan
.tsfiles are cleaned up on pull.
Skills
- New bricks-design and bricks-ux skills bundle the visual-design and interaction-design disciplines for project agents.
Improvements
- Generated projects ship a new
bun update-appscript that pushes config changes without bumping the release version. Pairs with thebricks app update --last-commit-id/--validateconflict guards in BRICKS CLI. - Refresh the agent reference for Buttress integration.
Improvements
- Auto-generated commits (deploy, pull force-commits, migration/update) are now attributed to a CTOR (Desktop) author.
- Generator skips dot directories and markdown files when formatting generated projects.
Breaking changes
- Renamed from
bricks-project—@fugood/bricks-projectis now@fugood/bricks-ctor, andbricks-project-generatoris nowbricks-ctor-generator. - New project layout — generated projects use
from 'bricks-ctor'imports and the./ctor/directory. - Automatic migration — legacy
project/directories and MCP config keys are migrated on first run. See getting started for the current setup.