Environment: macOS (Apple Silicon M1), role-model v0.0.7 (darwin-arm64 release asset), installed via scripts/install.sh.
Two independent problems — one blocking install, one blocking the benchmark workflow.
1. Release binary is unsigned → instant SIGKILL on Apple Silicon
role-model exits immediately with killed (exit 137). Diagnosis:
codesign -dv → "code object is not signed at all"; spctl -a -vv → "rejected, source=no usable signature".
- On arm64, unsigned Mach-O binaries are SIGKILL'd by the kernel before
main(). Intel tolerates this; Apple Silicon does not.
Workaround: codesign --sign - --force <binary>. Request: sign the darwin-arm64 release asset (at minimum ad-hoc).
Related: the SEA binary resolves its taxonomy data relative to process.cwd() instead of the executable location, so it only starts when launched from the install dir ("Unable to read taxonomy data file manifest.json"). It honors ROLE_MODEL_TAXONOMY_DATA_ROOT, so I wrapped the launcher — but resolving from the executable path would be the real fix.
2. Benchmark cannot grade models registered via litellm_proxy (circular blocker)
The static catalog for moonshotai-cn ships only 7 older models; kimi-k2.7-code, kimi-k3, kimi-k2.7-code-highspeed are absent. The documented way to add models is the litellm_proxy.providers runtime config. But endpoints registered that way get serving_source: vendor-litellm, and the Benchmark UI marks all of them "Excluded by current execution mode" (remote_only) — it appears to only grade direct remote-service endpoints.
Result: the exact models that require the litellm path to exist cannot be benchmarked through it. The benchmark is the step that feeds observed quality into routing, so this blocks the entire evidence-based-routing flow for any non-static-catalog model.
Smaller issues hit along the way (each worked around locally):
litellm[proxy] 1.95.0 vendored proxy is incompatible with fastapi>=0.140 (ImportError: cannot import name 'get_flat_dependant'; removed in fastapi 0.140). Had to pin fastapi<0.140 in the vendored env.
- litellm does not expand shell
${VAR} in api_key — it forwards the literal text ("api key: ****KEY} is invalid"). Requires os.environ/VAR.
- The runtime strips the provider prefix before calling the vendor (
resolveProviderLocalModelId), sending the bare id (kimi-k3) which the proxy rejects unless a bare-id model_name alias is also registered.
- For
api.moonshot.cn, litellm_params.model must be openai/<id> pass-through; moonshot/<id> strips to a bare id the CN chat endpoint rejects.
Happy to provide logs or test a fix.
Environment: macOS (Apple Silicon M1), role-model v0.0.7 (
darwin-arm64release asset), installed viascripts/install.sh.Two independent problems — one blocking install, one blocking the benchmark workflow.
1. Release binary is unsigned → instant SIGKILL on Apple Silicon
role-modelexits immediately withkilled(exit 137). Diagnosis:codesign -dv→ "code object is not signed at all";spctl -a -vv→ "rejected, source=no usable signature".main(). Intel tolerates this; Apple Silicon does not.Workaround:
codesign --sign - --force <binary>. Request: sign the darwin-arm64 release asset (at minimum ad-hoc).Related: the SEA binary resolves its taxonomy data relative to
process.cwd()instead of the executable location, so it only starts when launched from the install dir ("Unable to read taxonomy data file manifest.json"). It honorsROLE_MODEL_TAXONOMY_DATA_ROOT, so I wrapped the launcher — but resolving from the executable path would be the real fix.2. Benchmark cannot grade models registered via
litellm_proxy(circular blocker)The static catalog for
moonshotai-cnships only 7 older models;kimi-k2.7-code,kimi-k3,kimi-k2.7-code-highspeedare absent. The documented way to add models is thelitellm_proxy.providersruntime config. But endpoints registered that way getserving_source: vendor-litellm, and the Benchmark UI marks all of them "Excluded by current execution mode" (remote_only) — it appears to only grade directremote-serviceendpoints.Result: the exact models that require the litellm path to exist cannot be benchmarked through it. The benchmark is the step that feeds observed quality into routing, so this blocks the entire evidence-based-routing flow for any non-static-catalog model.
Smaller issues hit along the way (each worked around locally):
litellm[proxy]1.95.0 vendored proxy is incompatible withfastapi>=0.140(ImportError: cannot import name 'get_flat_dependant'; removed in fastapi 0.140). Had to pinfastapi<0.140in the vendored env.${VAR}inapi_key— it forwards the literal text ("api key: ****KEY} is invalid"). Requiresos.environ/VAR.resolveProviderLocalModelId), sending the bare id (kimi-k3) which the proxy rejects unless a bare-idmodel_namealias is also registered.api.moonshot.cn,litellm_params.modelmust beopenai/<id>pass-through;moonshot/<id>strips to a bare id the CN chat endpoint rejects.Happy to provide logs or test a fix.