- Added in
v6.18.0. - Polished in
v6.18.1with staleness wording, explicit check scope, external identifier caveats, and UI copy rules. - Docs-only documentation for future model availability surfaces.
- Follows
v6.17.0/v6.17.1Model Download Design. - No model availability implementation is included in this release.
- No new app binary is produced for this release.
v6.18.0 defines how the app should describe model availability before any model download, scanning, deletion, cache cleanup, or automatic compatibility detection is implemented.
The goal is to help users understand which model paths are configured, which paths are merely referenced by profiles, and which paths may need user action, without implying that the app owns, verifies, downloads, or manages model files.
This release does not inspect model directories, download models, delete models, clean caches, persist tokens, add background monitoring, or change runtime behavior.
Current downloadable app binary:
MLXServerManager-v6.5.1-unsigned.zip
SHA-256: 31e8603f93d3a3eaedee9749a255668c9b804854fb69cb3b63f36b411613274e
Current model handling assumptions:
- profiles may reference local model paths;
- users control model files outside the app;
- external server targets may expose model identifiers;
- the app does not own model files;
- the app does not download or delete model files;
- the app does not scan model directories automatically;
- the app does not verify full model compatibility.
Future model availability documentation should:
- distinguish configured paths from verified files;
- distinguish local profile paths from external server model identifiers;
- avoid claiming compatibility without a launch or server readiness check;
- avoid implying that the app manages model storage;
- make missing-path states understandable;
- make user action explicit;
- preserve Direct Mode boundaries.
Use conservative terms:
Configured
Path referenced by a profile or setting.
Present
A known local path exists, if path existence is explicitly checked by a scoped feature.
Missing
A configured local path cannot be found, if path existence is explicitly checked by a scoped feature.
External
Model identifier is reported by or configured for an external server target.
Unknown
The app has not checked availability or cannot determine it safely.
Stale
A previous explicit check exists, but the app has not rechecked the path recently or after a relevant profile edit.
Do not use terms such as installed, validated, compatible, or ready unless the relevant verification actually occurred.
For local profiles, a future availability surface may show:
- profile name;
- configured model path;
- whether the app has checked path existence;
- availability state;
- last checked time, only if checks are explicitly user-triggered;
- suggested user action.
Initial implementation should prefer Unknown until the user explicitly requests a check.
Explicit check scope:
- check only the selected profile path;
- do not update any profile field from the check result;
- mark results as stale after the profile path changes.
For external server targets, availability wording should be separate from local file availability.
External availability may mean:
- the app has a configured external base URL;
- the external server reports a model identifier;
- the user copied a model ID from a server response;
- the app has not verified local files.
Do not imply that external model identifiers correspond to local model files managed by the app.
External identifier caveats:
- a server-reported model ID is not proof of local file availability;
- an external target may change its model list outside the app;
- availability wording should say
ExternalorUnknown, notPresent; - local profile path checks should not be run for external targets.
Availability is not compatibility.
A model path may exist but still fail to launch because of:
- incompatible format;
- missing files;
- unsupported quantization;
- unsupported architecture;
- insufficient memory;
- wrong server command;
- wrong launch arguments;
- incomplete download.
Use wording such as:
Model path exists. Launch compatibility is not verified.
A future availability surface may offer explicit actions such as:
- copy model path;
- reveal in Finder;
- check path existence;
- open profile editor;
- open model download design surface if implemented later;
- read documentation about compatible model formats.
Out of scope for first availability documentation:
- delete model;
- clean cache;
- scan all model directories;
- auto-fix profiles;
- auto-download missing models;
- auto-start server after detection.
Path checks should be explicit and narrow.
Allowed future checks:
- check only the exact path configured in a selected profile;
- check only after a user action;
- show the result without modifying the profile;
- avoid walking parent directories;
- avoid enumerating unrelated files.
Not allowed without separate scoped design:
- recursive model directory scans;
- background availability polling;
- indexing model caches;
- collecting file sizes for all models;
- deleting or moving files;
- generating profiles from discovered folders.
Availability documentation should avoid exposing private paths unnecessarily.
A future UI should consider:
- shortening paths in summary views;
- showing full path only when user expands details or copies it;
- avoiding paths in logs by default;
- avoiding paths in exported diagnostics unless explicitly requested;
- never including tokens or credentials.
Future UI copy should:
- use
Configured,Unknown,Present,Missing,External, orStaleconsistently; - explain whether a check was user-triggered;
- avoid implying model ownership;
- avoid implying launch compatibility;
- keep full paths out of compact summary cards unless the user expands details.
Safe wording examples:
This profile references a local model path. Availability has not been checked.
The configured path exists. Launch compatibility is not verified.
This external target reports a model identifier. Local model files are not managed by MLX Server Manager.
Unsafe wording examples:
Model installed.
Model is compatible.
Ready to run.
unless those states have actually been verified by a scoped feature.
Model availability documentation must not change the app architecture:
OpenAI-compatible client -> mlx_lm.server or adopted external server -> MLX model
Availability surfaces are informational. They must not put the app into the inference request path.
A future app-code release should verify:
- availability state defaults to conservative wording;
- local and external model states are distinct;
- checking a path does not modify profiles;
- failed checks do not delete or move files;
- no background scanning is introduced;
- no model download is triggered;
- no token or credential is persisted;
- existing profile import/export tests still pass;
- server start/stop behavior remains unchanged.
Safe follow-up releases may include:
- Model Availability Documentation Polish.
- Model availability surface design.
- Explicit selected-profile path check design.
- Read-only availability UI implementation.
- Model download implementation only after separate approval.
v6.18.0 and v6.18.1 are acceptable if:
- it remains docs-only;
- no Swift source files are changed;
- no runtime behavior changes are introduced;
- no app binary zip is produced;
- no model download is executed;
- no model deletion is added;
- no model scanning is added;
- no cache cleanup is added;
- no token persistence is added;
- no background availability polling is added;
- release notes state that the current binary remains
v6.5.1; - future model availability implementation remains explicitly scoped.