Release planning

CadCraft 0.9 impact map

Every fix and feature lined up for 0.9, and what each one touches: which apps, and which layers of the stack.

ProjectCadCraft
Sheet0.9 impact
Items273
Date2026-11-09
115Fix
147Feature
4Spike
0Platform
0Site ops
0Sanity check
7Decision
≈ 0days in the written 0.9 plans
  • Planned 0 on the plan for the release it is filed under
  • Built 271 built and working in /lab (the dev builds). Whether the public has it is its reach: "in the lab", "Live" (the last gate) or "switched off"; see docs/REACH-LIVE.md
  • Partly built 1 part of it is built in /lab; the rest waits (see "Waits on")
  • Promised 0 the live site already says it is coming
  • Moved 0 moved here from an earlier release or wishlist
  • Found 0 bug found after a release shipped; fixed in a point release or the next one
  • Candidate 0 recommended in a spike or session log; owner to choose
  • Community please test 0 built and in /use; a Discord post gives the steps and the expected result and asks people to try it on their own devices, files or know-how
  • Decision Time 0 a decision, check, file, key, flag or go only you can give; folds into the list once answered

Built means built and working in the lab. Live means the public can use it, and is the last gate: 270 Built · Live, 1 Built · in the lab.

Sheet 1 · impact areas

Where 0.9 lands

How many items touch each app and each layer, by kind. One item can touch several areas, so the rows add up to more than the item count. Pick a row to filter the schedule below.

Impact areaFixFeatureSpikePlatformSite opsSanity checkDecisionAll
Apps
CadCraft 38 36 – – – – 2 76
BimCraft 27 53 2 – – – – 82
ModelCraft 19 45 2 – – – 2 68
MarkupCraft 16 11 – – – – – 27
TakeoffCraft 18 7 – – – – – 25
CivilCraft 14 32 – – – – – 46
DetailCraft 13 13 – – – – – 26
PartCraft 18 27 1 – – – – 46
Studio 2 5 1 – – – – 8
SuperCad Studio 22 17 – – – – – 39
Layers
Site and services 7 11 – – – – 5 23
Desktop host 1 1 1 – – – – 3
App shell 2 1 – – – – – 3
App code 10 28 3 – – – 3 44
Our engines – 12 1 – – – 1 14
Vendor engines – – – – – – – 0
Drawing surface – – – – – – – 0
Help and words 1 2 – – – – 1 4
Tests and tooling – – – – – – – 0

Sheet 2 · schedule

Every fix and feature

Grouped by track. App chips carry each app’s layer colour; Studio is in ink. "Waits on" names what has to happen first; the small lines under it say who asked and where the item is written up.

Add an item Fork map (Rust and C++ forks) The roadmap

Issues sync every 10 minutes; last sync Nov 9, 2026 6:40 pm.

ItemWhatAppsLayersStatusDaysWaits onIssues
Hardware design: HDL to silicon (Track HD) 4
FeatureHD.1 Link to HD.1Comment on HD.1 Chip design: Verilog and VHDL source, checks, hierarchy

Edit hardware description files with syntax checks and a module hierarchy view. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 4 Tried on our own sample only From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
FeatureHD.2 Link to HD.2Comment on HD.2 Chip design: netlist graph and schematic view

Read structural Verilog into a netlist graph and show it as a schematic using the shared schematic engine. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 3 Tried on our own sample only From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
FeatureHD.3 Link to HD.3Comment on HD.3 Chip design: Liberty, LEF, DEF and SDC files

Our own readers and writers for cell timing and power libraries, floorplans and timing constraints, written from the public format descriptions. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 4 Own samples only; no vendor/PDK files tried yet From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
FeatureHD.7 Link to HD.7Comment on HD.7 Chip design: GDSII and OASIS layouts

Read and write GDSII and OASIS with layer maps, hierarchy and a fast view of large layouts. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 4 No third-party OASIS file tried yet From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
Fixes 104
FixFX.15 Link to FX.15Comment on FX.15 SuperCad: reopening a project could overwrite a marked-up PDF

Found building NOTES.1. A saved project holds name.pdf and name (marked up).pdf, and reopening opened both. Both save as name (marked up).pdf, so saving the original's sheets could overwrite the marked-up copy and its markups. A PDF with a marked-up copy now stays in the project but does not open. Checked in tools/super-test/private-notes.mjs, in /lab. Not released.

