v1.0.0
vercel/satoriv1.0.0Sep 12, 2026by Aymericr
Upgrading?
AI Summary
Major stable release graduating beta packages to stable. Introduces capture protocols inside core packages, closes agent distribution surface, and includes extensive agent skills, CLI improvements, MCP server enhancements, and capture mode improvements.
Key Highlights
- Graduates beta packages to stable npm 'latest' tag
- Capture protocols and viewers now inside @pascal-app/core and @pascal-app/viewer
- Public agent skills: pascal-3d and furniture-fit
- Claude Code plugin with credential-free local MCP server
- Official MCP Registry entry for io.github.pascalorg/editor
Breaking Changes
- @pascal-app/capture-protocol beta-only package folded into @pascal-app/core/capture
- Plugin bundles versioned as 0.1.3 → 0.1.8 with validation ledger
- Changes to plugin manifest format (.mcp.json → mcp.json)
New Features
- Agent skills and distribution (public skills, plugin bundles, Claude Code, Codex, Cursor, Gemini, OpenAI manifests)
- CLI with persistent installation and lifecycle management
- MCP server with layout clearance and tool execution middleware
- Open capture protocol with viewer runtime
- Custom mesh editing with Blender-style editing
- Authored camera poses and capture-mode camera suite
- Manifest-first previews and WebP snapshot encoding
Full Release Notes
1.0.0 graduates the `1.0.0-beta` line opened by [v1.0.0-beta.1](https://github.com/pascalorg/editor/releases/tag/v1.0.0-beta.1): the scene model, node registry, and package boundaries that the beta stabilized now ship as stable versions on the npm `latest` tag, and the open capture protocol and viewer runtime ship inside them as `@pascal-app/core/capture` and `@pascal-app/viewer/capture` ([#713](https://github.com/pascalorg/editor/pull/713), [#851](https://github.com/pascalorg/editor/pull/851)). It also closes the agent distribution surface: public `pascal-3d` and `furniture-fit` skills, plugin manifests for Claude Code, Codex, Cursor and Gemini, an entry in the official MCP Registry, and a CLI that can claim and verify a hosted agent key ([#777](https://github.com/pascalorg/editor/pull/777), [#829](https://github.com/pascalorg/editor/pull/829), [#808](https://github.com/pascalorg/editor/pull/808), [#815](https://github.com/pascalorg/editor/pull/815)). ### ✨ Features **Agent skills and distribution** - **Public agent skills** — `pascal-3d` and `furniture-fit` teach MCP-capable agents to build, inspect, validate and hand off scenes, and to report measured furniture footprints with evidence-scoped conclusions, fail-closed input gates, blocker-aware next actions, and a no-sign-in footprint pre-check link ([#777](https://github.com/pascalorg/editor/pull/777), [#781](https://github.com/pascalorg/editor/pull/781), [#791](https://github.com/pascalorg/editor/pull/791), [#794](https://github.com/pascalorg/editor/pull/794), [#824](https://github.com/pascalorg/editor/pull/824)), with sharper skill discovery and MCP safety metadata across both bundles ([#812](https://github.com/pascalorg/editor/pull/812)) - **Plugin bundles 0.1.3 → 0.1.8** — one canonical `skills/` source ships as a single versioned plugin with a recorded validation ledger per bundle ([#782](https://github.com/pascalorg/editor/pull/782), [#795](https://github.com/pascalorg/editor/pull/795), [#802](https://github.com/pascalorg/editor/pull/802), [#811](https://github.com/pascalorg/editor/pull/811), [#825](https://github.com/pascalorg/editor/pull/825)) - **Claude Code plugin** — this repository installs as `pascal-agent-skills@pascal`, with a credential-free local `pascal mcp connect` server bundled ([#777](https://github.com/pascalorg/editor/pull/777), [#810](https://github.com/pascalorg/editor/pull/810)) and a hosted `pascal-hosted` Streamable HTTP server whose optional Pascal API key is collected as sensitive plugin user configuration and stored in the OS keychain rather than any file ([#835](https://github.com/pascalorg/editor/pull/835)) - **Codex, Cursor and Gemini manifests** — a portable root `mcp.json` (the spec reads `mcp.json`, not `.mcp.json`), `.cursor-plugin/plugin.json`, `gemini-extension.json`, plated marketplace logos, and `bun run skills:validate` asserting parity across every descriptor ([#829](https://github.com/pascalorg/editor/pull/829)) - **OpenAI Agent Plugins manifest** — root `plugin.json` with listing metadata, branding assets, a With MCP review packet, and per-tool annotation justifications for all 46 MCP tools ([#796](https://github.com/pascalorg/editor/pull/796), [#797](https://github.com/pascalorg/editor/pull/797), [#799](https://github.com/pascalorg/editor/pull/799), [#813](https://github.com/pascalorg/editor/pull/813)) - **ClawHub publication readiness** — scoped `.clawhubignore` policies with regression tests that reject re-inclusion and legacy-override rules ([#798](https://github.com/pascalorg/editor/pull/798), [#806](https://github.com/pascalorg/editor/pull/806)) - **Official MCP Registry entry** — `io.github.pascalorg/editor` publishes the hosted Streamable HTTP endpoint, with CI validating the manifest against the live API catalog ([#808](https://github.com/pascalorg/editor/pull/808), [#809](https://github.com/pascalorg/editor/pull/809)) **CLI** - **`@pascal-app/cli`** — persistent local editor installation and lifecycle management over a packaged standalone runtime, with update rollback, damaged-runtime recovery, collision-safe startup, flat standalone dependencies, and first-run command setup ([#604](https://github.com/pascalorg/editor/pull/604), [#605](https://github.com/pascalorg/editor/pull/605), [#609](https://github.com/pascalorg/editor/pull/609), [#610](https://github.com/pascalorg/editor/pull/610), [#611](https://github.com/pascalorg/editor/pull/611)) - **Managed MCP alongside the local editor** — `npx @pascal-app/cli editor` starts the editor and an authenticated dynamic-port MCP service together, so `pascal mcp connect` needs neither the port nor the private token in client configuration ([#612](https://github.com/pascalorg/editor/pull/612)) - **`pascal agent claim` and `pascal agent status`** — an agent opens a prefilled 15-minute human handoff and verifies its hosted key without storing or printing it, shipped through the verified GitHub CLI preview channel ([#815](https://github.com/pascalorg/editor/pull/815), [#818](https://github.com/pascalorg/editor/pull/818), [#821](https://github.com/pascalorg/editor/pull/821), [#780](https://github.com/pascalorg/editor/pull/780), [#819](https://github.com/pascalorg/editor/pull/819), [#822](https://github.com/pascalorg/editor/pull/822)) **MCP server** - **Layout clearance** for doors and item overlaps ([#569](https://github.com/pascalorg/editor/pull/569)); surface holes subtracted from measured area ([#563](https://github.com/pascalorg/editor/pull/563)) - **Tool execution middleware**, with cancellation propagated to host executors and callback updates kept inside them ([#801](https://github.com/pascalorg/editor/pull/801), [#803](https://github.com/pascalorg/editor/pull/803), [#804](https://github.com/pascalorg/editor/pull/804)) - **Honest tool contracts** — returned fields declared in tool output schemas ([#575](https://github.com/pascalorg/editor/pull/575)), and skipped persistence reported instead of silently dropping live sync ([#736](https://github.com/pascalorg/editor/pull/736)) **Capture** - **Open capture protocol and viewer runtime** — `@pascal-app/core/capture` (formerly the beta-only `@pascal-app/capture-protocol`, folded in [#851](https://github.com/pascalorg/editor/pull/851)) covers extensible capture manifests, artifacts, coordinate frames and live streams; `@pascal-app/viewer/capture` renders room models, point clouds, surface meshes and animated device motion; scan nodes gain capture-session references, transforms and per-layer visibility, and capture layers mount as host-provided scene-tree children ([#713](https://github.com/pascalorg/editor/pull/713)) - **Manifest-first previews** — JSON preview artifacts hydrate through a single renderability predicate, so a stream can't be declared renderable without a hydration path ([#757](https://github.com/pascalorg/editor/pull/757)); shared local Clay previews and optional dollhouse rendering align validation with the recorder's native face budget ([#788](https://github.com/pascalorg/editor/pull/788)) - **Authored camera poses** — external camera tools request a still from an explicit world-space pose, including roll and output framing, without moving the working viewport, and receive correlated saved/failed events ([#768](https://github.com/pascalorg/editor/pull/768)) - **Capture-mode camera suite** — FOV lens, walk/drone framing and keycap hints ([#742](https://github.com/pascalorg/editor/pull/742)), walk/drone snapshot framing brought up to orbit's standard ([#743](https://github.com/pascalorg/editor/pull/743)), level-follow camera and snapshot suite ([#752](https://github.com/pascalorg/editor/pull/752)), WebP snapshot encoding ([#622](https://github.com/pascalorg/editor/pull/622)), and a 2048 px long-edge clamp on viewport/area captures ([#639](https://github.com/pascalorg/editor/pull/639)) **Editor and modeling** - **Custom mesh editing** — Blender-style mesh editing, plus block mesh editing UX ([#638](https://github.com/pascalorg/editor/pull/638), [#691](https://github.com/pascalorg/editor/pull/691)) - **Roofs** — lean-to extensions with automatic drainage ([#651](https://github.com/pascalorg/editor/pull/651)), improved materials, drawing and intersections ([#690](https://github.com/pascalorg/editor/pull/690)) - **MEP** — duct and pipe fittings, routing and system checks ([#769](https://github.com/pascalorg/editor/pull/769)), and connected pipe/duct drafting ([#827](https://github.com/pascalorg/editor/pull/827)) - **Cabinets** — exact sizing with run-aware editing ([#753](https://github.com/pascalorg/editor/pull/753)), modular constraints and finishes ([#719](https://github.com/pascalorg/editor/pull/719)) - **Synchronized 2D viewer modes** ([#672](https://github.com/pascalorg/editor/pull/672)) - **Exports** — print-ready model exports ([#701](https://github.com/pascalorg/editor/pull/701), [#703](https://github.com/pascalorg/editor/pull/703)) and `exportFloorplanPdf` on the package entry ([#636](https://github.com/pascalorg/editor/pull/636)) - **Selection and inspector** — shared parameters editable on a homogeneous multi-selection ([#680](https://github.com/pascalorg/editor/pull/680)), session multi-select groups via Ctrl+G ([#571](https://github.com/pascalorg/editor/pull/571)), arbitrary maxes lifted from inspector dimension fields ([#721](https://github.com/pascalorg/editor/pull/721)), room-envelope height caps raised from 6 m to 20 m with the ceiling's level bound surfaced ([#642](https://github.com/pascalorg/editor/pull/642), [#650](https://github.com/pascalorg/editor/pull/650)) - **Host integration** — guided-tour hooks for targets, a success cue, snapping and camera hints ([#728](https://github.com/pascalorg/editor/pull/728), [#730](https://github.com/pascalorg/editor/pull/730)), `noPanel` sidebar tabs for stage-driving rail entries ([#641](https://github.com/pascalorg/editor/pull/641)), declarative `def.toolOptions` with a shared `ToolOptionsPanel` ([#750](https://github.com/pascalorg/editor/pull/750)), a `presentation.findInCatalog` opt-out for the action menu ([#756](https://github.com/pascalorg/editor/pull/756)), an exported `getWallHideState` ([#576](https://github.com/pascalorg/editor/pull/576)), a configurable `maxFps` render-loop cap ([#671](https://github.com/pascalorg/editor/pull/671)), and a single-writer ToolMode FSM for mode/tool ([#751](https://github.com/pascalorg/editor/pull/751)) - **Plugin ecosystem** — Mint ([#591](https://github.com/pascalorg/editor/pull/591)) and Streetscape ([#628](https://github.com/pascalorg/editor/pull/628)) plugins, the Bones structural X-ray plugin wired into the standalone editor ([#649](https://github.com/pascalorg/editor/pull/649)), and per-kind plugin inspector-card extensions on the floating inspector ([#667](https://github.com/pascalorg/editor/pull/667)) - **Light WebGPU preview and `/editor` scene redirect** ([#570](https://github.com/pascalorg/editor/pull/570)) - **Terrain and collaboration** — terrain elevation inherited by rooms, geometry builders and plugins ([#568](https://github.com/pascalorg/editor/pull/568)); realtime terrain and scene collaboration primitives repaired ([#573](https://github.com/pascalorg/editor/pull/573)) ### 🐛 Fixes - **Scene materials survive persistence** — custom materials are preserved across save, load, clone, fork and live sync, and collections are no longer dropped on MCP import ([#597](https://github.com/pascalorg/editor/pull/597)) by [@ShiroKSH](https://github.com/ShiroKSH); materials also carry through Load Build ([#729](https://github.com/pascalorg/editor/pull/729)), dangling library material refs re-resolve with the paint picker defaulting to Pascal ([#749](https://github.com/pascalorg/editor/pull/749)), and the material list has a stable test hook ([#724](https://github.com/pascalorg/editor/pull/724)) - **Deterministic wall junctions** — exactly-collinear walls miter in a stable order, so identical scenes produce identical geometry regardless of node iteration order ([#596](https://github.com/pascalorg/editor/pull/596)) by [@tomatotomata](https://github.com/tomatotomata); lean-to roof mitering fixed across connected runs ([#739](https://github.com/pascalorg/editor/pull/739)); `calculateLevelMiters` reachable through `core/wall` ([#732](https://github.com/pascalorg/editor/pull/732)) - **Wall drafts and previews** — plane-bound defaults restored for draft, panel and self-heal ([#630](https://github.com/pascalorg/editor/pull/630)), slab-sourced drafts never coerced to a ground base ([#702](https://github.com/pascalorg/editor/pull/702)), node tops stop lifting floor placements while batched walls stay pickable ([#686](https://github.com/pascalorg/editor/pull/686)), a hovered wall leaves its batch so it can outline ([#687](https://github.com/pascalorg/editor/pull/687)), wall item placement preview no longer drifts off the item ([#643](https://github.com/pascalorg/editor/pull/643)), draft preview geometry reused ([#550](https://github.com/pascalorg/editor/pull/550)), and wall load fixes for treatment fan-out, one CSG cut per wall, a capture draw leak and converter duplicates ([#762](https://github.com/pascalorg/editor/pull/762)) - **Hover, selection and hidden walls** — hidden walls stop swallowing pointer events ([#683](https://github.com/pascalorg/editor/pull/683)), stay ray targets while a door/window tool is active ([#689](https://github.com/pascalorg/editor/pull/689)), and lose to nearest-first hover against the furniture behind them ([#697](https://github.com/pascalorg/editor/pull/697)); opening MOVE drags ride the node's own wall with one undo entry per gesture ([#694](https://github.com/pascalorg/editor/pull/694)) - **Autosave and scene loading** — the autosave wipe guard stays armed after the scene loads ([#578](https://github.com/pascalorg/editor/pull/578), [#682](https://github.com/pascalorg/editor/pull/682)), a failed scene load shows an error with retry instead of an empty scene ([#759](https://github.com/pascalorg/editor/pull/759)), and null parent links in stored scenes are repaired so they pass authority validation ([#574](https://github.com/pascalorg/editor/pull/574)) - **History and dirty state** — history command ownership hardened ([#627](https://github.com/pascalorg/editor/pull/627)), placement drafts kept out of undo history ([#637](https://github.com/pascalorg/editor/pull/637)), a guarded dirty set with undo phantom sweep and animation split ([#758](https://github.com/pascalorg/editor/pull/758)), and elevator dirty tracking dropped ([#599](https://github.com/pascalorg/editor/pull/599)) - **Core robustness** — vertical scene canonicalization shared ([#626](https://github.com/pascalorg/editor/pull/626)), numeric sanitize diagnostics fail safe ([#615](https://github.com/pascalorg/editor/pull/615)), asset ids no longer depend on `crypto.randomUUID` ([#681](https://github.com/pascalorg/editor/pull/681)), and room surfaces reconcile after wall topology edits ([#624](https://github.com/pascalorg/editor/pull/624)) - **zod 4.5 compatibility** — `AnyNode` made discriminated-union-proof through bare-literal projection ([#745](https://github.com/pascalorg/editor/pull/745)), node metadata typed as a record instead of `z.json()` ([#746](https://github.com/pascalorg/editor/pull/746)), with the dependency range capped and then lifted to a working 4.5.x ([#744](https://github.com/pascalorg/editor/pull/744), [#747](https://github.com/pascalorg/editor/pull/747)) - **Sentry-reported crashes** — null WebGL context in the 3D viewer ([#455](https://github.com/pascalorg/editor/pull/455)), missing roof-segment trim in the ridge-vent geometry key ([#530](https://github.com/pascalorg/editor/pull/530)), and a `structuredClone` fallback where lingo is imported ([#577](https://github.com/pascalorg/editor/pull/577)) - **Claude Code plugin root** — the plugin root is `skills/` instead of the repository root, so installing `pascal-agent-skills@pascal` copies the two skill bundles and their MCP configuration instead of caching the whole monorepo and running `bun install` against the root lockfile ([#832](https://github.com/pascalorg/editor/pull/832)) - **Plugin integration** — plugin node kinds accepted by the scene save API ([#490](https://github.com/pascalorg/editor/pull/490)), hover/click subscriptions attached for kinds that register after mount ([#665](https://github.com/pascalorg/editor/pull/665)), inspector extension mode either/or with the regular controls ([#668](https://github.com/pascalorg/editor/pull/668)), and no empty plugin manager in an empty rail ([#741](https://github.com/pascalorg/editor/pull/741)) - **Roof, placement and level details** — roof and placement previews corrected ([#718](https://github.com/pascalorg/editor/pull/718)), wall editing and roof controls corrected ([#738](https://github.com/pascalorg/editor/pull/738)), slab room paint scoped to the clicked slab's level ([#592](https://github.com/pascalorg/editor/pull/592)), the function-tree category grid capped so the item list stays reachable ([#593](https://github.com/pascalorg/editor/pull/593)), level pill without ground-floor delete and no compass in studio ([#723](https://github.com/pascalorg/editor/pull/723)), stable level elevation smoothing ([#659](https://github.com/pascalorg/editor/pull/659)), isolation and solo no longer overwriting each other's layer masks ([#607](https://github.com/pascalorg/editor/pull/607)), millimetre notation respected in 3D labels ([#540](https://github.com/pascalorg/editor/pull/540)), and adjacent IFC wall assemblies no longer merged ([#603](https://github.com/pascalorg/editor/pull/603)) - **Experience fix pass** — Cmd/Ctrl+S saves instead of opening the browser's page-save dialog, plus placement, selection rotation, roof gable, stairs and capture fixes on three r186 ([#807](https://github.com/pascalorg/editor/pull/807)) ### ⚡ Performance - **Charter rows** — initial wall builds drain within the time budget (row 6) ([#800](https://github.com/pascalorg/editor/pull/800)), undo/redo invalidation scoped to changed geometry and cleared previews (row 7) ([#805](https://github.com/pascalorg/editor/pull/805)), ceiling undersides and slab bodies batched (row 16) ([#789](https://github.com/pascalorg/editor/pull/789)) - **Batching and instancing** — items, columns, doors and windows draw through BatchedMesh containers ([#760](https://github.com/pascalorg/editor/pull/760)), wall batching stays live in cutaway ([#761](https://github.com/pascalorg/editor/pull/761)), a level's walls are sewn into one mesh ([#608](https://github.com/pascalorg/editor/pull/608)), wall geometry is no longer rebuilt every frame ([#556](https://github.com/pascalorg/editor/pull/556)), ceiling corner brackets are instanced per level ([#784](https://github.com/pascalorg/editor/pull/784)), and animation mixers are skipped for items without clips ([#785](https://github.com/pascalorg/editor/pull/785)) - **Viewer passes** — outline reuses scene depth and renders masks from proxies ([#772](https://github.com/pascalorg/editor/pull/772)), pointer-event raycasts are cached with a camera-drag throttle ([#774](https://github.com/pascalorg/editor/pull/774)), wall cutout facing is cached instead of re-evaluated per camera move ([#775](https://github.com/pascalorg/editor/pull/775)), zone and overlay passes render from indexed roots ([#776](https://github.com/pascalorg/editor/pull/776)), viewer runtime ownership tightened ([#675](https://github.com/pascalorg/editor/pull/675)), and viewer stage mode sets stabilized ([#673](https://github.com/pascalorg/editor/pull/673)) - **Schema parsing** — lazy per-kind compiled node parsers behind a flag ([#748](https://github.com/pascalorg/editor/pull/748)) - **CLI download size** — the packed `@pascal-app/cli` drops from 107 MB to 65 MB by pruning build-only files from the portable runtime, with every dropped file printed so a future non-conventional asset is reported rather than shipped ([#838](https://github.com/pascalorg/editor/pull/838)), and then to 0.5 MB: the runtime ships as a checksummed release asset that the CLI fetches on first use instead of riding inside the npm tarball ([#845](https://github.com/pascalorg/editor/pull/845)) - **Instrumentation** — a `?perf` suite with real WebGPU timestamp queries, system tracks, action receipts and a DOM panel, at zero cost without the flag ([#755](https://github.com/pascalorg/editor/pull/755)) ### 🧰 Tooling / infra - **Release pipeline** — a stable bump now graduates a prerelease to its base version (`1.0.0-beta.N` → `1.0.0`) instead of producing `2.0.0` or publishing a beta to `latest` ([#837](https://github.com/pascalorg/editor/pull/837)); npm publishing moved to trusted publishing over GitHub OIDC after npm deprecated 2FA-bypass tokens ([#839](https://github.com/pascalorg/editor/pull/839), [#853](https://github.com/pascalorg/editor/pull/853), [#856](https://github.com/pascalorg/editor/pull/856)); trusted publishing for MCP and CLI ([#779](https://github.com/pascalorg/editor/pull/779)) with npm auth and OIDC repairs ([#816](https://github.com/pascalorg/editor/pull/816), [#817](https://github.com/pascalorg/editor/pull/817)); release package tag push fixed ([#565](https://github.com/pascalorg/editor/pull/565)); license metadata and `LICENSE` shipped in tarballs ([#732](https://github.com/pascalorg/editor/pull/732)) - **CI and tests** — the test suite runs in CI ([#548](https://github.com/pascalorg/editor/pull/548)), bun pinned to 1.3.14 in the quality gate ([#585](https://github.com/pascalorg/editor/pull/585)), `bun install` retried on transient GitHub 429s ([#674](https://github.com/pascalorg/editor/pull/674)), CI-sized timeout for the every-angle corner-joint sweep ([#693](https://github.com/pascalorg/editor/pull/693)) and a 30 s budget for rounded-opening CSG unions ([#764](https://github.com/pascalorg/editor/pull/764)), registry leaks across test files fixed ([#709](https://github.com/pascalorg/editor/pull/709)), the canopy regression matrix split into independent tests ([#790](https://github.com/pascalorg/editor/pull/790)), node source-system probes run from a package-local file with mocks established before any fiber/react import ([#792](https://github.com/pascalorg/editor/pull/792), [#793](https://github.com/pascalorg/editor/pull/793)), history probe modules resolved from the packages that depend on them under the isolated linker ([#828](https://github.com/pascalorg/editor/pull/828)), and wall batch tests driving the frame function directly ([#763](https://github.com/pascalorg/editor/pull/763)) - **Architecture** — runtime R3F evicted from the core barrel, with an architecture test to keep it out ([#692](https://github.com/pascalorg/editor/pull/692)) - **Platform** — Next.js 16.3 ([#579](https://github.com/pascalorg/editor/pull/579)), the Node runtime for standalone editor Vercel functions ([#580](https://github.com/pascalorg/editor/pull/580)), and `bun dev` working on Windows without dropping the PORT override ([#587](https://github.com/pascalorg/editor/pull/587)) - **Docs** — the docker workflow ([#590](https://github.com/pascalorg/editor/pull/590)), the plugin viewer appearance contract ([#625](https://github.com/pascalorg/editor/pull/625)), the MCP north convention in the garden-house template ([#584](https://github.com/pascalorg/editor/pull/584)), how `from_brief` binds a scene ([#595](https://github.com/pascalorg/editor/pull/595)), CLI package discoverability ([#606](https://github.com/pascalorg/editor/pull/606)), a security policy and code of conduct ([#575](https://github.com/pascalorg/editor/pull/575)), stale `NEXT_PUBLIC_GOOGLE_MAPS_API_KEY` docs dropped ([#589](https://github.com/pascalorg/editor/pull/589)), and changelog credit for the junction-determinism and scene-materials fixes ([#598](https://github.com/pascalorg/editor/pull/598)) - **Bones plugin pin** — the pinned structural X-ray plugin advanced 26 times across this window: camera-proof X-ray, dollhouse and blueprint batches ([#653](https://github.com/pascalorg/editor/pull/653), [#655](https://github.com/pascalorg/editor/pull/655), [#656](https://github.com/pascalorg/editor/pull/656), [#662](https://github.com/pascalorg/editor/pull/662), [#666](https://github.com/pascalorg/editor/pull/666), [#669](https://github.com/pascalorg/editor/pull/669), [#670](https://github.com/pascalorg/editor/pull/670)), electrical, plumbing and HVAC systems with movable service points ([#657](https://github.com/pascalorg/editor/pull/657), [#658](https://github.com/pascalorg/editor/pull/658), [#660](https://github.com/pascalorg/editor/pull/660), [#661](https://github.com/pascalorg/editor/pull/661), [#676](https://github.com/pascalorg/editor/pull/676), [#677](https://github.com/pascalorg/editor/pull/677), [#684](https://github.com/pascalorg/editor/pull/684), [#695](https://github.com/pascalorg/editor/pull/695), [#698](https://github.com/pascalorg/editor/pull/698)), the heat pump becoming a first-class object ([#700](https://github.com/pascalorg/editor/pull/700), [#705](https://github.com/pascalorg/editor/pull/705), [#707](https://github.com/pascalorg/editor/pull/707), [#708](https://github.com/pascalorg/editor/pull/708), [#710](https://github.com/pascalorg/editor/pull/710), [#711](https://github.com/pascalorg/editor/pull/711), [#712](https://github.com/pascalorg/editor/pull/712)), and CMU paint plus LGS steel walls and jurisdictions ([#714](https://github.com/pascalorg/editor/pull/714), [#716](https://github.com/pascalorg/editor/pull/716), [#717](https://github.com/pascalorg/editor/pull/717)) ### 📦 Packages | Package | Version | |---|---| | `@pascal-app/core` | `1.0.0` | | `@pascal-app/viewer` | `1.0.0` | | `@pascal-app/editor` | `1.0.0` | | `@pascal-app/nodes` | `1.0.0` | | `@pascal-app/mcp` | `1.0.0` | | `@pascal-app/ifc-converter` | `1.0.0` | | `@pascal-app/cli` | `1.0.0` | > All seven packages move to the npm `latest` tag; the `beta` tag stops at the `1.0.0-beta` line. The beta-only `@pascal-app/capture-protocol` and `@pascal-app/capture-viewer` packages were never published to npm: before 1.0.0 they were folded into `@pascal-app/core/capture` and `@pascal-app/viewer/capture` ([#851](https://github.com/pascalorg/editor/pull/851)), so the published surface stays at seven packages instead of nine. > > `@pascal-app/cli` downloads its web runtime from the [`@pascal-app/cli@1.0.0`](https://github.com/pascalorg/editor/releases/tag/%40pascal-app%2Fcli%401.0.0) release asset on first use and verifies it against the SHA-256 recorded in the package. ### 🙏 Thanks A huge thank you to everyone who contributed to 1.0.0. - [@wass08](https://github.com/wass08) — the batching and viewer performance passes, the capture-mode camera suite, dirty-lifecycle correctness, host tour hooks, the `?perf` instrumentation suite, and the experience fix pass (48 PRs, including [#760](https://github.com/pascalorg/editor/pull/760), [#761](https://github.com/pascalorg/editor/pull/761), [#772](https://github.com/pascalorg/editor/pull/772), [#755](https://github.com/pascalorg/editor/pull/755), [#742](https://github.com/pascalorg/editor/pull/742), [#758](https://github.com/pascalorg/editor/pull/758), [#728](https://github.com/pascalorg/editor/pull/728), [#807](https://github.com/pascalorg/editor/pull/807)) - [@Snoopy147](https://github.com/Snoopy147) — Bones plugin integration and the hover/selection/pointer-correctness wave, plus the plugin inspector-card extensions (37 PRs, including [#667](https://github.com/pascalorg/editor/pull/667), [#683](https://github.com/pascalorg/editor/pull/683), [#689](https://github.com/pascalorg/editor/pull/689), [#697](https://github.com/pascalorg/editor/pull/697), [#694](https://github.com/pascalorg/editor/pull/694), [#682](https://github.com/pascalorg/editor/pull/682), [#709](https://github.com/pascalorg/editor/pull/709), [#741](https://github.com/pascalorg/editor/pull/741)) - [@sudhir9297](https://github.com/sudhir9297) — roofs, MEP routing, cabinets, and custom mesh editing ([#638](https://github.com/pascalorg/editor/pull/638), [#651](https://github.com/pascalorg/editor/pull/651), [#690](https://github.com/pascalorg/editor/pull/690), [#691](https://github.com/pascalorg/editor/pull/691), [#718](https://github.com/pascalorg/editor/pull/718), [#719](https://github.com/pascalorg/editor/pull/719), [#738](https://github.com/pascalorg/editor/pull/738), [#739](https://github.com/pascalorg/editor/pull/739), [#753](https://github.com/pascalorg/editor/pull/753), [#769](https://github.com/pascalorg/editor/pull/769), [#827](https://github.com/pascalorg/editor/pull/827), [#624](https://github.com/pascalorg/editor/pull/624)) - [@ActArtech](https://github.com/ActArtech) — MCP layout clearance, the light WebGPU preview, and session multi-select groups ([#569](https://github.com/pascalorg/editor/pull/569), [#570](https://github.com/pascalorg/editor/pull/570), [#571](https://github.com/pascalorg/editor/pull/571)) - [@anton-pascal](https://github.com/anton-pascal) — Sentry-driven null-safety hardening in viewer, nodes and core ([#455](https://github.com/pascalorg/editor/pull/455), [#530](https://github.com/pascalorg/editor/pull/530), [#615](https://github.com/pascalorg/editor/pull/615)) - [@toycenterboss-bot](https://github.com/toycenterboss-bot) — wall geometry performance and viewer layer-mask fixes ([#556](https://github.com/pascalorg/editor/pull/556), [#607](https://github.com/pascalorg/editor/pull/607), [#608](https://github.com/pascalorg/editor/pull/608)) - [@JimmyZheng-ZJU](https://github.com/JimmyZheng-ZJU) — wall draft preview geometry reuse and elevator dirty state ([#550](https://github.com/pascalorg/editor/pull/550), [#599](https://github.com/pascalorg/editor/pull/599)) - [@ShiroKSH](https://github.com/ShiroKSH) — diagnosed and layered the scene-material persistence fix ([#597](https://github.com/pascalorg/editor/pull/597)) - [@tomatotomata](https://github.com/tomatotomata) — deterministic collinear wall junction ordering ([#596](https://github.com/pascalorg/editor/pull/596)) - [@alxbouchard](https://github.com/alxbouchard) — scene materials carried through Load Build ([#729](https://github.com/pascalorg/editor/pull/729)) - [@SomSamantray](https://github.com/SomSamantray) — `exportFloorplanPdf` on the package entry ([#636](https://github.com/pascalorg/editor/pull/636)) - [@konevenkatesh](https://github.com/konevenkatesh) — plugin node kinds accepted by the scene save API ([#490](https://github.com/pascalorg/editor/pull/490)) - [@maherm](https://github.com/maherm) — asset ids no longer depending on `crypto.randomUUID` ([#681](https://github.com/pascalorg/editor/pull/681)) - [@rootsbymenda](https://github.com/rootsbymenda) — surface holes subtracted from measured area ([#563](https://github.com/pascalorg/editor/pull/563)) - [@tamg](https://github.com/tamg) — the Mint plugin ([#591](https://github.com/pascalorg/editor/pull/591)) - [@tylergibbs1](https://github.com/tylergibbs1) — millimetre notation in 3D labels ([#540](https://github.com/pascalorg/editor/pull/540)) - [@vjureta](https://github.com/vjureta) — running the test suite in CI ([#548](https://github.com/pascalorg/editor/pull/548)) - [@yorhodes](https://github.com/yorhodes) — IFC adjacent wall assemblies no longer merged ([#603](https://github.com/pascalorg/editor/pull/603)) - [@ztffn](https://github.com/ztffn) — configurable `maxFps` render-loop cap ([#671](https://github.com/pascalorg/editor/pull/671)) **Full changelog**: https://github.com/pascalorg/editor/compare/v1.0.0-beta.1...v1.0.0
Related Repositories
openclaw/openclaw★ 392,696
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,067
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 357,700
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,670
The open source coding agent.
n8n-io/n8n★ 208,251
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.