u-foo 3.0.24 → 3.0.25

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.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "u-foo",
3
- "version": "3.0.24",
3
+ "version": "3.0.25",
4
4
  "description": "Multi-Agent Workspace Protocol. Just add u. claude → uclaude, codex → ucodex.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://ufoo.dev",
@@ -175,7 +175,7 @@ async function dispatchUcodeSlashCommand(result, ports = {}) {
175
175
  const banner = Array.isArray(ports.bannerLines) ? ports.bannerLines : [];
176
176
  const bannerEntries = banner.concat([""]).map((line, idx) => ({
177
177
  id: `b-${idx}`,
178
- kind: "system",
178
+ kind: idx < banner.length ? "banner" : "spacer",
179
179
  text: String(line || ""),
180
180
  speaker: "",
181
181
  }));
@@ -154,17 +154,19 @@ function buildUcodeBannerLines({
154
154
  }
155
155
  shortPath = path.normalize(shortPath);
156
156
 
157
- const logoLines = UCODE_BANNER_LINES.map((line) => chalk.cyan(line));
157
+ // The banner is content, not a log message. Keep it free of ANSI styling so
158
+ // every terminal renderer can display it as a stable, unformatted block.
159
+ const logoLines = UCODE_BANNER_LINES;
158
160
  const infoLines = [];
159
- infoLines.push(`${chalk.dim("Version:")} ${chalk.cyan.bold(UCODE_VERSION)}`);
160
- infoLines.push(`${chalk.dim("Model:")} ${chalk.yellow(modelLabel)}`);
161
+ infoLines.push(`Version: ${UCODE_VERSION}`);
162
+ infoLines.push(`Model: ${modelLabel}`);
161
163
  if (planMode) {
162
- infoLines.push(`${chalk.dim("Mode:")} ${chalk.magenta.bold("PLAN")}`);
164
+ infoLines.push("Mode: PLAN");
163
165
  }
164
- infoLines.push(`${chalk.dim("Dictionary:")} ${chalk.gray(shortPath)}`);
166
+ infoLines.push(`Dictionary: ${shortPath}`);
165
167
  const normalizedSessionId = String(sessionId || "").trim();
166
168
  if (normalizedSessionId) {
167
- infoLines.push(`${chalk.dim("Session:")} ${chalk.gray(normalizedSessionId)}`);
169
+ infoLines.push(`Session: ${normalizedSessionId}`);
168
170
  }
169
171
  const logoPadding = " ".repeat(
170
172
  UCODE_BANNER_LINES.reduce((max, line) => Math.max(max, String(line || "").length), 0)
@@ -464,7 +464,7 @@ async function runUcodeRust(props = {}) {
464
464
  footer: agentsSnap.footer,
465
465
  entries: banner.concat([""]).map((line, idx) => ({
466
466
  id: `b-${idx}`,
467
- kind: "system",
467
+ kind: idx < banner.length ? "banner" : "spacer",
468
468
  text: stripTags(line),
469
469
  speaker: "",
470
470
  })),
Binary file
Binary file
Binary file