| Date | Message | Author |
| 2026-09-24 | feat: the viewport menu sets the display mode — wireframe, flat or smooth shading, polygon opacity | Lucas Galante |
| 2026-09-24 | feat: the Alt+D dialog compresses its backdrop harder than the panes | Lucas Galante |
| 2026-09-24 | feat: Ctrl+Up rewinds the playbar to the start frame and pauses it | Lucas Galante |
| 2026-09-24 | feat: the settings are rows of the command palette, with a Group Marker Scale row | Lucas Galante |
| 2026-09-24 | fix: point markers wind outward, so the fill's back-face cull no longer hides them | Lucas Galante |
| 2026-09-24 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-24 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-24 | feat: the wrangle's Code row applies on ctrl+enter, and a script error flags its line | Lucas Galante |
| 2026-09-24 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-24 | feat: the Collision test runs on the GPU — the second Phase 7 step 4 operator | Lucas Galante |
| 2026-09-24 | feat: Relax's Springs mode runs on the GPU — the first Phase 7 step 4 operator | Lucas Galante |
| 2026-09-24 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-24 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-24 | docs(shapeshifter): Phase 7 step 4 started — the compute-job API is in cce-ui | Lucas Galante |
| 2026-09-24 | feat: retire OpenCL and both kernel backends | Lucas Galante |
| 2026-09-24 | feat: Sphere, Box, Plane and Extrude are native nodes, not kernel subnets | Lucas Galante |
| 2026-09-24 | fix: a code parameter never becomes an expression | Lucas Galante |
| 2026-09-24 | feat: the wrangle node — a Rhai script run once per element | Lucas Galante |
| 2026-09-24 | refactor: TreeScope is public, with a constructor, for the wrangle's ch() | Lucas Galante |
| 2026-09-24 | docs(shapeshifter): Phase 7 step 2 — expr.rs stays for parameters, Rhai is the wrangle only | Lucas Galante |
| 2026-09-24 | feat: parameter expressions — ch() references by path, arithmetic, and the row menu | Lucas Galante |
| 2026-09-24 | docs(shapeshifter): Phase 7 — the scripting layer, and compute through the renderer | Lucas Galante |
| 2026-09-24 | fix: the viewport's wheel orbits the camera that is actually active | Lucas Galante |
| 2026-09-24 | fix: a merged-in parameter lands at the template's position, not the end | Lucas Galante |
| 2026-09-24 | feat: the Sphere has a Method dropdown — UV, Icosphere, Cube | Lucas Galante |
| 2026-09-24 | fix: Frame All fits the node labels, not just the bodies | Lucas Galante |
| 2026-09-23 | refactor: retire the root meta node; settings are settings, not nodes | Lucas Galante |
| 2026-09-23 | refactor: the point overlays are a view setting, not a node property | Lucas Galante |
| 2026-09-23 | fix: the OpenCL ICD was corrupting unrelated file descriptors | Lucas Galante |
| 2026-09-23 | test: refuse source that builds a path the user owns | Lucas Galante |
| 2026-09-23 | fix: the last two test temp dirs are scoped to the process | Lucas Galante |
| 2026-09-23 | fix: the grid tests run on a lattice of their own, not the machine's | Lucas Galante |
| 2026-09-23 | fix: cargo test no longer overwrites the user's own settings | Lucas Galante |
| 2026-09-23 | fix: a default project that is missing at launch is not forgotten | Lucas Galante |
| 2026-09-23 | feat: the palette heads with the open project's path | Lucas Galante |
| 2026-09-23 | feat: dragging a selected node carries the whole selection | Lucas Galante |
| 2026-09-23 | feat: an expansion drag settles onto what it caught | Lucas Galante |
| 2026-09-23 | feat: shift+hjkl extends the network selection | Lucas Galante |
| 2026-09-22 | feat: the expanded cursor selects every node inside it | Lucas Galante |
| 2026-09-22 | feat: the network grid cursor expands by dragging | Lucas Galante |
| 2026-09-22 | feat: the network editor right-clicks to a context menu | Lucas Galante |
| 2026-09-22 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-22 | feat: get_state reports the network grid geometry | Lucas Galante |
| 2026-09-22 | fix: the palette's zoom band runs out to the chord column's edge | Lucas Galante |
| 2026-09-22 | fix: context menu rows resolve through the toolkit's PAD-aware row_at | Lucas Galante |
| 2026-09-22 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-22 | fix: the dialog owns right presses while it is open | Lucas Galante |
| 2026-09-22 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-22 | feat: the wheel turns the palette's zoom slider | Lucas Galante |
| 2026-09-22 | feat: a zoom slider row heads the Commands list while the network pane is focused | Lucas Galante |
| 2026-09-22 | feat: the node body has its own size; the grid pitch only places it | Lucas Galante |
| 2026-09-22 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-22 | feat: the network grid has one size per axis, and nodes sit on its crossings | Lucas Galante |
| 2026-09-22 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-22 | feat: the Embryo is a template of nodes; hull node, Scatter Surface mode, Relax Repel mode | Lucas Galante |
| 2026-09-21 | fix: a kernel's parent-parameter fallback reads the parent resolved | Lucas Galante |
| 2026-09-21 | feat: parameter references, sibling-first inputs, and a Switch node | Lucas Galante |
| 2026-09-21 | fix: dived into a simnet, visible children draw as the current step sees them | Lucas Galante |
| 2026-09-21 | feat: node names are lowercase, as Houdini's are | Lucas Galante |
| 2026-09-21 | feat: node names carry no whitespace | Lucas Galante |
| 2026-09-21 | fix: Show Cube, Show Grid, Show Origin and Circular Pane survive the next parameter edit | Lucas Galante |
| 2026-09-21 | feat: the Embryo node, ported from hou-control's developer_embryo | Lucas Galante |
| 2026-09-21 | feat: Plane gains the same Color toggle as the Sphere | Lucas Galante |
| 2026-09-21 | feat: Sphere gains a Color toggle | Lucas Galante |
| 2026-09-21 | fix: a press on the spreadsheet's column header sorts the column, not the camera | Lucas Galante |
| 2026-09-21 | feat: dialog Commands rows draw switches for toggle commands, and flip in place | Lucas Galante |
| 2026-09-21 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-21 | Wireframe: setting a wire colour turns single-colour mode on | Lucas Galante |
| 2026-09-21 | Scene file: the viewport settings load from the file, and the Default Camera view is saved | Lucas Galante |
| 2026-09-21 | Frame All: centre the Default Camera view on the geometry, not the origin | Lucas Galante |
| 2026-09-21 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-21 | Pin workspace dependencies to GitHub, the crates' origin | Lucas Galante |
| 2026-09-21 | Settings: Wireframe Single Color beside Wireframe Color | Lucas Galante |
| 2026-09-21 | Dialog list: cce-mail's scrollbar — sink-behind pills on the plate's centre line | Lucas Galante |
| 2026-09-21 | Command palette: Wireframe Color, a row that previews the colour and lands on Settings | Lucas Galante |
| 2026-09-21 | Command palette: toggle_wireframe, the Render node's Show Wireframe as a command | Lucas Galante |
| 2026-09-21 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-21 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Dialog: note the scroll gesture before dispatching a wheel to a pane | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Dialog: set_page re-clamps the scroll instead of snapping to the selection | Lucas Galante |
| 2026-09-20 | Sync parameters to the project only when a tick changed a value | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Dialog: the commands list scrolls in pixels through the DE scroll model | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Node bodies get their own backdrop compression (graph node_compression) | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Network pane: stop painting the graph's own background over the plate | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Network pane: the grid is flat lines again (paint_grid) | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Network pane: carve the grid relief into the plate before the wires | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | The network plate is the pane material verbatim, not scaled by the fade | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Repin workspace dependencies to their published revs | Lucas Galante |
| 2026-09-20 | Plates, bevels and drops are emitted with a Material (cce-ui RFC material, step 2b) | Lucas Galante |
| 2026-09-20 | PlateSpec carries a Material (cce-ui RFC material, step 2a) | Lucas Galante |
| 2026-09-20 | scratch: drop two captured test-error logs | Lucas Galante |
| 2026-09-19 | Depend on cce-ui through git.lucas.co, so this crate builds alone | Lucas Galante |
| 2026-09-19 | refactor: retire the cce-cloud popups; every picker is the plate dialog | Lucas Galante |
| 2026-09-19 | feat: an Alt+D dialog that runs commands and edits the display settings | Lucas Galante |
| 2026-09-19 | test: move the CLAUDE.md size check out of src/, where it counted itself | Lucas Galante |
| 2026-09-19 | test: fail when CLAUDE.md's line-count figures drift from the source | Lucas Galante |
| 2026-09-19 | docs: app.rs is ~8k lines; install delegates to ccebuild | Lucas Galante |
| 2026-09-19 | test(geometry): a node type with no resolver cannot pass silently again | Lucas Galante |
| 2026-09-19 | feat(mold): GEM Mold Shell, thickness driven by curvature | Lucas Galante |
| 2026-09-19 | docs(page): verify the reconnect fix, and record how | Lucas Galante |
| 2026-09-19 | feat(network): Escape deselects, and the deselect sticks | Lucas Galante |
| 2026-09-19 | feat(viewport): dragging empty scene orbits the camera | Lucas Galante |
| 2026-09-19 | fix(page): drop the page image when the renderer is replaced | Lucas Galante |
| 2026-09-19 | feat(network): the overlay spans the window, and routes by what it draws | Lucas Galante |
| 2026-09-19 | feat(network): the plate is optional, so the graph can overlay the scene | Lucas Galante |
| 2026-09-19 | feat(network): auto-layout, as a layered assignment on the existing grid | Lucas Galante |
| 2026-09-19 | feat(network): keyboard graph navigation, as the plugin's own scheme | Lucas Galante |
| 2026-09-18 | feat(viewer-state): a framework, proven by a second tool that is not a curve | Lucas Galante |
| 2026-09-18 | feat(commands): one registry, so a command can be found, bound and run | Lucas Galante |
| 2026-09-18 | feat(page): a 2D page context, so the COP family has somewhere to live | Lucas Galante |
| 2026-09-18 | feat(volume): signed distance fields, so shelling and booleans are possible | Lucas Galante |
| 2026-09-18 | fix(export): borrow the target node, do not clone it | Lucas Galante |
| 2026-09-18 | feat(export): STL and OBJ, so the work can leave the app | Lucas Galante |
| 2026-09-18 | feat(phase4): a native grid, and one polygon for four create operators | Lucas Galante |
| 2026-09-18 | feat(params): rows that appear only when they apply | Lucas Galante |
| 2026-09-18 | feat(phase4): transfer, valence and deform | Lucas Galante |
| 2026-09-18 | feat(phase4): copy, soft transform, selection by attribute, and bare points | Lucas Galante |
| 2026-09-18 | feat(phase4): normal, bounds, distance, connectivity and cull | Lucas Galante |
| 2026-09-18 | feat(subdivide): four triangles where there was one | Lucas Galante |
| 2026-09-18 | feat(phase3): collision, and the spatial index three operators wanted | Lucas Galante |
| 2026-09-18 | feat(phase3): develop, an incremental remesher, and a winding fix underneath both | Lucas Galante |
| 2026-09-18 | feat(simnet): an explicit seed frame, and a disk cache that survives a restart | Lucas Galante |
| 2026-09-18 | feat(simnet): substeps, and a dt the chain can scale by | Lucas Galante |
| 2026-09-18 | feat(visualize): a simulation you can look at | Lucas Galante |
| 2026-09-18 | feat(simnet): live and derivative data, declared and enforced at the step boundary | Lucas Galante |
| 2026-09-18 | fix: context menu labels in the menu font | Lucas Galante |
| 2026-09-18 | feat(neighbour): Align and Lead steer directions; Charge is a proposal | Lucas Galante |
| 2026-09-18 | feat(attribute): the attribute vocabulary — remap, clip, normalize, composite, promote, analysis, time | Lucas Galante |
| 2026-09-18 | feat(neighbour): one node for Diffuse, Concentrate, Migrate and Bleed | Lucas Galante |
| 2026-09-18 | feat(kernel): deformers run over points and bind named attributes | Lucas Galante |
| 2026-09-18 | feat(detail): the pipeline's currency is a Detail | Lucas Galante |
| 2026-09-18 | feat(detail): the native generators build real geometry | Lucas Galante |
| 2026-09-18 | feat(detail): points, vertices, primitives and detail — the Phase 0 container | Lucas Galante |
| 2026-09-18 | docs: a proposal for porting the Shapeshifter toolsets into the designer | Lucas Galante |
| 2026-09-11 | idle_poll_interval: tick polls a channel the runner cannot see | Lucas Galante |
| 2026-09-09 | feat(viewport): a declared world unit, a scale readout, and View 1:1 | Lucas Galante |
| 2026-09-08 | feat(playbar): the timeline is a band | Lucas Galante |
| 2026-09-06 | Rename the internal backplate vocabulary to root plate (cce-ui RFC 7a-4) | Lucas Galante |
| 2026-09-06 | fix(title): a plate resize, collapse or re-dock dirties the title | Lucas Galante |
| 2026-09-06 | feat(project): save plate sizes and positions in the view state | Lucas Galante |
| 2026-09-04 | refactor(scroll): let the Graph glide and coast the pan, drop the app-side kinetic model | Lucas Galante |
| 2026-09-03 | refactor: curve viewer state undo rides the toolkit's History and routing | Lucas Galante |
| 2026-09-03 | feat: undo/redo in the curve viewer state | Lucas Galante |
| 2026-09-02 | feat: rename the Add node to Points, with a Shape dropdown | Lucas Galante |
| 2026-09-02 | feat: added nodes start with their display flag off | Lucas Galante |
| 2026-09-02 | feat: exclusive per-directory geometry visibility (display-flag semantics) | Lucas Galante |
| 2026-09-01 | feat: curve_set_points MCP action | Lucas Galante |
| 2026-09-01 | docs: the curve viewer state and the pattern it sets for future ones | Lucas Galante |
| 2026-09-01 | feat: native variable-point Curve node with a viewer state for point editing | Lucas Galante |
| 2026-09-01 | feat: Curve node — cubic Bézier strip from four control points | Lucas Galante |
| 2026-09-01 | feat: the parameters pane and spreadsheet can pin to one editor | Lucas Galante |
| 2026-09-01 | feat: the viewport can pin to one editor | Lucas Galante |
| 2026-09-01 | feat: the viewport follows the active editor's level | Lucas Galante |
| 2026-09-01 | feat: the spreadsheet follows selection in either editor | Lucas Galante |
| 2026-09-01 | feat: the parameters pane follows selection in either editor | Lucas Galante |
| 2026-09-01 | feat: tab and pane state ride save files completely | Lucas Galante |
| 2026-09-01 | fix: the fronted second network editor wears the focus ring | Lucas Galante |
| 2026-09-01 | feat: the Add Tab page carries a Back row | Lucas Galante |
| 2026-09-01 | feat: Add Tab is a page, not a row per candidate | Lucas Galante |
| 2026-09-01 | feat: the plate menu's tab section is a radio group | Lucas Galante |
| 2026-09-01 | feat: the plate corner menu groups its rows with separators | Lucas Galante |
| 2026-09-01 | feat: a second network editor, opened as a tab | Lucas Galante |
| 2026-08-31 | feat: plates support tabs, managed through the corner menus | Lucas Galante |
| 2026-08-31 | fix: context menus draw as the toolkit's frosted plate | Lucas Galante |
| 2026-08-30 | fix: Escape closes an open context menu before cancelling a connection | Lucas Galante |
| 2026-08-30 | feat: consume the graph's wire-splice drop | Lucas Galante |
| 2026-08-30 | feat: the Collision node marks contact as a group | Lucas Galante |
| 2026-08-28 | fix: the network breadcrumb floats clear of the plate's edge | Lucas Galante |
| 2026-08-28 | feat: the network breadcrumb floats in front of the plate | Lucas Galante |
| 2026-08-28 | fix: the node View toggle is project data | Lucas Galante |
| 2026-08-28 | docs: McpAction, and glyphon is not a dependency here | Lucas Galante |
| 2026-08-27 | fix: the scene viewer lip is the window-edge roll overlay | Lucas Galante |
| 2026-08-27 | fix: the scene viewer lip rolls at the window-edge width | Lucas Galante |
| 2026-08-27 | fix: the network cursor traces the DE corner shape | Lucas Galante |
| 2026-08-27 | feat: the network cursor is the focus glint | Lucas Galante |
| 2026-08-26 | refactor: the drop-target glow is one Prim::Glow | Lucas Galante |
| 2026-08-26 | feat: the drop-target glow is an animated vignette | Lucas Galante |
| 2026-08-26 | feat: uniform network background; drop-target cell glows during drags | Lucas Galante |
| 2026-08-26 | fix: a transport press while playing always pauses | Lucas Galante |
| 2026-08-26 | feat: Down arrow plays the timeline in reverse | Lucas Galante |
| 2026-08-26 | fix: the sphere template winds CCW-outward — the raster ball was inside-out | Lucas Galante |
| 2026-08-26 | feat: the graph fills the network plate; the breadcrumb floats over it | Lucas Galante |
| 2026-08-26 | docs: spreadsheet pane is a subtree painter now (cce-ui@f1cd939) | Lucas Galante |
| 2026-08-26 | refactor: the spreadsheet pane paints through its widget | Lucas Galante |
| 2026-08-26 | refactor: the params pane paints through its widget (cce-ui paint_ui) | Lucas Galante |
| 2026-08-26 | fix: the breadcrumb paints through its widget (the cce-ui restyle shows) | Lucas Galante |
| 2026-08-26 | feat: pane state persists in project saves | Lucas Galante |
| 2026-08-26 | feat: expose playbar state in MCP get_state | Lucas Galante |
| 2026-08-26 | feat: arrow-key playbar transport in every context | Lucas Galante |
| 2026-08-26 | feat: random group selection and a Relax tissue solver | Lucas Galante |
| 2026-08-26 | feat: interior display for simnets and pass-through subnets | Lucas Galante |
| 2026-08-25 | feat: viewport shows only the network editor's current level | Lucas Galante |
| 2026-08-25 | refactor: corner dots draw via plate_dock::draw_corner_dot (7c-2) | Lucas Galante |
| 2026-08-25 | refactor: plate corner delegates to cce_ui::widget::plate_dock (7c-1) | Lucas Galante |
| 2026-08-25 | refactor: pane_plate_radii delegates to PlateSpec (cce-ui 7b-1) | Lucas Galante |
| 2026-08-25 | chore: root_plate_corner_radius — 7a-2 caller migration (vk-smoke) | Lucas Galante |
| 2026-08-25 | feat: attribute/group pickers on the param pane (textpick rows) | Lucas Galante |
| 2026-08-25 | feat: Guides Point Marker Color | Lucas Galante |
| 2026-08-25 | feat: meta Point Normals — per-node normal whiskers | Lucas Galante |
| 2026-08-25 | feat: Session becomes the root meta node; Guides gains Point Marker Size | Lucas Galante |
| 2026-08-25 | feat: meta Wireframe — per-node wire overlay | Lucas Galante |
| 2026-08-25 | feat: the meta node — per-node preferences, with point markers and numbers | Lucas Galante |
| 2026-08-25 | feat: Plane Center controls + resolution-control coverage | Lucas Galante |
| 2026-08-25 | docs: the loader's template-evolution merge in CLAUDE.md | Lucas Galante |
| 2026-08-25 | feat: loader merges template evolution into saved instances | Lucas Galante |
| 2026-08-25 | feat: Sphere construction controls — Rows, Columns, Center | Lucas Galante |
| 2026-08-25 | fix: Scatter evaluates when dispatched — drop the double cycle guard | Lucas Galante |
| 2026-08-25 | feat: the Attribute node — create, modify, and delete vertex attributes | Lucas Galante |
| 2026-08-25 | feat: selecting a Group node marks its member points in the viewport | Lucas Galante |
| 2026-08-24 | fix: give the remaining MCP actions the syncs the interactive tail provides | Lucas Galante |
| 2026-08-24 | fix: MCP select refreshes the spreadsheet pane like a click does | Lucas Galante |
| 2026-08-24 | feat: dragging a plate's corner dot repositions it — dock swap | Lucas Galante |
| 2026-08-24 | feat: adjust the pane layout by dragging the corner dots; spreadsheet Full Width | Lucas Galante |
| 2026-08-24 | render: the plate corner triggers are solid dots | Lucas Galante |
| 2026-08-24 | fix: picking a recent file no longer also fires the Open action | Lucas Galante |
| 2026-08-24 | feat: Ctrl+Shift+S = Save As; Shift+letter chords actually match | Lucas Galante |
| 2026-08-24 | feat: the Session node — one permanent root container for session settings | Lucas Galante |
| 2026-08-24 | feat: CPU reference backend for node kernels | Lucas Galante |
| 2026-08-23 | fix: file choosers open at the loaded project's directory | Lucas Galante |
| 2026-08-23 | feat: Main's "Set As Default" — open the current project at startup | Lucas Galante |
| 2026-08-23 | refactor: one is_enterable predicate for Enter/double-click/`i` | Lucas Galante |
| 2026-08-23 | feat: simnet — a network that iterates its chain over the timeline | Lucas Galante |
| 2026-08-23 | feat: reattach a detached pane from the parent's corner menu | Lucas Galante |
| 2026-08-23 | feat: detach any plate into its own window | Lucas Galante |
| 2026-08-23 | feat: plate corner control — a menu trigger on every plate's top-right | Lucas Galante |
| 2026-08-23 | refactor: retire Main's Style section — DE chrome is config-owned | Lucas Galante |
| 2026-08-23 | refactor: generate the widget roster from one list | Lucas Galante |
| 2026-08-23 | refactor: split the widget roster out of app.rs into src/slots.rs | Lucas Galante |
| 2026-08-22 | render: drop the unused slot_plate_radii helper | Lucas Galante |
| 2026-08-21 | feat: View utility node — the pane toggles' new home | Lucas Galante |
| 2026-08-21 | render: restore the scene viewer's relief rim on the corrected arc | Lucas Galante |
| 2026-08-21 | render: window-corner arcs read the shared radius, not the app override | Lucas Galante |
| 2026-08-21 | render: flat stroke replaces the scene viewer's relief lip | Lucas Galante |
| 2026-08-21 | render: the scene viewer's relief rim spans the whole window backplate | Lucas Galante |
| 2026-08-20 | render: pane plates wear the window arc on window corners | Lucas Galante |
| 2026-08-20 | fix: stop overriding the renderer's window-corner clip | Lucas Galante |
| 2026-08-20 | render: network cells and the empty-cell cursor take the superellipse arcs | Lucas Galante |
| 2026-08-16 | Point Icon= at the app's own theme icon | Lucas Galante |
| 2026-08-16 | feat: ship the .desktop entry in this repo | Lucas Galante |
| 2026-08-14 | fix: settle the dropdown animation in the popover z-order test | Lucas Galante |
| 2026-08-14 | chore: refresh Cargo.lock against the current dependency graph | Lucas Galante |
| 2026-08-13 | deps: drop glyphon, use cce-ui's cosmic-text re-export | Lucas Galante |
| 2026-08-13 | build: drop the unused raw-window-handle declaration | Lucas Galante |
| 2026-08-13 | docs: point at the relocated workspace guide | Lucas Galante |
| 2026-08-13 | build: install via ccebuild instead of hand-listing binaries | Lucas Galante |
| 2026-08-03 | feat: one empty cell between utility nodes by default | Lucas Galante |
| 2026-08-03 | feat: Camera Pivot Size moves to the camera nodes | Lucas Galante |
| 2026-08-03 | feat: Grid Thickness, Origin Guide Size, and Grid Color move to Guides | Lucas Galante |
| 2026-08-03 | feat: Reference Cube and Origin Axes toggles move to the Guides node | Lucas Galante |
| 2026-08-03 | feat: Guides utility node owns the grid toggle; Render sits one cell lower | Lucas Galante |
| 2026-08-03 | feat: Group node — box-select prims, points, or edges into a named group | Lucas Galante |
| 2026-08-03 | fix: open popovers occlude the text beneath them | Lucas Galante |
| 2026-07-31 | feat: playbar tick marks | Lucas Galante |
| 2026-07-31 | fix: dismissing the viewport context menu erases it immediately | Lucas Galante |
| 2026-07-31 | feat: viewport context menu with Frame All | Lucas Galante |
| 2026-07-31 | feat: Wire Color is rgba — its alpha is the wireframe's opacity; geometry Opacity is polygons-only | Lucas Galante |
| 2026-07-31 | feat: Wire Thickness slider (1-8 px) | Lucas Galante |
| 2026-07-31 | feat: Point Size at 3 decimal places (slider:0.000:0.100:3) | Lucas Galante |
| 2026-07-31 | fix: Point Size slider range 0-0.1 (was 0.01-0.30) | Lucas Galante |
| 2026-07-31 | feat: wireframe draws atop the fill, with a single-color mode | Lucas Galante |
| 2026-07-31 | feat: Render-node Opacity slider; retire the Wireframe Overlay toggle | Lucas Galante |
| 2026-07-31 | feat: pinch-to-zoom in the 3D viewport | Lucas Galante |
| 2026-07-30 | fix: wireframe overlay wires keep a share of their vertex colors | Lucas Galante |
| 2026-07-30 | feat: point display renders circles, not octahedra | Lucas Galante |
| 2026-07-30 | feat: Render node point display — Render Points / Point Size / Point Color | Lucas Galante |
| 2026-07-30 | fix: sphere kernel colors are signed-normal — world-anchored, trackable | Lucas Galante |
| 2026-07-30 | fix: camera-pivot marker is world-fixed — the last camera-glued draw | Lucas Galante |
| 2026-07-29 | fix: clamp the viewport orbit short of the poles | Lucas Galante |
| 2026-07-29 | fix: viewport scroll orbit moves the camera, not the geometry | Lucas Galante |
| 2026-07-29 | feat: spreadsheet tucks under the network/parameter panes | Lucas Galante |
| 2026-07-29 | feat: spreadsheet pane resizes from its left and right edges | Lucas Galante |
| 2026-07-29 | feat: viewport focus tints its rim; playbar wears the live params fill | Lucas Galante |
| 2026-07-29 | feat: viewport pane wears the plate bevel's rim | Lucas Galante |
| 2026-07-29 | feat: network plate wears the parameter plate's fill and bevel | Lucas Galante |
| 2026-07-24 | feat: right-click context menu on network nodes | Lucas Galante |
| 2026-07-24 | feat: tighter node edge bevel — half the plate roll width | Lucas Galante |
| 2026-07-24 | feat: node bodies wear the parameter plate's fill | Lucas Galante |
| 2026-07-24 | feat: Plate Color — Style section retints the params plate live | Lucas Galante |
| 2026-07-24 | feat: Edge Profile ramp — Style section reshapes the plate roll live | Lucas Galante |
| 2026-07-24 | feat: params scrollbar track and thumb are squircle pills | Lucas Galante |
| 2026-07-24 | fix: stop clobbering the config node color's alpha | Lucas Galante |
| 2026-07-24 | feat: node bodies render as beveled mini-plates | Lucas Galante |
| 2026-07-24 | feat: node bodies take the DE squircle corner family | Lucas Galante |
| 2026-07-23 | feat: draw the section carves' concave throat fillets | Lucas Galante |
| 2026-07-23 | feat: Bevel Profile ramp — Style section reshapes the DE bevels live | Lucas Galante |
| 2026-07-22 | feat: Extrude node | Lucas Galante |
| 2026-07-22 | feat: Wireframe Overlay render setting — wires over shaded prims | Lucas Galante |
| 2026-07-22 | refactor: Viewport Settings section becomes Viewport | Lucas Galante |
| 2026-07-21 | refactor: params reliefs view carries per-corner radii + wall edges | Lucas Galante |
| 2026-07-21 | fix: graph edge-panning waits for a real drag gesture | Lucas Galante |
| 2026-07-21 | feat: focused-pane highlight rides the plate bevel's specular tint | Lucas Galante |
| 2026-07-21 | refactor: Network section — pane visibility, zoom, and detach move in | Lucas Galante |
| 2026-07-21 | refactor: Square Aspect + Show Camera Pivot move from Main to the cameras | Lucas Galante |
| 2026-07-21 | feat: Render utility node — render/display controls (Show Wireframe) | Lucas Galante |
| 2026-07-21 | feat: Plane node width/length + per-axis cell counts | Lucas Galante |
| 2026-07-21 | refactor: remove the dormant in-app NodePalette widget | Lucas Galante |
| 2026-07-21 | feat: add-node palette is a cce-cloud dmenu popup | Lucas Galante |
| 2026-07-21 | feat: Plane node — grid-geometry subnet template | Lucas Galante |
| 2026-07-21 | fix: draw the params sliders' thumb spheres (cce-ui spheres view) | Lucas Galante |
| 2026-07-21 | feat: node-domain opacity (style.surface.graph.node.opacity) | Lucas Galante |
| 2026-07-21 | feat: playbar pane — animation transport strip (PLAYBAR_IDX) | Lucas Galante |
| 2026-07-20 | fix: draw the params pane's control reliefs (cce-ui reliefs view) | Lucas Galante |
| 2026-07-20 | fix: viewport focus border follows the window's curvature-matched corners | Lucas Galante |
| 2026-07-20 | fix: add plate_features to the vk_smoke Frame2D (cce-ui API change) | Lucas Galante |
| 2026-07-18 | refactor: the graph grid's geometry is config-owned, not saved state | Lucas Galante |
| 2026-07-18 | refactor: rename the graph grid's skipped_* keys to gap_* | Lucas Galante |
| 2026-07-18 | feat: draw the params pane's section corner fillets | Lucas Galante |
| 2026-07-18 | refactor: drop the params pane's Help section | Lucas Galante |
| 2026-07-18 | fix: network pane plate no longer draws square corners over its rounded ones | Lucas Galante |
| 2026-07-17 | feat: Main node shows "New" and drops "Show" from toggle labels | Lucas Galante |
| 2026-07-17 | refactor: drop the params-pane arc pass; toggles no longer emit arcs | Lucas Galante |
| 2026-07-17 | feat: params pane draws the toggle rows' border corner arcs | Lucas Galante |
| 2026-07-16 | feat: plate children clip at the plate's rounded corners | Lucas Galante |
| 2026-07-16 | feat: resize cursor over pane edge-resize hotspots and during pane drags | Lucas Galante |
| 2026-07-16 | refactor: drop the csd_titlebar_move override; the default is now opt-in | Lucas Galante |
| 2026-07-16 | feat: designer window is not draggable from an implicit title-bar strip | Lucas Galante |
| 2026-07-16 | feat: param scrollbar depth, plate consolidation, MCP select tool | Lucas Galante |
| 2026-07-16 | feat: Main node boolean settings render as toggles | Lucas Galante |
| 2026-07-16 | fix: popovers draw over widget labels in the display list | Lucas Galante |
| 2026-07-16 | refactor: retire the HTTP API; MCP is the only automation surface | Lucas Galante |
| 2026-07-16 | refactor: node color is config-owned; drop the Network Settings params | Lucas Galante |
| 2026-07-16 | refactor: design.kdl becomes state.kdl; scroll settings are config-owned | Lucas Galante |
| 2026-07-16 | feat: MCP server exposing the automation surface as tools on port 3001 | Lucas Galante |
| 2026-07-16 | refactor: 2D frame onto the engine's display-list paint path | Lucas Galante |
| 2026-07-16 | feat: CCE_DESIGNER_HTTP_PORT overrides the automation API port | Lucas Galante |
| 2026-07-16 | fix: engine-matched line height so labels center in their controls | Lucas Galante |
| 2026-07-16 | fix: draw the params pane controls' rounded backgrounds | Lucas Galante |
| 2026-07-16 | feat: highlight the focused context's pane border; bind cycling via input.kdl | Lucas Galante |
| 2026-07-16 | feat: feed the ShortcutManager table from input.kdl's cce-designer domain | Lucas Galante |
| 2026-07-16 | docs: add CLAUDE.md | Lucas Galante |
| 2026-07-16 | refactor: migrate onto cce-ui's Application/engine::run runner | Lucas Galante |
| 2026-07-14 | feat: --samples flag for --thumbnail | Lucas Galante |
| 2026-07-14 | chore: init env_logger in --thumbnail mode | Lucas Galante |
| 2026-07-14 | feat: --thumbnail — headless path-traced project thumbnails (phase 3) | Lucas Galante |
| 2026-07-14 | fix: HTTP set_param applies settings params like the interactive path | Lucas Galante |
| 2026-07-14 | feat: ray-traced viewport preview (RT-renderer phase 2 consumer) | Lucas Galante |
| 2026-07-14 | test: vk-smoke exercises user image quads (z-ordered under the blur plate) | Lucas Galante |
| 2026-07-14 | refactor: consume cce_ui::vk — the local vk module graduates to the toolkit | Lucas Galante |
| 2026-07-14 | feat: cutover — cce-designer renders on ash (VkRenderer), wgpu retired | Lucas Galante |
| 2026-07-14 | feat: 3D scene stage on ash — depth, offscreen backdrop, real blur source (milestone 3) | Lucas Galante |
| 2026-07-14 | feat: text on ash — cosmic-text + swash into a self-managed glyph atlas (milestone 2) | Lucas Galante |
| 2026-07-14 | feat: raw-Vulkan (ash) renderer foundation + vk-smoke (migration milestone 1) | Lucas Galante |
| 2026-07-13 | refactor: the inert network-panel move scaffolding is deleted | Lucas Galante |
| 2026-07-13 | feat(api): menu_action executes label-matched menu-pane items | Lucas Galante |
| 2026-07-13 | fix(api): menu_click validates its target and replies honestly | Lucas Galante |
| 2026-07-13 | fix(events): params pane gets its own press z-tier above the viewport | Lucas Galante |
| 2026-07-13 | refactor: per-slot draggable/is_dragging matches (the trait shrink) | Lucas Galante |
| 2026-07-13 | refactor(events)!: the event redesign — AppDrag splits app-mode drags out of drag_widget | Lucas Galante |
| 2026-07-13 | refactor: dyn as_ptr call sites become plain casts (as_ptr left WidgetHost) | Lucas Galante |
| 2026-07-13 | refactor: tree walks read ctx.tree directly (children/parent left WidgetHost) | Lucas Galante |
| 2026-07-13 | refactor: dispatch roots go by WidgetId (cce-ui plumbing retype) | Lucas Galante |
| 2026-07-13 | refactor: pane-focus selected-state sync goes concrete (6bd value shrink) | Lucas Galante |
| 2026-07-12 | refactor: dyn dispatch via handle_event (cce-ui 6bd direct-dispatch collapse) | Lucas Galante |
| 2026-07-12 | refactor: designer wheel loop on routed events; press/move cascade deferred (6bd) | Lucas Galante |
| 2026-07-12 | refactor: Element -> WidgetHost (cce-ui 6bd flip) | Lucas Galante |
| 2026-07-12 | refactor: base() Option handling dropped (cce-ui flip part 1) | Lucas Galante |
| 2026-07-12 | refactor: the roster is concretely typed — WidgetSlots replaces Vec<Box<dyn Element>> (Phase 6bb) | Lucas Galante |
| 2026-07-12 | refactor: designer's four raw impls onto the narrow traits (Phase 6az part 5) | Lucas Galante |
| 2026-07-12 | refactor: own Canvas + Viewport3D (verbatim from deleted cce-ui types, Phase 6ay part 2) | Lucas Galante |
| 2026-07-12 | refactor: roster accessors on concrete types (Phase 6aw, option 2) | Lucas Galante |
| 2026-07-12 | refactor(render): drop the dead parent_plate_rect text clamp (Phase 6at) | Lucas Galante |
| 2026-07-11 | refactor: two Plates + root Backplate dissolved (Phase 6as) | Lucas Galante |
| 2026-07-11 | refactor: delete the dead recent-files List + button row | Lucas Galante |
| 2026-07-11 | refactor: local widgets' labels inherent + paint_self (cce-ui Phase 6ar getter deletion) | Lucas Galante |
| 2026-07-11 | refactor: render-loop text via the paint walk, not the getters (Phase 6ap) | Lucas Galante |
| 2026-07-10 | fix: pass load_system_fonts=false to WgpuAdapter::new (Phase 6k signature) | Lucas Galante |
| 2026-07-08 | chore: drop dead scroll_mut helper (ScrollController removed from cce-ui) | Lucas Galante |
| 2026-07-08 | refactor: adapt Button fields to the cce-ui Phase 5 migration | Lucas Galante |
| 2026-07-07 | refactor: use cce_ui::color hex parser instead of a local copy | Lucas Galante |
| 2026-07-07 | refactor: drop hardcoded /home/lsgalante HOME fallback | Lucas Galante |
| 2026-07-07 | refactor: route hardcoded config/font paths through cce_ui XDG helpers | Lucas Galante |
| 2026-07-06 | Consolidate all utility subnets (Network, Viewport, Parameters, Spreadsheet) into the single Main utility subnet | Lucas Galante |
| 2026-07-06 | Fix mouse wheel event propagation to skip viewport backdrop when foreground widget consumes it | Lucas Galante |
| 2026-07-06 | Update designer app, project config, and window loop to use Viewport3D widget | Lucas Galante |
| 2026-07-05 | refactor: migrate recent files list to shared cce-ui KDL implementation | Lucas Galante |
| 2026-07-02 | Refactor ScrollingList to List and fix window decoration blur and styling | Lucas Galante |
| 2026-07-01 | Move all graph/viewport related keys into their respective domains in design.kdl | Lucas Galante |
| 2026-07-01 | Group scroll settings under graph and viewport domains in design.kdl | Lucas Galante |
| 2026-07-01 | Fix scroll lock logic by tracking scroll gesture state in app.rs | Lucas Galante |
| 2026-07-01 | Fix design settings serialization test and make viewport settings optional in KDL | Lucas Galante |
| 2026-07-01 | Add distinct scrolling controls for Graph and Viewport in design.kdl | Lucas Galante |
| 2026-07-01 | Convert grid and background colors to linear space | Lucas Galante |
| 2026-06-29 | Transition from JSON to KDL format configuration | Lucas Galante |
| 2026-06-26 | feat: render extra circles in recursive draw passes | Lucas Galante |
| 2026-06-26 | Enable drag-to-resize on edges for the main window | Lucas Galante |
| 2026-06-24 | refactor: rename Window widget to Backplate to avoid OS window naming collision | Lucas Galante |
| 2026-06-24 | refactor: modernize and systematize workspace logging | Lucas Galante |
| 2026-06-22 | fix: Box root_window to ensure stable pointer for children's parent links | Lucas Galante |
| 2026-06-22 | feat: implement GPU-side rounded corner clipping for 2D UI and 3D Viewport | Lucas Galante |
| 2026-06-22 | refactor: use cce-ui window as root base UI object | Lucas Galante |
| 2026-06-21 | Remove Paginator widget and tab margin spinboxes | Lucas Galante |
| 2026-06-19 | Clean up compiler warnings | Lucas Galante |
| 2026-06-19 | Migrate configuration from TOML to JSON | Lucas Galante |
| 2026-06-19 | Rename clear-inspector-v1 protocol to cce-inspector-v1 | Lucas Galante |
| 2026-06-18 | refactor: update dependencies and rename clear-ui to cce-ui | Lucas Galante |
| 2026-06-16 | Remove column layout initialization from design interface application | Lucas Galante |
| 2026-06-16 | Throttle inspector state updates and update cce-ui references | Lucas Galante |
| 2026-06-16 | Update test errors scratch log | Lucas Galante |
| 2026-06-16 | Refactor: Resolve compilation warnings, deprecated APIs, visibility issues, and redundant HTTP server logic | Lucas Galante |
| 2026-06-13 | Update design interface node configurations, geometry, render, and project logic | Lucas Galante |
| 2026-06-10 | Refactor and split monolithic main.rs into modular window, app, project, render, and graphics files | Lucas Galante |
| 2026-06-09 | Integrate context switcher dropdown with the Paginator sidebar | Lucas Galante |
| 2026-06-09 | Clean up debug legacy label prints | Lucas Galante |
| 2026-06-09 | Refactor and adapt widgets to use UiContext and scale factor | Lucas Galante |
| 2026-06-06 | Update clear-design-interface to adapt to Element trait refactoring (modified: src/main.rs) | Lucas Galante |
| 2026-06-05 | feat: integrate glassmorphism backdrop blur, panel resizing, Action::Save, and various clear-ui widgets | Lucas Galante |
| 2026-06-03 | Update and align interface features | Lucas Galante |
| 2026-06-03 | Update panning API usage and synchronize design-interface | Lucas Galante |
| 2026-06-02 | Update system configuration and interface modules | Lucas Galante |
| 2026-06-01 | Update config path to ccec, change wgpu power preference to LowPower, and add inspector integration | Lucas Galante |
| 2026-05-29 | Update system configuration and interface modules | Lucas Galante |
| 2026-05-28 | Update system configuration and interface modules | Lucas Galante |
| 2026-05-28 | Update system configuration and interface modules | Lucas Galante |
| 2026-05-26 | Update system configuration and interface modules | Lucas Galante |
| 2026-05-26 | Update system configuration and interface modules | Lucas Galante |
| 2026-05-25 | Update system configuration and interface modules | Lucas Galante |
| 2026-05-25 | Migrate from winit to smithay-client-toolkit and calloop | Lucas Galante |
| 2026-05-24 | Update components and system settings | Lucas Galante |
| 2026-05-23 | Use ColorSelector widget from clear-ui for background color selection | Lucas Galante |
| 2026-05-23 | Add viewport background color parameters to configure popup | Lucas Galante |
| 2026-05-23 | Add Viewport configuration tab to dialog and enlarge dialog dimensions | Lucas Galante |
| 2026-05-23 | Add index numbers to pane labels in the viewport menu bars | Lucas Galante |
| 2026-05-23 | Remove vertical viewport rotation clamping to enable infinite rotation | Lucas Galante |
| 2026-05-23 | Implement inertial rotation for the viewport | Lucas Galante |
| 2026-05-23 | Fix grid guide visibility and sync with viewport orbit rotation | Lucas Galante |
| 2026-05-23 | Render Origin vectors in world space using bind_group_3d | Lucas Galante |
| 2026-05-23 | Implement manual two-finger trackpad/scroll viewport rotation around camera pivot | Lucas Galante |
| 2026-05-23 | Implement origin vectors rendering and Guides menu integration | Lucas Galante |
| 2026-05-23 | Implement OpenCL JIT compilation and geometry execution engine support | Lucas Galante |
| 2026-05-23 | Rename Pos and Col spreadsheet headers to dot-separated vector format | Lucas Galante |
| 2026-05-23 | Fix typo in spreadsheet pane menubar title | Lucas Galante |
| 2026-05-23 | Rename project to clear-design-interface and update titles | Lucas Galante |
| 2026-05-23 | Enhance main layout and screenshot configuration | Lucas Galante |
| 2026-05-22 | Implement network pane inertial panning and trackpad 2-finger scroll | Lucas Galante |
| 2026-05-22 | Propagate mouse wheel events to widgets and sync slider parameters | Lucas Galante |
| 2026-05-22 | Update default grid size to 80x40 | Lucas Galante |
| 2026-05-22 | Persist network cursor grid highlights when mouse leaves the network pane | Lucas Galante |
| 2026-05-22 | Implement Camera node template, custom bounds, and dynamic camera selection in Viewport | Lucas Galante |
| 2026-05-22 | Make viewport grid visible by default | Lucas Galante |
| 2026-05-22 | Add sphere node parameter settings and slider controls | Lucas Galante |
| 2026-05-21 | Implement canvas zoom functionality using -/= keys | Lucas Galante |
| 2026-05-20 | Initial commit: basic clear-designer using clear-ui | Lucas Galante |