Loki Mode v7.41.4
Immutable
release. Only release title and notes can be modified.
Bun-route parity hardening. The autonomous live route is bash today, so these
are dormant in production, but the Bun route must agree with bash byte-for-byte
before the Phase 6 bash sunset wires it in, and the cross-route parity matrix is
an enforced gate. All fixes mirror the bash source of truth exactly.
Fixed
- Bun
applyMaxTierCeilingnormalizesLOKI_MAX_TIER(lowercase + trim, empty
means no ceiling) before comparing, matching claude.sh:352. A user-typed
LOKI_MAX_TIER="Sonnet"/" haiku "is now honored instead of silently
blown past. The sonnet ceiling now also caps afablesession tier down to
development (claude.sh:358-362), not onlyplanning. - Bun
claudeTierToModelreadsLOKI_ALLOW_HAIKUwith exact=== "true",
matching bash (claude.sh:294, claude-flags.sh:104) and Bun's own
fallbackForPrimary.LOKI_ALLOW_HAIKU=1no longer dispatches haiku on one
path while bash and the rest of the Bun route resolve sonnet. - Bun caveman
cavemanActivateEnvbranches on whetherLOKI_CAVEMAN_LEVELis
SET (not merely truthy), so an exported-emptyLOKI_CAVEMAN_LEVEL=""resolves
to thefulloverride like bash (claude-flags.sh:543/709) instead of inferring
lite. The wenyan-* compression ranks now mirror bash exactly so a user's
globalCAVEMAN_DEFAULT_MODE=wenyan-liteis honored (no-raise), not raised to
full.
Notes
applyCodexMaxTieris intentionally left raw (no normalization): codex.sh
also comparesLOKI_MAX_TIERraw, so normalizing only the Bun codex side
would create drift. Locked with a guard test.getProviderTierParam(rarv.ts) is unchanged: it mirrors bash's legacy
fallback table, which applies no max-tier clamp; the clamp lives in
applyMaxTierCeilingon the dispatch path.