Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion compat/llama-server/b10621/model-source.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"description": "set model name aliases, comma-separated (to be used by API) (env: LLAMA_ARG_ALIAS)",
"discovery": "help-entry-head",
"state": "aliased",
"issue": 1434,
"issue": 1438,
"test": "src/server/model_source_tests.rs::the_alias_list_is_sorted_like_b10621s_set",
"notes": "b10621 splits the value on commas, strips each entry, drops empty ones, and inserts the rest into a `std::set<std::string>`, then serves the set's first element, which is the lexicographically smallest entry rather than the one typed first. mlxcel now reproduces that exactly in `ServerStartupInput::into_startup_config`: `parse_model_aliases` returns the same sorted, de-duplicated sequence, its first element becomes the served model id (`AppState::display_model_id`, and so the `model` field of every response, /health and /v1/models), and the whole list is kept in `ServerConfig::model_aliases`. Before #1434 the value was one opaque id, so `--alias a,b` served a model literally named `a,b`. mlxcel matches no request against the model name in single-model mode, so every alias in the list does reach the model; what is left is reporting them, which the GET /models and GET /v1/models route entries already record against #1438.",
"divergence": [
Expand Down
12 changes: 9 additions & 3 deletions compat/llama-server/b10621/pin.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@
},
"model-source": {
"owners": [
1434
1434,
1438
]
},
"multimodal-and-audio": {
Expand All @@ -89,16 +90,21 @@
},
"routes": {
"owners": [
1438,
1440,
1441,
1442,
1452
1452,
1466
]
},
"runtime-and-context": {
"owners": [
1449,
1450,
1453
1453,
1472,
1473
]
},
"sampling-and-grammar": {
Expand Down
16 changes: 8 additions & 8 deletions compat/llama-server/b10621/routes.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1440,
"test": "src/server/llama_compat_tests.rs",
"notes": "BEHAVIOR DRIFT: mlxcel's /health answers 503 {\"status\":\"no slot available\"} when the request queue is full, which b10621 reports on /slots?fail_on_no_slot instead, and its loading-state body differs from b10621's error envelope. A load balancer ejects mlxcel under load where llama-server stays healthy. #1440 owns it.",
"divergence": [
Expand All @@ -53,7 +53,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1438,
"test": "src/server/llama_compat_tests.rs",
"notes": "Response-field subset: mlxcel emits {id, object, created, owned_by}; b10621 adds aliases, tags, architecture, source, can_remove and the modality lists, and reports owned_by \"llamacpp\". #1438 owns response-field parity.",
"divergence": [
Expand All @@ -73,7 +73,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1440,
"test": "src/server/llama_compat_tests.rs",
"notes": "Kept public under API-key auth (#1430). BEHAVIOR DRIFT: see GET /health. #1440 owns it.",
"divergence": [
Expand All @@ -93,7 +93,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1438,
"test": "src/server/llama_compat_tests.rs",
"notes": "Response-field subset: see GET /models. #1438 owns response-field parity.",
"divergence": [
Expand Down Expand Up @@ -160,7 +160,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1466,
"test": "src/server/routes/native_route_tests.rs",
"notes": "Route separation done: /completion and /completions both reach the native handler and answer the b10621 native object (index, content, tokens, id_slot, stop, model, tokens_predicted, tokens_evaluated, generation_settings, prompt, has_new_line, truncated, stop_type, stopping_word, tokens_cached, timings with cache_n), and the streaming form ends with that same object rather than a [DONE] sentinel. The key set and order were taken from a capture of the pinned binary. The remaining differences are listed in divergence and keep this entry deferred; the stop-sequence half is tracked separately as #1466 because the fix belongs to the MLX scheduler and to the field:stop entry in sampling-and-grammar.json.",
"divergence": [
Expand All @@ -182,7 +182,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1466,
"test": "src/server/routes/native_route_tests.rs",
"notes": "Route separation done: /completion and /completions both reach the native handler and answer the b10621 native object (index, content, tokens, id_slot, stop, model, tokens_predicted, tokens_evaluated, generation_settings, prompt, has_new_line, truncated, stop_type, stopping_word, tokens_cached, timings with cache_n), and the streaming form ends with that same object rather than a [DONE] sentinel. The key set and order were taken from a capture of the pinned binary. The remaining differences are listed in divergence and keep this entry deferred; the stop-sequence half is tracked separately as #1466 because the fix belongs to the MLX scheduler and to the field:stop entry in sampling-and-grammar.json.",
"divergence": [
Expand Down Expand Up @@ -221,7 +221,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1452,
"test": "src/server/routes/native_route_tests.rs",
"notes": "Route separation done: /embedding and /embeddings answer b10621's native shape, a bare JSON array of {index, embedding} whose embedding is an array OF arrays, and /v1/embeddings keeps the OpenAI object. /embedding was not mounted at all before this change, and all three paths used to answer the OpenAI shape. The native handler also accepts upstream's legacy `content` spelling for the input. Shape verified against a capture of the pinned binary serving a real embedding checkpoint.",
"divergence": [
Expand All @@ -240,7 +240,7 @@
"condition": null,
"discovery": "source-route-registration",
"state": "deferred",
"issue": 1441,
"issue": 1452,
"test": "src/server/routes/native_route_tests.rs",
"notes": "Route separation done: /embedding and /embeddings answer b10621's native shape, a bare JSON array of {index, embedding} whose embedding is an array OF arrays, and /v1/embeddings keeps the OpenAI object. /embedding was not mounted at all before this change, and all three paths used to answer the OpenAI shape. The native handler also accepts upstream's legacy `content` spelling for the input. Shape verified against a capture of the pinned binary serving a real embedding checkpoint.",
"divergence": [
Expand Down
Loading