Skip to content

Commit 04e103d

Browse files
authored
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
1 parent 10e6e27 commit 04e103d

32 files changed

Lines changed: 298 additions & 66 deletions

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ Docs: https://docs.openclaw.ai
168168
- ACP/cancel scoping: scope `chat.abort` and shared-session ACP event routing by `runId` so one session cannot cancel or consume another session's run when they share the same gateway session key. (#41331) Thanks @pejmanjohn.
169169
- SecretRef/models: harden custom/provider secret persistence and reuse across models.json snapshots, merge behavior, runtime headers, and secret audits. (#42554) Thanks @joshavant.
170170
- macOS/browser proxy: serialize non-GET browser proxy request bodies through `AnyCodable.foundationValue` so nested JSON bodies no longer crash the macOS app with `Invalid type in JSON write (__SwiftValue)`. (#43069) Thanks @Effet.
171+
- CLI/skills tables: keep terminal table borders aligned for wide graphemes, use full reported terminal width, and switch a few ambiguous skill icons to Terminal-safe emoji so `openclaw skills` renders more consistently in Terminal.app and iTerm. Thanks @vincentkoc.
171172

172173
## 2026.3.7
173174

skills/eightctl/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "🎛️",
9+
"emoji": "🛌",
1010
"requires": { "bins": ["eightctl"] },
1111
"install":
1212
[

skills/gemini/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "♊️",
9+
"emoji": "",
1010
"requires": { "bins": ["gemini"] },
1111
"install":
1212
[

skills/openai-image-gen/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "🖼️",
9+
"emoji": "🎨",
1010
"requires": { "bins": ["python3"], "env": ["OPENAI_API_KEY"] },
1111
"primaryEnv": "OPENAI_API_KEY",
1212
"install":

skills/openai-whisper-api/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "☁️",
9+
"emoji": "🌐",
1010
"requires": { "bins": ["curl"], "env": ["OPENAI_API_KEY"] },
1111
"primaryEnv": "OPENAI_API_KEY",
1212
},

skills/openai-whisper/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "🎙️",
9+
"emoji": "🎤",
1010
"requires": { "bins": ["whisper"] },
1111
"install":
1212
[

skills/sag/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "🗣️",
9+
"emoji": "🔊",
1010
"requires": { "bins": ["sag"], "env": ["ELEVENLABS_API_KEY"] },
1111
"primaryEnv": "ELEVENLABS_API_KEY",
1212
"install":

skills/sherpa-onnx-tts/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
{
66
"openclaw":
77
{
8-
"emoji": "🗣️",
8+
"emoji": "🔉",
99
"os": ["darwin", "linux", "win32"],
1010
"requires": { "env": ["SHERPA_ONNX_RUNTIME_DIR", "SHERPA_ONNX_MODEL_DIR"] },
1111
"install":

skills/video-frames/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
{
77
"openclaw":
88
{
9-
"emoji": "🎞️",
9+
"emoji": "🎬",
1010
"requires": { "bins": ["ffmpeg"] },
1111
"install":
1212
[

skills/weather/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: weather
33
description: "Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or detailed meteorological analysis. No API key needed."
44
homepage: https://wttr.in/:help
5-
metadata: { "openclaw": { "emoji": "🌤️", "requires": { "bins": ["curl"] } } }
5+
metadata: { "openclaw": { "emoji": "", "requires": { "bins": ["curl"] } } }
66
---
77

88
# Weather Skill

0 commit comments

Comments
 (0)