@vincemakes/kiso-tui-cells 0.18.0 → 0.19.0

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.
@@ -392,7 +392,6 @@ export interface StretchTerms {
392
392
  */
393
393
  export declare function stretchLine(t: StretchTerms & {
394
394
  readonly phase: "thinking" | "acting" | "settled";
395
- readonly foldKey?: number;
396
395
  }, W: number): string[];
397
396
  export declare function turnFold(t: {
398
397
  words: string;
@@ -1249,7 +1249,20 @@ export function stretchLine(t, W) {
1249
1249
  const p = palette();
1250
1250
  const live = t.phase !== "settled";
1251
1251
  const mark = t.phase === "settled" ? `${p.bold}✦${p.reset}` : `${p.dim}${t.mark ?? "✧"}${p.reset}`;
1252
- const key = t.phase === "settled" ? (t.foldKey === undefined ? " · ctrl+r" : ` · ctrl+r ${t.foldKey}`) : "";
1252
+ // R4a (owner ruling, 2026-08-30) the fold row prints NO key.
1253
+ //
1254
+ // R4 printed `· ctrl+r 3` so the row could name its own target. The
1255
+ // owner's objection is the right one: a number you cannot type is not
1256
+ // a selector, it is decoration that costs a column — and the
1257
+ // reference implementation, checked rather than assumed, prints
1258
+ // nothing on the row either. Its expansion lives in a MODE you enter,
1259
+ // where the pointer can reach every fold including the ones that have
1260
+ // scrolled away; the row itself stays clean.
1261
+ //
1262
+ // So the affordance is retired here and owed to that mode. Until it
1263
+ // exists, `ctrl+r` still opens the most recent fold — it is simply no
1264
+ // longer advertised on a row that cannot say which one it means.
1265
+ const key = "";
1253
1266
  const lead = t.phase === "thinking" ? [`thinking ${t.thoughtSeconds}s`] : t.phase === "settled" && t.thoughtSeconds > 0 ? [`thought ${t.thoughtSeconds}s`] : [];
1254
1267
  const clauseText = troubleClause(t);
1255
1268
  let meta = [...lead, ...(t.phase === "thinking" ? [] : stretchTerms(t, live))].join(" · ");
package/dist/strings.js CHANGED
@@ -189,6 +189,11 @@ export const KEY_BINDINGS = [
189
189
  { keys: "/", what: "commands" },
190
190
  { keys: "↑↓", what: "history / queue pop" },
191
191
  { keys: "ctrl+r", what: "expand cells" },
192
+ // R5 — the transcript viewer. It has to be HERE or it does not exist:
193
+ // R4a retired the printed key from the fold row on the ground that a
194
+ // row cannot say which fold a key opens, and the sheet is where the
195
+ // discoverability moved. A surface nobody can find is not a feature.
196
+ { keys: "ctrl+o", what: "transcript" },
192
197
  { keys: "tab", what: "complete (menu / @)" },
193
198
  { keys: "?", what: "this sheet" },
194
199
  { keys: "ctrl+z / ctrl+y", what: "undo / redo" },
@@ -254,15 +259,22 @@ const SHEET_GRID = [
254
259
  [0, 1, 2],
255
260
  [3, 4, 5],
256
261
  [6, 7],
262
+ // R5: ctrl+o joins at index 8, so the tail shifts by one. The grid is
263
+ // a SECOND table that must agree with KEY_BINDINGS and nothing makes
264
+ // it — adding a binding without touching this silently drops the LAST
265
+ // one off the sheet, which is exactly what happened on the first
266
+ // attempt and exactly what the "ONE SOURCE" gate exists to catch.
257
267
  [8, 9],
258
- [10], // UD-1: its own single-column rowno hand-tuned stop touched
268
+ // UD-1's undo row shares this one now the table has an even count
269
+ // again, so no binding needs a row to itself.
270
+ [10, 11],
259
271
  ];
260
272
  const SHEET_STOPS = [
261
273
  [16, 43],
262
274
  [16, 43],
263
275
  [36],
264
276
  [36],
265
- [],
277
+ [36],
266
278
  ];
267
279
  /**
268
280
  * TUI2-R1 (D) — the sheet, one screen, static.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vincemakes/kiso-tui-cells",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "kiso tui-cells — the components cell renderer (components, diff, width, the render slice). Zero runtime dependencies: input is data, output is bytes.",
5
5
  "type": "module",
6
6
  "license": "MIT",