Skip to content

v3.3.0 — Rename Conflicted Imported Profiles

Choose a tag to compare

@acari-git acari-git released this 16 Jun 00:09
· 22 commits to main since this release

v3.3.0

This is an app-code release.

Summary

v3.3.0 implements Rename support for conflicted imported model profiles.

This release adds the safer first conflict-resolution step after v3.0.0 introduced Import Selected Profiles and v3.2.0 documented the Import Conflict Handling Design.

Users can now rename imported profiles that conflict by profile name before importing them.

Replace is not implemented in this release.

Added

  • Added row-level Skip / Import / Rename actions to Import Profiles Preview
  • Added Rename support for imported profiles with profile-name conflicts
  • Added validation for renamed imported profile names
  • Added duplicate checking across selected imported profiles
  • Added protection against collisions with existing local profile names
  • Added UI copy clarifying that Rename imports a new profile
  • Updated README, known limitations, product direction, onboarding, and task notes

Rename Behavior

Rename is available only for profile-name conflicts.

Rename behavior:

  • is opt-in
  • applies only to the imported profile
  • changes only the imported profile display name
  • does not modify the existing local profile
  • does not replace an existing profile
  • does not overwrite local profile metadata
  • does not change modelID
  • does not change host
  • does not change port
  • does not change Advanced Launch Options
  • does not change runtime metadata

Rename Validation

Renamed profile names are validated before import.

The following names are blocked:

  • empty names
  • whitespace-only names
  • names matching existing local profiles
  • names duplicated within the selected import set
  • names that still collide after Rename

Profiles with invalid renamed names remain disabled / not importable.

Current Import Behavior

Current behavior remains:

  • valid non-conflicting profiles can be imported
  • invalid profiles are blocked
  • profile-name conflicts can be resolved by Rename
  • runtime identity conflicts remain blocked
  • Replace is not implemented
  • selected profile does not change automatically
  • no server lifecycle changes
  • no network calls
  • no /v1/models calls
  • no external process ownership changes

Conflict Types

This release implements Rename only for:

  • same profile name as an existing local profile

This release does not resolve:

  • same modelID + host + port as an existing profile
  • duplicate modelID + host + port inside an imported file
  • ambiguous replacement targets
  • document-level blocking errors

Those cases remain blocked or disabled according to existing import validation behavior.

Replace Status

Replace is not implemented in v3.3.0.

Replace remains planned for a future release.

Future Replace behavior should require explicit confirmation and must remain metadata-only.

Safety Boundary

Import Rename remains metadata-only.

It must not:

  • import secrets
  • import API keys
  • import tokens
  • import executable paths
  • import model weights
  • import caches
  • start servers
  • stop servers
  • restart servers
  • call /v1/models
  • make external HTTP requests
  • change process ownership
  • overwrite existing profiles without explicit Replace behavior

Direct Mode Boundary

Direct Mode remains unchanged:

OpenAI-compatible client -> mlx_lm.server or adopted external server -> MLX model

MLX Server Manager does not proxy inference requests, act as a chat UI, perform multi-backend routing, or rewrite requests.

Verification

Verified before release:

  • git diff --check: OK
  • Release build: BUILD SUCCEEDED
  • No forbidden generated artifacts were added to Git
  • No .app, .dSYM, settings.json, models.json, model files, .env, or token files were tracked
  • No XCTest target was found, so automated tests were not added in this release

Current Binary Asset

This release includes a new unsigned app build:

MLXServerManager-v3.3.0-unsigned.zip

SHA-256:

0587f72827d69a11d2a7af70f4fe462ce9af1133424c4130109ed35ed2ad4e9b

Size:

496K