Skip to content

Mixar 4.1.1

Choose a tag to compare

@mixar-ci-bot mixar-ci-bot released this 27 Sep 14:26
· 619 commits to main since this release

Mixar 4.1.1

This release lands parallel scene tabs, Add-on Project Mode verification, the Refer a Friend
flow, a Mixar Forest theme pass, and a large batch of moodboard/agent-bubble/notifications
polish and fixes. 519 files changed (~34k insertions / ~10k deletions) since v4.0.0.

Scenes / Parallel Scene Tabs

The headline feature of this release: a Scene can now host its own chat session
(Scene.mixie_session_id is the routing key), and several scene tabs can run their own agent
concurrently inside one app instance.

  • New native View3D Scenes drawer, sliding in from the left edge (mirrors the Moodboard
    drawer): view3d_scenes_drawer{,_draw,_ops,_ops_cards,_qa,_resize,_selection,_state,_thumbs}.cc
    • ED_scenes_drawer.hh, built on a repurposed RGN_TYPE_NAV_BAR region, registered in
      space_view3d.cc, editors/screen/area.cc (overlap list, azone, toolbar lane for the grip)
      and area_query.cc (event routing). New RNA: rna_screen_mixar_scenes_drawer.hh.
      Card thumbnails are viewport snapshots rendered through the existing offscreen-render path
      (never a real render), with drag-reorder and per-card status (idle / working / waiting /
      done, last agent line, worker progress).
  • Python side (space_mixie_chat): scene tab operators (new / switch / close), scene_tab_edit,
    scene_tab_send (duplicate-not-link cross-tab sends), scene_naming (auto-naming a tab from
    its first prompt, dropping leading/trailing filler words), scene_identity, per-tab script
    lanes (script_lanes.py), a guarded-undo window modal (undo_guard.py) that shields a
    mid-turn tab from a global Ctrl-Z, and a client-side [SCENES] JSONL ledger
    (common/scenes_log.py) for per-tab diagnostics.
  • agent_bubble: a Scene tabs menu (ui/menus/scene_tabs_menu.py) and header button; the
    Outliner's Scenes view hides agentlane: worker scenes (tree_display_scenes.cc).
  • Per-tab script routing, cards, generation delivery and undo/redo suppression while any tab's
    agent is running are keyed by session, replacing several previously-global states (active
    turn flag, foreground-task set, lane sweep, generation poll registry).
  • Known v1 limits carried into this release: undo is one document-wide Blender stack (a Ctrl-Z
    in any tab can revert another tab's edit — the UI now warns while an agent runs elsewhere);
    turn-checkpoint restore is refused while another tab has a live run; render is a single
    per-instance slot so a second tab's render waits its turn.

Agent / Chat

  • Add-on Project Mode hardening: verified commits (addon_project/verify.py) reload and
    run an add-on's own test package before a commit is considered good, reverting on failure;
    usage.py reports every place a live add-on currently shows up in the UI; addon_tests.py
    adds an in-Blender unittest runner exposed through the project RPC surface.
    checks.py / service.py / transactions.py / workspace.py were extended accordingly.
  • Export lane: core/agent_export.py (runner), core/export_presets.py (use_case presets),
    core/export_clips.py (animation/clip selection), core/export_package.py (delivery
    packages: mesh + textures + manifest + tiers + source .blend + README),
    core/export_verify.py + core/export_reimport.py (post-write verification — re-import
    into a temporary collection of the active scene, never a temp scene), and
    core/export_obj_textures.py (OBJ texture staging by basename/kind only, never a path).
    Fixes a scene/package corruption case on a failed or repeated export.
  • main_thread_executor.py / main_thread_routing.py reworked for per-session routing and
    round-robin script dispatch across tabs; executor_scene_state.py, scene_tab_snapshot.py
    and lane_scene_sweep.py are new supporting modules.
  • Sketch stroke/mark caps raised substantially (carrying 128 strokes per sketch instead of the
    previous lower ceiling) so longer freehand drawings survive a turn intact.
  • Notifications: a new task-completion sound catalog and mute toggle
    (core/sound_catalog.py, core/completion_sound.py, core/sound_feedback.py), an animated
    toggle beside the profile menu, and a bundled fallback chime asset.
  • clipboard_image.py (new) lets any active island tab accept a pasted image, not only Agent.
  • WebSocket handshake now reports the running build's own version rather than a placeholder.

Moodboard

  • Multi-view / turnaround image inputs on the Generate to 3D node (turnaround_payload.py,
    model_3d_views.py).
  • core/first_use.py + ui/properties/first_use_props.py: refined first-run onboarding and
    canvas interaction guidance.
  • core/magic_select_flow.py and ui/operators/magic_select_tool_ops.py replace most of the
    old magic_select_ops.py logic; retry/expiry handling no longer gets stuck when the retry
    upload itself fails, and the image item is re-fetched after a round trip.
  • core/mask_tool_feedback.py: mask tools now wait for one pass and surface what happened
    instead of running silently.
  • Reference-docking animation and Cinema gradient/typography polish alongside floating
    Moodboard spacing adjustments.

Auto Rig / Hunyuan

  • Imported rig armatures now draw In Front; Auto Rig imports keep their Octahedral bone shapes
    and strip vendor bone-shape helpers; Auto Rig results import as mesh + B-Bone armature only.
    The Moodboard's Auto Rig node now shares the same rig import options as the Hunyuan panel.

Notifications / Referrals / Theming

  • modules/referrals (new): the Refer a Friend dialog (ui/operators/referral_dialog_ui.py,
    referral_ops.py), invite-link and email-to-friends flow (core/flow.py, core/invites.py),
    and a low-credit toast (core/low_credit.py) that opens the dialog when the balance drops to
    or below 200 credits.
  • common/notifications/credits_banner.py + ui/operators/credits_banner_ops.py: the
    out-of-credits toast is replaced by a whole-window banner, drawn through new C++ components
    (interface/mixar/credits_banner{,_draw,_layout}.cc/.hh).
  • Mixar Forest theme polish: unified editable UI colors, new theme presets
    (bootstrap/theme_presets.py), a large rewrite of Mixar_theme.xml and
    userdef_default_theme.c, and corresponding DNA_theme_types.h / rna_userdef.cc additions.
    Agent cards now render session names as prose instead of raw identifiers, and toasts draw in
    the same translucent glass surface as the rest of the chrome
    (interface_mixar_card_icons.cc, interface_mixar_theme.cc).
  • Zen sky lighting: workflow/core/zen_sky_lighting.py, ui/operators/zen_hdri.py, and header
    controls (zen_scene_controls.py) for adjusting HDRI sky lighting from the scene toolbar.
  • Library: folder-scoped image/video listing, multi-select and whole-library removal
    (test_library_folder_media.py, agent_bubble/core/library_media.py).

Build / CI

  • scripts/unix/build.sh and the new scripts/unix/dev_codesign.sh now also re-sign the
    built executable from install.sh, so the macOS dev codesign identity survives
    make install, not only make build.
  • New ClashGrotesk font added to src/release/datafiles/fonts/ for in-app UI use.

⚠️ Notes

  • Default theme palette changed. Mixar Forest's default colors moved to a new palette
    (viewport #0F0F0F, Moodboard #1E1E1E, selected green #2F592F, deep green #264515,
    focus #7F9B78, etc.) with more slots exposed under Preferences → Themes → Mixar. Existing
    custom theme preferences are preserved; only unset (all-zero) fields pick up the new
    compiled defaults.
  • View3D region layout changed. The Scenes drawer reuses the RGN_TYPE_NAV_BAR region
    type in the 3D Viewport, which was previously unused there. Anything that enumerates View3D
    regions should account for this new overlapping region.
  • Agent island tab set changed. The island's tab strip now reads Agent, 3D, Image, Video,
    Splats, Add-on, Library, Queue — "Gaussian Splat" is renamed to "Splats" and a new "Add-on"
    tab surfaces Add-on Project Mode.
  • Sketch capacity increased. The client's per-turn mark and stroke caps were raised
    substantially (strokes per sketch: 48 → 128), so scripts or tooling that assumed the old
    ceiling should be re-checked.
  • Several legacy top-level documents were removed as part of a documentation cleanup pass
    (old footer build-fix notes, a streaming-fix test plan, and the V2 agent migration/test
    docs); their relevant contracts now live in the module docs under docs/modules/.