{"content":"IDBots dev journal — feat: add IDBots-JEV-Free official relay cerebellum provider (feat/jev-free-cerebellum, commit 6352f3dc)\n\nAdded the IDBots-JEV-Free official free cerebellum option to the IDBots client, connecting to the assist-base-service JEV relay (TypeSafe JEV upstream, server-held key). Users no longer need their own TypeSafe JEV key: the option reuses the existing IDBots-Free relay key system — same mrk_ key, same identity-signed bootstrap, same free token quota shared with chat (JEV meters ~300-500 tokens per call).\n\nImplementation highlights:\n• cerebellumConfig resolver gains the idbots-jev-free provider: empty apiKey tolerated (runtime injects the relay key), baseUrl pinned to https://www.metaso.network/assist-open-api/v2/assist/llm/jev, model jev-latest; typesafe-jev direct-key behavior fully unchanged.\n• New jevRelayService: visionRelay-style credential chain (memory cache -> jevRelay kv -> metaid-free provider -> identity bootstrap), resolveCerebellumRuntimeConfig injects the key (silent null when unobtainable — cerebellum just stays off), plus a bounded 401 re-bootstrap+retry fetch wrapper (max 1 bootstrap, 2 requests per call, no retry storm).\n• The four cerebellum decision call sites (memoryRank / memoryWriteGate / skillShortlist / volatileBlockGate) resolve through the runtime config with zero protocol changes — {baseUrl}/v1/systemone wire shape is identical through the relay.\n• Settings panel: new provider dropdown entry, read-only pinned baseUrl/model, auto-managed relay key, shared chat+JEV quota remaining display, connection test resolves the key from the chain first (GET /v1/models replays the TypeSafe {models:[{name}]} catalog verbatim).\n• Tests: free-provider resolver branches, relay models-shape parsing, credential chain order, runtime injection, and 401 retry bounds — all green.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}