vibeostheog 0.23.24 → 0.23.26

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.26
2
+ - fix: footer primary tier = ML decision (vector_changed_slot), ✓ when applied
3
+
4
+
5
+ ## 0.23.25
6
+ - fix: footer always shows regime + vector_changed + optimization_mode — no expiry, no hidden conditions
7
+
8
+
1
9
  ## 0.23.24
2
10
  - fix: ML-driven tier pipeline end-to-end
3
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibeostheog",
3
- "version": "0.23.24",
3
+ "version": "0.23.26",
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",
@@ -285,12 +285,12 @@ 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
  }
@@ -298,15 +298,26 @@ async function _appendFooter(input, output, directory) {
298
298
  vibeLine += ` | ${vibeBrand}${flashIcon}`;
299
299
  }
300
300
  try {
301
- const bb = _latestBlackboxState;
302
- if (bb?.sub_regime)
303
- vibeLine += ` | ${bb.sub_regime}`;
301
+ const sel = loadSelection();
302
+ const realSlot = sel?.active_slot || "brain";
303
+ const wantedSlot = sel?.vector_changed_slot;
304
+ if (wantedSlot) {
305
+ if (wantedSlot !== realSlot) {
306
+ vibeLine += ` | \u2192 ${wantedSlot}`;
307
+ } else {
308
+ vibeLine += ` | \u2713`;
309
+ }
310
+ }
304
311
  }
305
312
  catch { }
306
313
  try {
307
314
  const sel = loadSelection();
308
- if (sel?.vector_changed_slot && sel?.vector_changed_at && (Date.now() - sel.vector_changed_at < 60000)) {
309
- vibeLine += ` | → ${sel.vector_changed_slot}`;
315
+ if (sel?.vector_changed_slot) {
316
+ if (sel.vector_changed_slot !== activeSlot) {
317
+ vibeLine += ` | → ${sel.vector_changed_slot}`;
318
+ } else {
319
+ vibeLine += ` | ✓`;
320
+ }
310
321
  }
311
322
  }
312
323
  catch { }