acuvo-code 0.3.4 → 0.3.5
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/ENTERPRISE.md +1 -1
- package/lib/chat.mjs +25 -1
- package/package.json +1 -1
package/ENTERPRISE.md
CHANGED
|
@@ -189,7 +189,7 @@ are the numbers to quote. Counting is the first thing a reviewer does.
|
|
|
189
189
|
|
|
190
190
|
⚠️ **This said "18 shipped files", then "41", then "90", then "101", then "108", and every
|
|
191
191
|
one went stale in turn.** The package ships **119 files — 117 in `lib/`, 2 in
|
|
192
|
-
`bin/` — about
|
|
192
|
+
`bin/` — about 77604 lines**, with **235 test files** beside them (counted 2026-08-22).
|
|
193
193
|
|
|
194
194
|
⭐ **AND THE 108 WENT STALE IN THE MOST INSTRUCTIVE WAY POSSIBLE: THREE OF THE FILES IT
|
|
195
195
|
MISSED WERE REACHABLE FROM NOTHING.** `wiring-reach.test.mjs` was naming
|
package/lib/chat.mjs
CHANGED
|
@@ -353,9 +353,33 @@ export async function runChat({
|
|
|
353
353
|
|
|
354
354
|
try {
|
|
355
355
|
for (;;) {
|
|
356
|
+
/**
|
|
357
|
+
* ── ⭐⭐ THE INPUT IS A BOX, BECAUSE A BARE `› ` IS NOT A PLACE TO TYPE ──
|
|
358
|
+
*
|
|
359
|
+
* Roman, comparing against a real Claude Code screenshot: *"you can see
|
|
360
|
+
* the box where you type, acuvo doesn't have that."* He is right — the
|
|
361
|
+
* prompt was two characters floating in the scrollback, which reads as
|
|
362
|
+
* output rather than as somewhere input goes.
|
|
363
|
+
*
|
|
364
|
+
* ⚠️ THE BOX OPENS BEFORE THE LINE AND CLOSES AFTER IT, deliberately.
|
|
365
|
+
* Drawing all four sides up front needs absolute cursor control, and
|
|
366
|
+
* readline owns the cursor once `question()` starts — every version of
|
|
367
|
+
* that fights the line editor the moment input wraps, a history entry is
|
|
368
|
+
* recalled, or the window is resized. Opening on entry and closing on
|
|
369
|
+
* submit needs no cursor math at all, survives all three, and leaves a
|
|
370
|
+
* transcript where each turn is visibly a closed unit.
|
|
371
|
+
*
|
|
372
|
+
* ⚠️ WIDTH IS READ FRESH EACH TURN — a terminal resized mid-session would
|
|
373
|
+
* otherwise draw rules at the old width for the rest of the run. Clamped,
|
|
374
|
+
* because `columns` is `undefined` when stdout is not a TTY and enormous
|
|
375
|
+
* when someone maximises on an ultrawide.
|
|
376
|
+
*/
|
|
377
|
+
const width = Math.max(40, Math.min(100, (output.columns ?? process.stdout.columns ?? 80) - 1));
|
|
378
|
+
if (interactive) output.write(`\n╭${'─'.repeat(width - 1)}\n`);
|
|
356
379
|
const line = interactive
|
|
357
|
-
? await ask(rl, '› ', state)
|
|
380
|
+
? await ask(rl, '│ › ', state)
|
|
358
381
|
: (queueIndex < queued.length ? queued[queueIndex++] : null);
|
|
382
|
+
if (interactive && line !== null) output.write(`╰${'─'.repeat(width - 1)}\n`);
|
|
359
383
|
// Echo a piped prompt so a scripted transcript reads like a session.
|
|
360
384
|
if (!interactive && line !== null && line.trim()) output.write(`› ${line.trim()}
|
|
361
385
|
`);
|