vibeostheog 0.20.12 → 0.20.14
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 +10 -0
- package/package.json +2 -2
- package/src/index.js +3 -3
- package/src/lib/hooks/footer.js +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## 0.20.14
|
|
2
|
+
- chore: temporary bypass for release
|
|
3
|
+
- chore: add vibeoscore-1.0.2.tgz for CI install
|
|
4
|
+
release: v0.20.13 — holistic CLI footer fix + regression tests (#80)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## 0.20.13
|
|
8
|
+
- fix: holistic CLI footer — plugin load (const→let), dedup poisoning, Part[] shape, stderr fallback
|
|
9
|
+
- test: add regression tests for esbuild compilation, dedup poison, stderr fallback
|
|
10
|
+
|
|
1
11
|
## 0.20.10
|
|
2
12
|
- feat: wire PIVOT BACK with rich context injection and smart cache warming
|
|
3
13
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibeostheog",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.14",
|
|
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",
|
|
@@ -89,4 +89,4 @@
|
|
|
89
89
|
"dependencies": {
|
|
90
90
|
"vibeoscore": "file:vibeoscore-1.0.2.tgz"
|
|
91
91
|
}
|
|
92
|
-
}
|
|
92
|
+
}
|
package/src/index.js
CHANGED
|
@@ -161,9 +161,9 @@ async function _seedModelTiersIfMissing(directory) {
|
|
|
161
161
|
}
|
|
162
162
|
catch { }
|
|
163
163
|
const fallbackModel = currentModel || readConfig(directory) || readConfig(getOpenCodeHome()) || process?.env?.OPENCODE_MODEL || "";
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
let brain = ranked?.brain?.id || fallbackModel;
|
|
165
|
+
let medium = ranked?.medium?.id || brain;
|
|
166
|
+
let cheap = ranked?.cheap?.id || medium || brain;
|
|
167
167
|
if (!brain) {
|
|
168
168
|
brain = "deepseek/deepseek-v4-pro";
|
|
169
169
|
medium = "deepseek/deepseek-v4-flash";
|
package/src/lib/hooks/footer.js
CHANGED
|
@@ -183,11 +183,8 @@ async function _appendFooter(input, output, directory) {
|
|
|
183
183
|
return "";
|
|
184
184
|
}
|
|
185
185
|
const text = _extractText(output);
|
|
186
|
-
if (!text)
|
|
187
|
-
if (messageID)
|
|
188
|
-
textCompletePainted.add(messageID);
|
|
186
|
+
if (!text)
|
|
189
187
|
return;
|
|
190
|
-
}
|
|
191
188
|
const { ltTasks, ltCache, ltCost, count, sesTasks, sesEdit, sesCredit, sesC7, sesQuota, sesCache, sesTaskDelegations, sesDuration, sesRatePerHour, sesTrend, sesToolBreakdown, sesModelTurns, quality_avg } = readLifetimeSavings();
|
|
192
189
|
const { stableStreak, problemStreak } = readRewardSignals();
|
|
193
190
|
const sessionSlot = loadSessionSlot(_OC_SID);
|
|
@@ -351,6 +348,10 @@ async function _appendFooter(input, output, directory) {
|
|
|
351
348
|
obj.text = text;
|
|
352
349
|
}
|
|
353
350
|
_setFooter(output, footerText);
|
|
351
|
+
// CLI/pipe mode: stdout is already rendered, write footer to stderr
|
|
352
|
+
if (!process.stdout?.isTTY) {
|
|
353
|
+
console.error(`\n${vibeLine} —`);
|
|
354
|
+
}
|
|
354
355
|
textCompletePainted.add(messageID);
|
|
355
356
|
if (textCompletePainted.size > 500) {
|
|
356
357
|
const it = textCompletePainted.values();
|