fix(terminal): stabilize skills table width across Terminal.app and iTerm (#42849)
* Terminal: measure grapheme display width * Tests: cover grapheme terminal width * Terminal: wrap table cells by grapheme width * Tests: cover emoji table alignment * Terminal: refine table wrapping and width handling * Terminal: stop shrinking CLI tables by one column * Skills: use Terminal-safe emoji in list output * Changelog: note terminal skills table fixes * Skills: normalize emoji presentation across outputs * Terminal: consume unsupported escape bytes in tables
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import type { Command } from "commander";
|
||||
import { defaultRuntime } from "../../runtime.js";
|
||||
import { renderTable } from "../../terminal/table.js";
|
||||
import { getTerminalTableWidth, renderTable } from "../../terminal/table.js";
|
||||
import { shortenHomePath } from "../../utils.js";
|
||||
import {
|
||||
type CameraFacing,
|
||||
@@ -71,7 +71,7 @@ export function registerNodesCameraCommands(nodes: Command) {
|
||||
}
|
||||
|
||||
const { heading, muted } = getNodesTheme();
|
||||
const tableWidth = Math.max(60, (process.stdout.columns ?? 120) - 1);
|
||||
const tableWidth = getTerminalTableWidth();
|
||||
const rows = devices.map((device) => ({
|
||||
Name: typeof device.name === "string" ? device.name : "Unknown Camera",
|
||||
Position: typeof device.position === "string" ? device.position : muted("unspecified"),
|
||||
|
||||
Reference in New Issue
Block a user