@sayknow-cli/coding-agent 0.4.4 → 0.4.6
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
CHANGED
|
@@ -5,6 +5,43 @@ This file tracks the **fork's own releases**; upstream's full feature history li
|
|
|
5
5
|
in that project. Each release notes the upstream version it is built on.
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
## [0.4.6] — 2026-07-23
|
|
9
|
+
|
|
10
|
+
### Fixed (Sayknow Pet sizing/animation under tmux)
|
|
11
|
+
|
|
12
|
+
- **Wrap the terminal cell-pixel-size query (`CSI 16 t`) in tmux's DCS
|
|
13
|
+
passthrough envelope.** Under tmux the query was answered by tmux itself with
|
|
14
|
+
a wrong cell size, so the sixel pet was encoded far too large — it overflowed
|
|
15
|
+
the composer and its animation froze (the oversized sprite resolved to an
|
|
16
|
+
out-of-bounds position, so each animation frame's overlay payload became
|
|
17
|
+
`null` and never redrew). The outer terminal now reports its real cell size,
|
|
18
|
+
so the pet renders at its intended 2-row height and animates. Only affected
|
|
19
|
+
tmux + a sixel terminal (the 0.4.5 pet-in-tmux path); non-multiplexed
|
|
20
|
+
rendering was already correct.
|
|
21
|
+
|
|
22
|
+
## [0.4.5] — 2026-07-23
|
|
23
|
+
|
|
24
|
+
### Added (Sayknow Pet in tmux)
|
|
25
|
+
|
|
26
|
+
- **Auto-enable the Sayknow Pet (and inline sixel graphics) under tmux when the
|
|
27
|
+
outer terminal genuinely supports sixel.** Previously graphics were
|
|
28
|
+
unconditionally suppressed under any multiplexer because tmux advertises
|
|
29
|
+
compile-time sixel support (`DA1 ";4"`) regardless of the attached terminal,
|
|
30
|
+
and no code emitted the DCS passthrough envelope. Now:
|
|
31
|
+
- The startup sixel capability probe runs under tmux with its DA1 +
|
|
32
|
+
XTSMGRAPHICS queries wrapped in tmux's `\ePtmux;…\e\\` passthrough envelope,
|
|
33
|
+
so the **outer** terminal answers — a positive reply is genuine end-to-end
|
|
34
|
+
evidence, not tmux's unreliable self-report. screen/zellij (no passthrough
|
|
35
|
+
envelope) stay suppressed.
|
|
36
|
+
- Sixel render output (pet frames + inline images) is wrapped in the same
|
|
37
|
+
passthrough envelope under tmux.
|
|
38
|
+
- SKC-launched tmux sessions set `allow-passthrough on` (pane-scoped, quiet on
|
|
39
|
+
tmux < 3.3) automatically.
|
|
40
|
+
- Probe-gated and safe: terminals that do not actually render sixel through
|
|
41
|
+
tmux (e.g. Ghostty, which uses the kitty protocol and has no sixel) never
|
|
42
|
+
activate it, so no garbage escapes are emitted. Set `SKC_SIXEL_MULTIPLEXER=0`
|
|
43
|
+
to force the pre-0.4.5 behavior (graphics off under tmux).
|
|
44
|
+
|
|
8
45
|
## [0.4.4] — 2026-07-22
|
|
9
46
|
|
|
10
47
|
### Fixed (workflow arbitration native)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@sayknow-cli/coding-agent",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.6",
|
|
5
5
|
"description": "Sayknow-CLI CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://sayknow-cli.com",
|
|
7
7
|
"author": "jaybeyond",
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"@agentclientprotocol/sdk": "1.2.1",
|
|
53
53
|
"@babel/parser": "^7.29.3",
|
|
54
54
|
"@mozilla/readability": "^0.6.0",
|
|
55
|
-
"@sayknow-cli/stats": "0.4.
|
|
56
|
-
"@sayknow-cli/agent-core": "0.4.
|
|
57
|
-
"@sayknow-cli/ai": "0.4.
|
|
58
|
-
"@sayknow-cli/natives": "0.4.
|
|
59
|
-
"@sayknow-cli/tui": "0.4.
|
|
60
|
-
"@sayknow-cli/utils": "0.4.
|
|
55
|
+
"@sayknow-cli/stats": "0.4.6",
|
|
56
|
+
"@sayknow-cli/agent-core": "0.4.6",
|
|
57
|
+
"@sayknow-cli/ai": "0.4.6",
|
|
58
|
+
"@sayknow-cli/natives": "0.4.6",
|
|
59
|
+
"@sayknow-cli/tui": "0.4.6",
|
|
60
|
+
"@sayknow-cli/utils": "0.4.6",
|
|
61
61
|
"@puppeteer/browsers": "^2.13.0",
|
|
62
62
|
"@types/turndown": "5.0.6",
|
|
63
63
|
"@xterm/headless": "^6.0.0",
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
type SayknowPixelFrameName,
|
|
15
15
|
type SayknowPixelFrames,
|
|
16
16
|
type TUI,
|
|
17
|
+
wrapTmuxPassthrough,
|
|
17
18
|
} from "@sayknow-cli/tui";
|
|
18
19
|
import type { CustomEditor } from "./custom-editor";
|
|
19
20
|
import { getPetPixelProtocol } from "./pet-capability";
|
|
@@ -280,6 +281,9 @@ export class SayknowPetWidget {
|
|
|
280
281
|
sixelTopPaddingPx: protocol === "sixel" ? PET_SIXEL_DROP_PX : 0,
|
|
281
282
|
kittyCellYOffsetPx: protocol === "kitty" ? petKittyDropPx(cell.heightPx) : 0,
|
|
282
283
|
kittyImageId: protocol === "kitty" ? this.#kittyImageId : undefined,
|
|
284
|
+
// Forward the pet's sixel raster through tmux's DCS passthrough envelope
|
|
285
|
+
// when under tmux (no-op otherwise), so the outer terminal renders it.
|
|
286
|
+
wrapSixel: wrapTmuxPassthrough,
|
|
283
287
|
});
|
|
284
288
|
this.#framedEditor.setReserve(this.#pixel.columns + PET_SIDE_MARGIN);
|
|
285
289
|
}
|
|
@@ -245,6 +245,13 @@ export function buildSkcTmuxProfileCommands(
|
|
|
245
245
|
if (envDisabled(env[SKC_TMUX_PROFILE_ENV])) return commands;
|
|
246
246
|
commands.push(
|
|
247
247
|
{ description: "enable tmux clipboard integration", args: ["set-option", "-t", target, "set-clipboard", "on"] },
|
|
248
|
+
{
|
|
249
|
+
// Forward DCS passthrough (sixel graphics / Sayknow Pet) to the outer
|
|
250
|
+
// terminal. `-pq` scopes it to this session's pane (never the global
|
|
251
|
+
// server state) and stays quiet on tmux < 3.3 where the option is unknown.
|
|
252
|
+
description: "allow DCS passthrough for sixel graphics",
|
|
253
|
+
args: ["set-option", "-pq", "-t", target, "allow-passthrough", "on"],
|
|
254
|
+
},
|
|
248
255
|
{
|
|
249
256
|
description: "make copy-mode selection readable",
|
|
250
257
|
args: ["set-window-option", "-t", target, "mode-style", "fg=colour231,bg=colour60"],
|