MarkupCraftSuperCad Studio Built · Live – – From: owner (Site) found building NOTES.1, 2026-11-03
FixFX.67 Link to FX.67Comment on FX.67 Wall Length and typed dimension: no choice of fixed end, no marker for the fixed side, no modifier-key drag to break a join

Wall tool spec pages 11-12 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Checked in the a Discord member source 2026-11-05. Page 11 'BimCraft must' column, three things the code does not do: (1) Changing length: 'start end fixed by default; toggle to grow from the other end or the centre'. setLength (wall-square.js) always keeps the start end and moves the end; there is no toggle. (2) Typing a dimension value: 'a marker shows the fixed side before Enter'. No marker exists; the fixed side is not shown. (3) Breaking a join: 'only by Split, Disallow join, delete, or a modifier-key drag'. No modifier-key drag breaks a join (Split and Disallow join are WT.4 and WT.5). Wanted: a Grow from control on the Length field (start | end | centre) with the fixed side drawn on the plan while the field is focused, and a modifier-key drag (Revit's Move with Disjoin) that moves a wall without carrying its joins and keeps the wall's id. Spec tests 3 and 9. OTHER APPS: CadCraft plan walls have no Length field or toggle either (FX.59). Not started. walls-09 2026-11-06: Built in /lab: Properties › Grow from (Start holds | End holds | Centre holds) next to Length; the side that holds is marked on the plan while the Length field is in use; Alt + drag of the middle grip moves the wall free of its joins (they break, the id stays). Tests: --walltools (grow from end and centre, marker point), browser-walltools (grow from end, marker, Alt-drag).

CadCraftBimCraftSuperCad Studio Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 11)
FixFX.83 Link to FX.83Comment on FX.83 Settings > Layout: the layouts are a drop-down of two-line choices, not a long radio list

The layout list (built-ins plus add-on and imported layouts) grew into a long radio column. Now a button shows the chosen layout (icon, name, hint) and opens a pop-up list of two-line choices, scrolling past 24rem. The radios stay inside the pop-up, so picking, the extras list, Remove and the keyboard (arrows between layouts) work as before; Esc, a pick or a click elsewhere closes it; without JS the list just shows. Files: app-settings.inc, app-settings.js (wsCur, wsOpen), app-shell.css. Checked: syntax and php -l; not yet tried in a browser. Owner tried it in /lab 2026-11-06: works.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Built · Live – – From: owner (Owner) owner request 2026-11-06
FixFX.97 Link to FX.97Comment on FX.97 Settings > Plugins list in SuperCad stayed empty once the module waited for the routing table

The list was filled by a window load listener; the module now finishes after load, so the listener never ran. It fills at once when the page is already loaded. Found by the older browser suites (notes-tasks, timer).

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.98 Link to FX.98Comment on FX.98 Sync merge endpoint did not return the "future" count, so a device could not tell a row was refused for its clock

api/v1/team/teams.php returned a fixed list of fields without future. Found by running the real client against the real server.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.99 Link to FX.99Comment on FX.99 Account database update stamps never moved forward: SQLite MAX() compared the bound stamp as text

PDO binds numbers as text, and in SQLite any text sorts above any integer, so MAX(?, updated_at + 1) always chose "now". Fixed with CAST(? AS INTEGER). Found by the last-writer tests.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.100 Link to FX.100Comment on FX.100 Synced rows with an exact timestamp tie never converged: each copy kept its own

Ties are now decided by a fingerprint of the row's content in both JS and PHP (shared vectors), so every copy picks the same row.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.101 Link to FX.101Comment on FX.101 SuperCad said "not signed in" for Teams sync although the person was signed in to the site

A SuperCad tab is signed in to the site by a cookie, but the account API takes a key, and nothing in the page fetched one (the add-ons client that does is mounted only for the eight apps and refuses SuperCad). New: POST /api/account/super-connect (same origin, guarded) mints a 30-day sync-scope key for the tab; super-account.js keeps it in the tab, reconnects once on a 401, retries when the tab regains focus, and tells the plug-in at once. Found when the person said they were signed in; my tests had injected a signed-in account object and never exercised this.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.102 Link to FX.102Comment on FX.102 SuperCad showed no "Starting up…" while it opened an app in a panel

