vibeostheog 0.23.25 → 0.23.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.23.27
2
+ - fix: ML-chosen optimization_mode dances in footer + → arrow
3
+
4
+
5
+ ## 0.23.26
6
+ - fix: footer primary tier = ML decision (vector_changed_slot), ✓ when applied
7
+
8
+
1
9
  ## 0.23.25
2
10
  - fix: footer always shows regime + vector_changed + optimization_mode — no expiry, no hidden conditions
3
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibeostheog",
3
- "version": "0.23.25",
3
+ "version": "0.23.27",
4
4
  "description": "Cost-aware delegation enforcer for OpenCode. Tracks model usage, routes Task subagents to cheaper tiers, surfaces cumulative savings in chat. Includes research audit, reporting framework, project memory, progressive scratchpad decadence, and trinity CLI for brain/medium/cheap slot switching.",
5
5
  "scripts": {
6
6
  "release": "node scripts/release.mjs",
@@ -207,9 +207,8 @@ export function syncControlSettings(cv, options = {}) {
207
207
  if (cv.thinking_mode && currentSel.thinking_level !== "full")
208
208
  writeIf("thinking_level", cv.thinking_mode);
209
209
  if (persistOptimizationMode && cv.optimization_mode && userOptMode !== "auto") {
210
- if (userOptMode !== cv.optimization_mode && !userSetMode) {
211
- writeSessionSlot(sid + "_opt", cv.optimization_mode);
212
- saveOptimizationMode(cv.optimization_mode);
210
+ if (userOptMode !== cv.optimization_mode) {
211
+ writeIf("optimization_mode", cv.optimization_mode);
213
212
  }
214
213
  }
215
214
  const slot = cv.tier_bias;
@@ -285,34 +285,26 @@ async function _appendFooter(input, output, directory) {
285
285
  const optMode = (resolvedMode || "budget").toLowerCase();
286
286
  const brandMap = { vibeultrax: "VibeUltraX", vibeqmax: "VibeQMaX", vibemax: "VibeMaX", quality: "VibeQMaX", audit: "VibeQMaX", forensic: "VibeQMaX" };
287
287
  const brandedToRuntime = { vibeultrax: "Quality", vibeqmax: "Quality", vibemax: "Speed" };
288
- const activeSlot = selNowFooter.active_slot || "brain";
288
+ const activeSlot = selNowFooter.vector_changed_slot || selNowFooter.active_slot || "brain";
289
289
  const vibeBrand = brandMap[optModeFooter] || (activeSlot === "brain" ? "VibeQMaX" : "VibeMaX");
290
290
  const modeLabel = modeCapitalized(brandedToRuntime[optMode] || optMode);
291
- const tierIcon = activeSlot === "brain" ? "🧠" : activeSlot === "medium" ? "" : activeSlot === "cheap" ? "🎁" : "";
292
- const flashIcon = isApiConnected() ? " " : "";
293
- let vibeLine = `— ${tierIcon} ${activeSlot} | ${execution.provider_label} | ${modelDisplayName(execution.model)}`;
291
+ const tierIcon = activeSlot === "brain" ? "\ud83e\udde0" : activeSlot === "medium" ? "\u2699" : activeSlot === "cheap" ? "\ud83c\udf81" : "\u26a1";
292
+ const flashIcon = isApiConnected() ? " \u26a1" : "";
293
+ let vibeLine = `\u2014 ${tierIcon} ${activeSlot} | ${execution.provider_label} | ${modelDisplayName(execution.model)}`;
294
294
  if (ltTotal > 0) {
295
295
  vibeLine += ` | $${formatUsd(ltTotal)}`;
296
296
  }
297
297
  if (isApiConnected()) {
298
298
  vibeLine += ` | ${vibeBrand}${flashIcon}`;
299
299
  }
300
- try {
301
- const bb = _latestBlackboxState;
302
- const regime = bb?.sub_regime || "INIT";
303
- vibeLine += ` | ${regime}`;
300
+ const displayMode = selNowFooter?.optimization_mode || optMode || "auto";
301
+ if (displayMode && displayMode !== "auto") {
302
+ vibeLine += ` | ${displayMode}`;
304
303
  }
305
- catch { }
306
- try {
307
- const sel = loadSelection();
308
- if (sel?.vector_changed_slot) {
309
- vibeLine += ` | → ${sel.vector_changed_slot}`;
310
- }
311
- if (sel?.optimization_mode && sel.optimization_mode !== "auto") {
312
- vibeLine += ` | ${sel.optimization_mode}`;
313
- }
304
+ if (selNowFooter?.vector_changed_slot) {
305
+ vibeLine += ` | → ${selNowFooter.vector_changed_slot}`;
314
306
  }
315
- catch { }
307
+
316
308
  const footerText = stripped + `\n\n${vibeLine} —`;
317
309
  if (_blackboxEnabled) {
318
310
  try {