feat: Hermit 1.1.0 — HERMIT_* env, Tauri desktop shell
ci / tcc-check (push) Failing after 40s
ci / linux (aarch64, 0) (push) Skipped
ci / linux (x86, 1) (push) Skipped
ci / linux (x86_64, 1) (push) Skipped
ci / windows (push) Skipped

Wire hermit_getenv across the engine, rebrand WebUI/systemd/docs, and
add apps/desktop (Tauri 2 + React) with a DeepSeek-Harness-like UI.
Qt app/ is frozen; full libcstcore FFI is scaffolded behind --features engine.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WHC
2026-10-30 13:15:47 +08:00
co-authored by Cursor
parent 15c6c4a02a
commit ea38247161
71 changed files with 15336 additions and 143 deletions
+6 -5
View File
@@ -1,5 +1,6 @@
#include "cst_models.h"
#include "cst_util.h"
#include "cst_hermit_glyph.h"
#include "cJSON.h"
#include "os_compat.h"
@@ -552,7 +553,7 @@ const cst_provider_t *cst_provider_find(const char *name) {
}
const cst_provider_t *cst_provider_default(void) {
const cst_provider_t *p = cst_provider_find(getenv("CST_PROVIDER"));
const cst_provider_t *p = cst_provider_find(hermit_getenv("PROVIDER"));
return p ? p : cst_provider_at(0);
}
@@ -606,7 +607,7 @@ int cst_models_list(const char *current, char out[][128], int max_out) {
if (!out || max_out <= 0)
return 0;
int n = 0;
const char *env = getenv("CST_MODELS");
const char *env = hermit_getenv("MODELS");
if (env && env[0]) {
char buf[1024];
snprintf(buf, sizeof(buf), "%s", env);
@@ -745,7 +746,7 @@ static void apply_cache(const char *provider, const char *model,
}
static int env_price(cst_price_t *out) {
const char *e = getenv("CST_PRICE");
const char *e = hermit_getenv("PRICE");
if (!e || !e[0])
return -1;
memset(out, 0, sizeof(*out));
@@ -765,7 +766,7 @@ void cst_model_info(const char *provider, const char *model,
memset(out, 0, sizeof(*out));
out->vision = -1;
unsigned have = 0;
const char *e = getenv("CST_CTX_TOKENS");
const char *e = hermit_getenv("CTX_TOKENS");
if (e && atol(e) > 0) {
out->context = atol(e);
have |= F_CONTEXT;
@@ -857,7 +858,7 @@ void cst_model_caps(const char *provider, const char *api_base,
cst_model_info_t mi;
cst_model_info(provider, model, &mi);
out->vision = mi.vision;
const char *e = getenv("CST_NO_CACHE_HINTS");
const char *e = hermit_getenv("NO_CACHE_HINTS");
if ((e && e[0] == '1') || !model)
return;
out->cache_style = mi.cache_style;