The indicator in the bar ran only at page load. app-boot.js now has window.ccBoot.begin(name) / end(): SuperCad calls it while a panel opens an app, so the bar shows "Opening Building…" and then the files really being fetched, and hides it when the app is ready (new string shell.boot.mount). Single apps behave as before.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.103 Link to FX.103Comment on FX.103 SuperCad: an app's Open a folder / Documents buttons were tiny and unframed when docked, and tall frames in a view

The layout engine resets every button in its palettes to plain text (transparent border, 3px padding) and SuperCad's .sc button reset hit the app's panel once it was moved into the Properties panel, while the site's touch-size .btn-line (3 rem minimum, 17px bold) made frames in a view much taller than their label. Real buttons (btn-line, btn-plot) now keep a frame sized to the label in the layout's own text size, in both places (app-workspace.css, supercadcraft.css). Test tools/super-test/mount-ui.mjs.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.104 Link to FX.104Comment on FX.104 Layout ribbon: large tool buttons had a fixed 75px frame with about 30px empty under the label

app-workspace.css gave .ws-tool a fixed height of 4.6875rem (the "labels" mode already knew a frame should be its label's size). The frame now hugs its icon and label (about 50px). Shared by every app's ribbon. Test tools/super-test/mount-ui.mjs.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.105 Link to FX.105Comment on FX.105 SuperCad docked layout had no button to get back to the Home / welcome page

The docked title bar showed Open and Save only. An app that offers a home action (SuperCad Studio) now gets Home first in the layout's title-bar quick buttons (app-workspace.js quickIds); other apps are unchanged. Test tools/super-test/mount-ui.mjs.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.106 Link to FX.106Comment on FX.106 SuperCad panel tabs: the pop-out icon is replaced by the apps' "…" menu (move, show on its own, float, new window, hide)

Each panel tab, docked or floating, had a small pop-out icon that only tore the panel off. It now has the same "…" button the apps' panel grips have (app-workspace-popout.js menuButton), with Move to the left / middle / right / bottom (not the side it is on), Show on its own, Float in this window, Open in a new window (a real OS window), Hide this panel, and Put it back in the window for a floating one. Test tools/super-test/tab-menu.mjs.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.107 Link to FX.107Comment on FX.107 SuperCad: Teams and Team members are pages of the welcome area, not modal dialogs

A plugin can now register a PAGE (api.page / api.openPage; host.pages()) that the welcome screen shows with its own left-menu entry. Teams (menu entry) and Team members (reached from a team) are pages: no dialog, adding a team no longer drops you into the drawing space, and the Workflow buttons on the welcome page no longer leave it. The commands Teams, Team members and New team open the pages (New team puts the cursor in the name field). Tests tools/super-test/home-teams.mjs, bin/test-super-teams.mjs.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.108 Link to FX.108Comment on FX.108 SuperCad: the primary button on the welcome page (Continue SuperCad project) and other primary buttons had dark text on blue

.sc button { color: inherit } (and .sc-home button) outranked the button colours. Primary buttons now use the on-action colour (white) and the sheet colour on hover; outline buttons the action colour (supercadcraft.css). Checked by contrast in tools/super-test/home-teams.mjs.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FixFX.118 Link to FX.118Comment on FX.118 SuperCad dialogs and pages: dropdowns, text fields and notes boxes had no styling; a stray "null" showed in the Timer and the event form

Wrong: selects in the Timer, Calendar, Teams and Settings dialogs were the browser's small native control, text/date fields and notes boxes were plain white boxes (the time zone field stayed narrow), and the Timer and the calendar event form printed the word "null" where an optional field was left out (empty placeholders were passed straight to replaceChildren). Changed: one rule gives selects, text/date/number fields and textareas the same border, height, colours and focus outline; the empty placeholders are dropped before drawing; the event form's ten reminder ticks lay out in columns. Tests: home-calendar checks no stray null/undefined text in the form. Untested: browsers other than headless Chromium.

SuperCad Studio Built · Live – – SuperCad Studio, owner session 2026-11-07
FixFX.119 Link to FX.119Comment on FX.119 SuperCad Calendar: a full-page calendar in the welcome area (day, week, month, year; tasks panel; events list; .ics; search; colour and owner)

New page, left menu entry Calendar, built over the Calendar plugin's own data and editor. Day, Week, Month and Year views with Today and back/forward; calendars box (project calendar plus one per team, colour, tick to hide, scrolls); tasks panel (tasks with a due day, shown on the grid, Make event); events list for the range with a one-click .ics each; Export .ics for the ticked calendars (repeats included); search; click a day or an hour slot to add an event; events carry an optional owner (project or a team) and colour (new optional fields, older files open unchanged). Not built: drag or resize in the week view, a mini month navigator. Tests: tools/super-test/home-calendar.mjs (28). Untested: .ics in a real calendar app, phone widths on a real device. New strings are English only.

SuperCad Studio Built · Live – – SuperCad Studio, owner session 2026-11-07
FixFX.120 Link to FX.120Comment on FX.120 SuperCad Teams redesign: teams left, members right, Add people, a member's page with roles, status and activity; website Members tab to match

From the owner's design boards (dropai.zone/d/znEiRaXp). SuperCad Teams page: team cards (people, projects, invited count, project access, edit, delete) beside the picked team's members as rows (person, title and company, role, status Active/Invited/Disabled); filters, search, role filter, bulk disable/remove; Add people (people you already work with, or type an email, one card each with a role and what that role can do); a member's page (details, their teams, activity, a role and permissions table, the projects they reach); the empty state. Data and server: roles are owner/admin/member (an older Lead is read as admin); members gain joined_at, invited_by and disabled_at, people gain last_active; whoever makes a team is its owner; the last owner cannot step down, be removed or be disabled; account database schema 3 rebuilds team_members with the new check and keeps every row; new endpoint ops set_member_access, touch_active and GET ?me. Status is derived: disabled, active (has an account or is the person using this copy) or invited. Website: the team Members tab (/teams/{slug}/members) gets status pills, search and filters (progressive) and a what-each-role-can-do table; no member page or disable on the website yet (accounts have no such model). Tests: test-super-teams 291, test-user-teams 93, test-teams 145, home-teams 29. Not done: the file-format spec page (supercad-file-format-0.1.html) still lists the old team_members columns; last active is only recorded for the person using the copy; not run against the live account database or a signed-in device.

SuperCad Studio Built · Live – – SuperCad Studio, owner session 2026-11-07
FixFX.123 Link to FX.123Comment on FX.123 SuperCad Teams: Resend invite, a join code for when email fails, Join with a code (app and /join-team), role changes behind an Apply button

Wrong: the Add people screen said an invited person 'gets an email invite' but nothing was sent, there was no way to resend, and no way to join if the email failed. Changed: TeamJoin (service) makes a 12-character code per invited member (only its sha256 is stored, table team_join_codes, migration 128, 14 days), emails it (Mailer::teamJoinCode, branded) and shows it once on the inviter's screen with Copy, so it can be handed over when email misbehaves; Resend invite makes a new code and the old one stops working. The invited person joins by entering the code AND their email address at /join-team or with Join with a code on the Teams page; they must be signed in with that verified address; the member's row then links to their account and shows Active. Wrong tries are throttled per person (8 / 10 min); a wrong guess never says which part was wrong. Send invite needs a signed-in account and syncs first. Also: a member page's role changes wait for Apply (on only when the pick differs, Undo to go back); the Sync status headings have air above them. Tests: test-user-teams 110, test-super-teams 304, home-teams 31. Untested: a real email through Brevo to a real address, the page with a real signed-in browser session. Not done: the table's role select still changes at once; the migration runner stops at an older migration (country column) so 128 was created from schema.sql; other-language strings.

SuperCad Studio Built · Live – – SuperCad Studio, owner session 2026-11-07
FixFX.124 Link to FX.124Comment on FX.124 SuperCad Home: New project is a setup page, not a confirm and prompt; cancelling Open file no longer closes Home

Wrong: New on Home used the browser's confirm and prompt (an alert saying the open project has files), Open file left Home the moment it was clicked so a cancelled pick dropped you into the drawing space, and the 'No projects opened or saved' line was squeezed into one card column. Changed: New opens a New project page on Home (super-newproject.js): name, description, what it is for (design, documentation, estimate, review, study, other), client, team (from the Teams plugin), start and due dates (a due before the start is refused), length unit and keep-earlier-versions, with a notice and Save first when the open project has files. The details are stored in the project (new optional info block in Data/manifest.json; older files open with empty details; cleanInfo validates days and intent). Open any file, open folder and open project file leave Home only after something really opened. The empty-projects line spans the row. Tests: home-actions 19, test-super-core 137, test-super-home 22. Untested: the page on a phone, a real file pick on every browser. Not done: the chosen team is recorded on the project but not given project access (that is still done on the Teams page); the intent and dates are not shown on the Home project card yet; strings English only; the file-format spec page does not list info.

SuperCad Studio Built · Live – – SuperCad Studio, owner session 2026-11-07
FixFX.128 Link to FX.128Comment on FX.128 Team member pictures: built-in defaults, upload, change

SuperCad Teams member page showed only a letter in a circle. A person now has a picture: the default is their initials on a colour, or one of 12 built-in pictures in 8 colours, or an uploaded image (cut to a 128 px square in the page, kept under 24 KB). Change it under Details > Edit. Stored on the person row (people.avatar, account DB schema 4), synced like title and company; the server and the plug-in both refuse anything that is not a built-in or a small png/jpeg/webp. Tests added (teams 310, user-teams 116). Not done: the account's own profile picture is not used as the default; no website member page picture; other-language strings still English; never opened in a real browser window.

SuperCad Studio Built · Live 0.2 –
FixFX.129 Link to FX.129Comment on FX.129 Teams page flashed an empty list for about 1.5 s before the members appeared

On a fresh load the Teams page drew its empty states until the account connected and the first sync brought the rows in. Now the page says 'Loading your teams (N teams, N people)' with a spinner while the first sync of the visit is pending. Where the count comes from, in order: (1) the account itself: app-shell.inc prints #cc-account-hints {teams:{teams,people}} for the signed-in person on /lab/supercadcraft (UserTeams::hint: two counts, never creates a database), so it works in a browser that has never synced; (2) otherwise a marker this browser kept at its last good sync. A hint of none wins over an older marker. It gives up after 15 s and tells the truth (empty, or the sync error); an account with no teams sees the empty state at once. Tests: teams 321, user-teams 118. Not done: the rows themselves are not cached locally; the hint is only printed for signed-in site sessions (a device-token-only window falls back to the browser marker); never opened in a real browser window.

SuperCad Studio Built · Live 0.1 –
Library 8
FeatureATTR.1 Link to ATTR.1Comment on ATTR.1 SuperCad Studio: project report binder with an automatic credits page

Owner 2026-11-03: 'a project report binder, where all the documents go, calculations, notes, etc., and add a credits page.' Built in the lab as the report-binder plugin (Workflow menu, Ctrl+K, Report and price strip): one PDF with a cover and contents, calculations, notes, tasks, optional time and calendar, documents, and always a Credits page, stamped with page numbers, saved in Documentation and downloaded. Credits come from saved IFC and DXF files and from open CadCraft panels (lib/report/credits.js); a closed DWG is listed as not checked. Engineer calculation reports file themselves in the project. Other files are named as not included. Not built: the binder in the Finalize and export zip, other apps' calc sheets filing themselves, bookmarks, a credits table on a sheet in CadCraft and BimCraft. Other scripts print as ? in typeset pages. Tests: bin/test-super-binder.mjs, tools/super-test/binder.mjs. Not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03, library item page
FeatureATTR.2 Link to ATTR.2Comment on ATTR.2 SuperCad Studio: tick what goes in the Finalize and export zip

Owner 2026-11-03. The export dialog has a 'Project documents in the zip' list under the formats: Project file, Notes, Tasks, Time log, Calendar events, Project report binder, Credits page, Documentation folder. Plugins offer items through api.exportItem. The binder is ticked the first time, the rest are not; ticks are remembered in this browser. They go in documents/ and contents.txt names anything that had nothing to add. CC0 items stay on the credits page. Tests: bin/test-super-binder.mjs, tools/super-test/binder.mjs. In /lab, not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.3 Link to ATTR.3Comment on ATTR.3 Report binder: choose the section for each document

Owner 2026-11-03. Each document in the binder dialog has a section picker (Calculations or Documents), kept in the project. Until someone picks, the guess uses who made it (Engineer), the name (calc, calculation, data sheet, analysis, sizing) and the text (an engineer-of-record line). Only those two document sections exist; no sections of your own. Tests: bin/test-super-binder.mjs, tools/super-test/binder.mjs. In /lab, not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.4 Link to ATTR.4Comment on ATTR.4 Report binder: Unicode text, Arabic and Hebrew right to left

Owner 2026-11-03. Typed pages now embed a subset font only when the text needs one: Latin extended, Greek and Cyrillic (Liberation Sans), Arabic, Hebrew, Armenian and Georgian (DejaVu Sans, newly vendored in assets/vendor/rtl-sans), Thai, and Chinese, Japanese and Korean (10 MB, fetched on first need). Arabic letters join and right-to-left lines are ordered with numbers and Latin kept in order (lib/report/bidi.js, a simplified bidi, no bidi control characters). Limits: Devanagari and other Indic scripts have no font or shaper, so they still print as ? and are counted; those stretches print regular, never bold or italic; text copied from Arabic pages comes out as presentation forms in visual order; the page stamp leaves off a project name it cannot print. A font that fails to load prints ? and the dialog says so. Checked by eye on one rendered page, not by a native reader. In /lab, not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.5 Link to ATTR.5Comment on ATTR.5 Report binder: clickable contents and PDF bookmarks

Owner 2026-11-03. Each contents row on the cover links to its page, and the PDF has bookmarks by section with the documents under them. Read back with pdf.js. A merged PDF's own bookmarks are not kept. MarkupCraft's writeOutline moved to lib/report/outline.js. In /lab, not released.

MarkupCraftSuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.6 Link to ATTR.6Comment on ATTR.6 One shared PDF text kit: BimCraft and CadCraft use lib/report

Owner 2026-11-03. lib/report is now the only copy: BimCraft's a Discord member-pdf.js and Markdown parser and CadCraft's pdf-font.js are thin wrappers over synced a Discord member/report copies (tools/report/sync.mjs; tools/engineer/sync.mjs for PartCraft and SuperCad Studio). BimCraft's PDFs still print with the built-in fonts only; passing fonts would give it Unicode too, not done. Tests pass: bin/test-bimcraft.mjs --sx-tags --only docs (48), --regs (151), bin/test-cadcraft.mjs (2773), bin/test-markupcraft.mjs (564). In /lab, not released.

CadCraftBimCraftMarkupCraftSuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
MarkupCraft 1
FeatureNOTES.1 Link to NOTES.1Comment on NOTES.1 Pasteboard, show/hide notes and private notes

From a Discord member on Discord (keeps scratch notes and snapshots beside the sheet so they never reach the client). Built in /lab 2026-11-03, not released. Pasteboard: the area around each sheet holds notes and picture snapshots at paper size; nothing on it prints. Notes: any markup can be a note, shown or hidden with Shift+H or the bar switch, kept out of print, flattened copies, exports and other PDF readers. Private notes: encrypted with the writer's own passphrase (no recovery), not sent to Live, assistants or the clipboard; colleagues' saves carry them untouched and nothing tells them one exists. Save a clean copy removes all of it. **SuperCad Studio:** private notes are encrypted files in the project's Documentation/Private notes, never in the PDF, not even sealed, and are left out of the report binder, document exports, Finalize and export and Email this. **Untested:** a real large vector set, a desktop build, a real two-person Live session. Tests: 70, 38 and 27 passed. Log docs/0.9-sessions/notes-pasteboard-09.md.

MarkupCraftSuperCad Studio Built · Live – – From: Discord community (Discord) Discord 2026-11-03
Wall tool 4
FeatureWT.2 Link to WT.2Comment on WT.2 Wall tool, Draw: rectangle, rotated rectangle, polygon, arc by centre, tangent arc, pick one line, trace outline

Wall tool spec pages 4-8 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Icons: the DU.1 family (assets/js/app-workspace-icons.js: 32 grid, 1.5 round stroke, two-tone fills, Full Color or Outline). Not built (page 5): Rectangle (four walls, four corner joins, one action), Rotated rectangle, Polygon (inscribed / circumscribed), Arc by centre (centre, radius, sweep), Tangent arc (continues from the last segment), Pick lines (one line or edge at a time; Tab picks the chain; today only a whole DWG / DXF / PDF scan), Trace outline (click inside a closed area; today only 'Develop this mass'). Each is a recipe on the Place block (addWall, Wall tool, model-trace.js) ending in the join solver (FX.60); the Shape list on the Wall button holds the shapes. Icons: wallrect, wallrectrot, wallpoly, wallarcc, walltan, wallpick, walltrace. OTHER APPS: CadCraft already has rectangle and polygon as drawing tools but not as walls with joined corners: its plan walls (FX.59) should get the same recipes from one shared place. Not started. walls-09 2026-11-06 (done): Built in /lab: Wall › Shape list and the new Shapes menu (DU.1 icons wallrect, wallrectrot, wallpoly, wallarcc, walltan, wallpick, walltrace; commands wall.rect ... wall.trace): rectangle (four walls, four L joins, one undo step), rotated rectangle, polygon inscribed / circumscribed (3-64 sides), ar... see docs/0.9-sessions/walls-09.md. walls-plan-09 2026-11-06 (done): CadCraft plan walls: rectangle, rotated rectangle, polygon, arc (as 15 degree chords: plan walls are straight), tangent arc, pick lines, trace outline as WALLRECT, WALLROT, WALLPOLY, WALLARC, WALLTAN, WALLPICK, WALLTRACE, same gestures as RECTANG and POLYGON, one undo step each, corners joined. One ... see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.2-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (pages 4-8)
FeatureWT.3 Link to WT.3Comment on WT.3 Wall tool, Set and Modify: placement offset, join on/off, edit by dimension, offset wall, box stretch, align and lock, lock dimension

Wall tool spec pages 4-8 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Icons: the DU.1 family (assets/js/app-workspace-icons.js: 32 grid, 1.5 round stroke, two-tone fills, Full Color or Outline). Pages 5-6. Partly or not built: Placement offset (a free distance off the picked line; today half a thickness), Join on / off (free-standing wall; today joins are always automatic), Edit by dimension (type a value: the selected wall moves, the reference holds; today typing does not move a wall: FX.58 / spec test 4), Offset wall (neighbours stretch), Box stretch (ends inside a marquee move, walls crossing it stretch), Align and lock (padlock holds the alignment), Lock dimension (a locked dimension holds through later edits). The last two are the new Hold block (wall-dimensions.js is the base: dimensions already know which face they measure). Icons: wallplace, walljoinsw, walleditdim, walloffset, wallbox, wallalignlock, walllockdim. OTHER APPS: CadCraft plan walls and dimensions want Hold too (it is the Revit padlock); build it once for both. Not started. walls-09 2026-11-06 (done): Built in /lab: placement offset and Join on/off in the Wall row (Wall tool and shapes); edit by dimension (type the value in a reference dimension's Properties: the second reference's wall moves square, the first holds; spec test 4 Pass); Offset (move or Copy); Box stretch; the Hold block (lib/walls... see docs/0.9-sessions/walls-09.md. walls-plan-09 2026-11-06 (done): CadCraft plan walls: placement offset and Join off in WALL (O, D), edit by dimension (WALLDIM), Offset (WALLOFFSET, Copy), box stretch (WALLSTRETCH), and the Hold block (WALLHOLD align and lock, WALLHOLDDIM, WALLUNHOLD, WALLHOLDS): stored on the wall, kept by moving the other side, refused with the ... see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.3-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (pages 4-8)
FeatureWT.4 Link to WT.4Comment on WT.4 Wall tool, Cut: split, split with gap, delete segment

Wall tool spec pages 4-8 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Icons: the DU.1 family (assets/js/app-workspace-icons.js: 32 grid, 1.5 round stroke, two-tone fills, Full Color or Outline). Page 6-7. Not built (BimCraft's own help lists Split as not built): Split at a point or crossing wall (the two parts stay joined end to end, same type; decision D2 is whether they stay joined in line or become free ends), Split with gap (a set gap; rejoin restores one wall), Delete segment (remove the piece between two clicks). Spec test 6. Cut block today is model-trim.js (trim, extend, corner: Built). Icons: wallsplit, wallsplitgap, walldelseg. OTHER APPS: CadCraft plan walls have no Split either (FX.59 assessment); shared recipe. Not started. walls-09 2026-11-06: Built in /lab: Edit › Walls › Split (at the click or a crossing wall; Gap; Free ends), Delete segment, Rejoin (one wall again, the first keeps its id). Doors and windows go with their part, a cut through one is refused, reference dimensions follow their point. D2 default: the parts stay joined in line (Settings › BimCraft › Walls › When a wall is split: joined | free ends). Spec test 6 Pass (node and real page). Recipes in lib/walls (host-free; copied to bimcraft/a Discord member/walls by tools/walls/sync.mjs), BimCraft adapter wall-tools.js + wall-tools-ui.js. Tests: node lib/walls/test/test.mjs (59/0, known answers worked out in the file), node bin/test-bimcraft.mjs --walltools (all ok, incl. the spec's nine tests: all Pass), real page tools/bimcraft-test/browser-walltools.mjs 33/0. Help: wall-tools (en). NOT done: CadCraft, SuperCad adapter, hand check (WT.4-HAND). walls-plan-09 2026-11-06 (done): see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.4-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (pages 4-8)
FeatureWT.7 Link to WT.7Comment on WT.7 Wall + Grid: lock walls to grid lines so they move with the grid

Wall tool spec page 9, 'How other tools combine with the wall' (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Code checked in the a Discord member source 2026-11-05. Spec: snap walls to grid lines and lock them; move a grid line and its walls move with it (Hold -> Place in space -> Join solver; today Partly). Today (model-grids.js): grids are drawn, IfcGrid lines from other programs are read for display and snapping only; walls snap to them while drawing but nothing remembers the link, so moving a grid line moves no wall. Wanted: a wall end or location line can be locked to a grid line (the Hold block, with WT.3 Lock), moving the grid runs the join solver. OTHER APPS: CadCraft has grids too; build the lock once. Not started. walls-09 2026-11-06: Built in /lab: Properties › Lock to grid (a wall along a grid line, or an end on one), stored with the Hold block; Grid tool › pick a line › Move by (new: the UI could not move a grid line before) moves the line and the locked walls follow with their joined walls, one undo step; renaming keeps the lock, deleting the line drops it; moving a locked wall off its line is refused; a turned line that cannot keep the lock is refused. Recipes in lib/walls (host-free; copied to bimcraft/a Discord member/walls by tools/walls/sync.mjs), BimCraft adapter wall-tools.js + wall-tools-ui.js. Tests: node lib/walls/test/test.mjs (59/0, known answers worked out in the file), node bin/test-bimcraft.mjs --walltools (all ok, incl. the spec's nine tests: all Pass), real page tools/bimcraft-test/browser-walltools.mjs 33/0. Help: wall-tools (en). NOT done: CadCraft grids, SuperCad adapter, hand check (WT.7-HAND). walls-plan-09 2026-11-06 (done): see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.7-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 9)
SuperCad Studio 2
FeatureSCF.4 Link to SCF.4Comment on SCF.4 Last-writer rules for synced rows: newest wins, a content tie-break, a clock guard, three-way merge and kept replaced edits

super-merge.js and RowMerge.php share test vectors. Newest wins including deletions; an exact tie is decided by content so every copy agrees; a row more than five minutes ahead is refused; a device keeps the last synced row and merges different fields of one row; an unsynced edit that lost is kept with Restore. Server merges stay whole-row; the client merges before it pushes.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FeatureSCF.5 Link to SCF.5Comment on SCF.5 Sync status in the SuperCad window and the Lab: status line, Sync status dialog, /lab/sync

Status line item (works in Desktop, same page), the dialog comparing this device with the account per table plus queue, refusals and a log, automatic sync, GET /api/v1/team/teams?stats=1, and /lab/sync for lab testers. Seen working in a real browser against the real server.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
Suggest an item

Anyone can send one; no account and no name needed. The team reads each idea, and the ones we take on appear on this page. Please leave out web addresses.