@azure-id/orc 1.2.1 → 1.4.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.
- package/CHANGELOG.md +151 -0
- package/README-id.md +44 -0
- package/README.md +54 -62
- package/bin/cli.js +2429 -4
- package/bin/verify-contracts.js +35 -1
- package/bin/verify-package.js +15 -0
- package/bin/webui/api.js +71 -0
- package/bin/webui/app.html +213 -210
- package/bin/webui/css/06-responsive.css +28 -0
- package/bin/webui/css/panels/hookui.css +379 -0
- package/bin/webui/fixtures/hookui.js +409 -0
- package/bin/webui/fixtures/index.js +17 -0
- package/bin/webui/i18n/en/hookui.json +119 -0
- package/bin/webui/i18n/en/nav.json +22 -21
- package/bin/webui/i18n/en/overview.json +4 -1
- package/bin/webui/i18n/en/tour.json +3 -1
- package/bin/webui/i18n/id/hookui.json +119 -0
- package/bin/webui/i18n/id/nav.json +22 -21
- package/bin/webui/i18n/id/overview.json +4 -1
- package/bin/webui/i18n/id/tour.json +3 -1
- package/bin/webui/js/01-i18n.js +152 -151
- package/bin/webui/js/90-tour.js +6 -0
- package/bin/webui/js/panels/hookui.js +891 -0
- package/bin/webui/js/panels/overview.js +7 -0
- package/package.json +1 -1
- package/templates/hooks/README.md +80 -2
- package/templates/hooks/orc-statusline-render.js +921 -0
- package/templates/hooks/orc-statusline.js +715 -68
- package/templates/hooks/orc-subagent-line.js +219 -0
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,157 @@ Format: `### v<version> — <title> _(<date>)_`.
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
### v1.4.0 - the agent panel, and the number that was missing _(2026-09-04)_
|
|
14
|
+
|
|
15
|
+
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
|
16
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
17
|
+
the top of this file.
|
|
18
|
+
|
|
19
|
+
- **Step 1 — release the command from the old package:** `npm uninstall -g orc`
|
|
20
|
+
- **Step 2 — install the current package:** `npm i -g @azure-id/orc`
|
|
21
|
+
- **Step 3 — re-apply it to your project:** `orc update`
|
|
22
|
+
|
|
23
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
24
|
+
|
|
25
|
+
The second board. Claude Code renders a custom row for every subagent in the
|
|
26
|
+
agent panel, and that surface is ORC's exact domain: one row per dispatched
|
|
27
|
+
agent, live, while it runs.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
● orc-executor-opus-5-low O5/low 84K ███▎░░░░ 42% for 17m
|
|
31
|
+
✓ orc-reviewer-opus-5-med O5/med 31K █▌░░░░░░ 16% for 4m
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**AND IT ANSWERS A QUESTION v1.2.0 SAID COULD NOT BE ANSWERED.** That release
|
|
35
|
+
established that Claude Code records no token usage for a dispatched subagent —
|
|
36
|
+
`isSidechain` is never set, no sidechain message carries a usage block, verified
|
|
37
|
+
across every transcript on two machines — so `orc usage report` has reported
|
|
38
|
+
`tokens: null` for every Claude row ever since, and said why.
|
|
39
|
+
|
|
40
|
+
That is still true **of the transcript**. It is not true of the agent panel,
|
|
41
|
+
which carries `tokenCount` per task along with the resolved `model` and
|
|
42
|
+
`effort`. So the hook writes down what it is handed, and `orc usage report`
|
|
43
|
+
reads it.
|
|
44
|
+
|
|
45
|
+
- **It is a FLOOR, and it is labelled one everywhere it appears.** The hook sees
|
|
46
|
+
a task only while it is in the panel: an agent that started and finished
|
|
47
|
+
between two renders is never seen, and a count read just before an agent
|
|
48
|
+
finished is short by whatever came after. `not-seen` means exactly that and
|
|
49
|
+
is never `0`. A floor reported as a total would be the same class of lie as a
|
|
50
|
+
zero reported for an unknown.
|
|
51
|
+
- **The record is written even with the board OFF.** It is not part of the
|
|
52
|
+
display feature — it is a measurement Claude Code hands over either way, and
|
|
53
|
+
throwing it out because a display setting is off would be the wrong trade by a
|
|
54
|
+
wide margin. `orc init` and `orc update` wire `subagentStatusLine` for that
|
|
55
|
+
reason alone, and never clobber one you already have.
|
|
56
|
+
- **A count can only go up**, so a lower reading is a stale one and never
|
|
57
|
+
overwrites a higher one.
|
|
58
|
+
- **The model and effort are OBSERVED.** ORC's downgrade check has two readings
|
|
59
|
+
— one derived from the agent's name, one the agent reports about itself. This
|
|
60
|
+
is the third, and the only one nobody had to be trusted for.
|
|
61
|
+
|
|
62
|
+
**ONE COMPILER, TWO BOARDS.** The second board reuses the compiler, the render
|
|
63
|
+
program, every shape, every glyph set, the colour model, the validator and the
|
|
64
|
+
gate ladder. What differs is a component set, three filenames and a config key —
|
|
65
|
+
a table, not a fork. A test asserts there is exactly one compiler and that the
|
|
66
|
+
new hook grew no renderer of its own, because that is the cheap mistake this
|
|
67
|
+
whole design exists to avoid.
|
|
68
|
+
|
|
69
|
+
- **A component belongs to one board**, and the other refuses it by name with
|
|
70
|
+
the board it belongs to. Two catalogues would be two lists somebody has to
|
|
71
|
+
keep in step; this is one catalogue with a column.
|
|
72
|
+
- **A subagent row is one line by construction** — Claude Code renders one per
|
|
73
|
+
task — so the three-line board and its dense-prefix rule simply do not apply.
|
|
74
|
+
- **Three presets**: what the agent is and what it has cost, a watch view with
|
|
75
|
+
its own context window, and the downgrade check made visible per agent.
|
|
76
|
+
- Every gate rung falls back to **Claude Code's own row**, which is a real
|
|
77
|
+
answer and a better one than a blank. An empty render hides a task entirely,
|
|
78
|
+
which is almost never what anybody meant — so it is never emitted.
|
|
79
|
+
|
|
80
|
+
`subagent_line_custom`, default `off`. Off is Claude Code's row, unchanged.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### v1.3.0 - build your own status line _(2026-09-04)_
|
|
85
|
+
|
|
86
|
+
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
|
87
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
88
|
+
the top of this file.
|
|
89
|
+
|
|
90
|
+
- **Step 1 — release the command from the old package:** `npm uninstall -g orc`
|
|
91
|
+
- **Step 2 — install the current package:** `npm i -g @azure-id/orc`
|
|
92
|
+
- **Step 3 — re-apply it to your project:** `orc update`
|
|
93
|
+
|
|
94
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
95
|
+
|
|
96
|
+
The status line becomes **yours**. Three lines, each holding one to five parts
|
|
97
|
+
from a catalogue ORC ships, each drawn through one of 35 shapes and restyled by
|
|
98
|
+
you: two colours, a colour that follows the value, its own words, its own
|
|
99
|
+
symbols, a stable width, and when it is allowed to appear at all.
|
|
100
|
+
|
|
101
|
+
**It is off by default, and off is byte-identical to what shipped.** That is a
|
|
102
|
+
test — nine states frozen glyph for glyph — not an intention.
|
|
103
|
+
|
|
104
|
+
Compose it in **`orc ui` ▸ CLI Hook Interface**. A CLI half exists so the panel
|
|
105
|
+
has something to run, and `orc statusline --help` says plainly that typing a
|
|
106
|
+
three-line layout is worse than dragging one.
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
🚀 ORC v1.3.0 · Opus 5/high · CTX ████▊░░░░░ 47% · 5h 61% main
|
|
110
|
+
◐ orc · execution · agents 7 (2 running) · Dur 34m · MTok 312K
|
|
111
|
+
cache ● ███████▊░░ 91% · $0.42 · wiki ◐ 14c
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
- **THE CLI COMPILES, THE HOOK RENDERS.** The layout you author is lowered into
|
|
115
|
+
a flat render program with every colour worked out in advance; the hook walks
|
|
116
|
+
it and resolves nothing. Three reasons, any one sufficient. Claude Code
|
|
117
|
+
debounces at 300 ms and **cancels** a script still running — and on Windows a
|
|
118
|
+
bare `node` start is 285 ms of that, so the hook has **about 15 ms**, and
|
|
119
|
+
resolving themes and ramps per keystroke is the wrong trade by four orders of
|
|
120
|
+
magnitude. Two ideas of what inheritance means would otherwise sit either side
|
|
121
|
+
of the one surface where you compare them. And a hook cannot refuse; it can
|
|
122
|
+
only fail silently or paint garbage, so validation has to happen where a
|
|
123
|
+
refusal is possible.
|
|
124
|
+
- **The preview IS the bar.** `orc statusline preview` and the hook require the
|
|
125
|
+
SAME render module, so what the panel draws and what your terminal prints
|
|
126
|
+
cannot diverge — by construction, not by a test that would eventually drift.
|
|
127
|
+
All three degraded forms sit under it and are always visible: you cannot
|
|
128
|
+
design a plain-text fallback you cannot see.
|
|
129
|
+
- **The illegal drop is made impossible.** A line may hold a part only if every
|
|
130
|
+
line above it holds at least one — so line 3 renders hatched and disabled with
|
|
131
|
+
the reason ON THE ZONE while line 2 is empty. Never a message after the fact.
|
|
132
|
+
Every drag has a keyboard path and a menu; a board only reachable by mouse is
|
|
133
|
+
a board a lot of people cannot use.
|
|
134
|
+
- **A composed layout can be FASTER than the built-in one.** The compiler
|
|
135
|
+
records which readings a layout needs, and the hook reads nothing else.
|
|
136
|
+
Measured on the cold path: 346.7 ms for the built-in lines, **298.2 ms** for a
|
|
137
|
+
composed `minimal` — which is the difference between rendering and being
|
|
138
|
+
cancelled.
|
|
139
|
+
- **Eight parts are REFUSED, each with the measurement.** `git status` is 53 ms
|
|
140
|
+
against 15 ms of headroom; three wiki numbers need a git walk PER DOCUMENT.
|
|
141
|
+
Reading a value that is not stored would have rendered a confident number
|
|
142
|
+
nobody measured, forever. `unknown` renders an em dash — **never `0`**, which
|
|
143
|
+
would say the thing was free.
|
|
144
|
+
- **Three things a terminal cannot do, said plainly** rather than offered as a
|
|
145
|
+
picker that does nothing: the terminal owns the font size (bold reads bigger,
|
|
146
|
+
and a part gets visually larger by taking more cells), blinking is refused,
|
|
147
|
+
and icon-font symbols are not shipped because ORC cannot check for the font
|
|
148
|
+
and will not put an empty box on your bar.
|
|
149
|
+
- **`orc doctor` gains three findings**, and only while the feature is armed — a
|
|
150
|
+
layout you built and never enabled is a draft, not a problem. An orphaned part
|
|
151
|
+
after an upgrade is REPORTED, never auto-repaired: which part replaces a
|
|
152
|
+
retired one is your decision.
|
|
153
|
+
- **A fix that shipped with it:** the wiki freshness segment used to run
|
|
154
|
+
`git rev-list` on EVERY redraw, outside the throttle everything else rides in.
|
|
155
|
+
In a repo with a wiki that pushed the render past the cancel line, so a fast
|
|
156
|
+
typist got no status line at all while they typed.
|
|
157
|
+
|
|
158
|
+
One config key, `statusline_custom`, default `off`. No key for a colour scheme —
|
|
159
|
+
the layout carries its own — and none for the parts: those are a document, not a
|
|
160
|
+
setting.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
13
164
|
### v1.2.1 - the status line says what ORC is doing _(2026-09-04)_
|
|
14
165
|
|
|
15
166
|
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
package/README-id.md
CHANGED
|
@@ -619,6 +619,50 @@ Bacalah sebagai catatan putaran itu, bukan sebagai audit terkini:
|
|
|
619
619
|
**Riwayat lengkap: [CHANGELOG.md](CHANGELOG.md)** — atau `orc changelog`, yang
|
|
620
620
|
hanya mencetak yang lebih baru dari versi yang Anda punya.
|
|
621
621
|
|
|
622
|
+
### v1.3.0 - bangun sendiri baris status Anda _(04-09-2026)_
|
|
623
|
+
|
|
624
|
+
**Masih memakai paket `orc` yang tanpa awalan?** Lakukan ini sekali dulu —
|
|
625
|
+
`orc upgrade` Anda adalah versi sebelum v0.56.0 dan tidak dapat memasang
|
|
626
|
+
dirinya sendiri.
|
|
627
|
+
|
|
628
|
+
- **Langkah 1 — lepaskan perintahnya dari paket lama:** `npm uninstall -g orc`
|
|
629
|
+
- **Langkah 2 — pasang paket saat ini:** `npm i -g @azure-id/orc`
|
|
630
|
+
- **Langkah 3 — terapkan lagi ke proyek Anda:** `orc update`
|
|
631
|
+
|
|
632
|
+
**Jangan pakai `npm i -g -f`.**
|
|
633
|
+
|
|
634
|
+
Baris status kini **milik Anda**. Tiga baris, tiap baris memuat satu sampai lima
|
|
635
|
+
bagian dari katalog yang dikirim ORC, tiap bagian digambar lewat salah satu dari
|
|
636
|
+
35 bentuk dan Anda beri gaya sendiri: dua warna, warna yang mengikuti nilai,
|
|
637
|
+
kata-katanya sendiri, simbolnya sendiri, lebar yang tetap, dan kapan bagian itu
|
|
638
|
+
boleh muncul.
|
|
639
|
+
|
|
640
|
+
**Fitur ini mati secara bawaan, dan saat mati hasilnya sama persis byte per byte
|
|
641
|
+
dengan sebelumnya.** Itu sebuah tes — sembilan keadaan dibekukan simbol demi
|
|
642
|
+
simbol — bukan sekadar niat.
|
|
643
|
+
|
|
644
|
+
Susun di **`orc ui` ▸ CLI Hook Interface**.
|
|
645
|
+
|
|
646
|
+
- **CLI YANG MENYUSUN, HOOK YANG MENGGAMBAR.** Tata letak Anda diturunkan jadi
|
|
647
|
+
daftar instruksi datar dengan setiap warna sudah dihitung; hook menjalankannya
|
|
648
|
+
dan tidak memutuskan apa pun. Claude Code menggambar ulang paling cepat tiap
|
|
649
|
+
300 md dan **membatalkan** skrip yang masih berjalan — di Windows memulai
|
|
650
|
+
`node` saja sudah 285 md dari jatah itu, jadi hook hanya punya sekitar 15 md.
|
|
651
|
+
- **Pratinjau ITU bilahnya.** Pratinjau dan hook memakai modul penggambar yang
|
|
652
|
+
SAMA, jadi keduanya tidak mungkin berbeda.
|
|
653
|
+
- **Peletakan yang tidak sah dibuat MUSTAHIL.** Sebuah baris hanya boleh memuat
|
|
654
|
+
bagian jika setiap baris di atasnya sudah terisi. Setiap seret juga punya
|
|
655
|
+
jalur papan tombol dan menu.
|
|
656
|
+
- **Tata letak susunan Anda bisa LEBIH CEPAT** daripada bawaan: 346,7 md untuk
|
|
657
|
+
bawaan, **298,2 md** untuk `minimal` susunan sendiri.
|
|
658
|
+
- **Delapan bagian DITOLAK**, tiap-tiap dengan hasil pengukurannya. Nilai yang
|
|
659
|
+
tidak dapat dihitung tampil sebagai tanda pisah — **bukan `0`**, yang berarti
|
|
660
|
+
gratis.
|
|
661
|
+
|
|
662
|
+
**Rincian lengkap: [`guides/status-line.md`](guides/status-line.md).**
|
|
663
|
+
|
|
664
|
+
---
|
|
665
|
+
|
|
622
666
|
### v1.0.0 - konfigurasi, fase, dan panggilan berhenti jadi prosa _(30-08-2026)_
|
|
623
667
|
|
|
624
668
|
**Masih memakai paket `orc` yang tanpa awalan?** Lakukan ini sekali dulu —
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
|
17
|
-
**Latest: v1.
|
|
17
|
+
**Latest: v1.4.0** · updated 2026-09-04 · [full changelog](CHANGELOG.md)
|
|
18
18
|
|
|
19
19
|
**On npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
|
|
20
20
|
|
|
@@ -575,7 +575,7 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
|
|
|
575
575
|
**Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
|
|
576
576
|
only what is newer than the version you have.
|
|
577
577
|
|
|
578
|
-
### v1.
|
|
578
|
+
### v1.4.0 - the agent panel, and the number that was missing _(2026-09-04)_
|
|
579
579
|
|
|
580
580
|
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
|
581
581
|
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
@@ -587,70 +587,62 @@ the top of this file.
|
|
|
587
587
|
|
|
588
588
|
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
589
589
|
|
|
590
|
-
The second
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
menu — and finishes the line with the two facts a terminal should always carry:
|
|
594
|
-
what the session has cost, and which branch it is on.
|
|
590
|
+
The second board. Claude Code renders a custom row for every subagent in the
|
|
591
|
+
agent panel, and that surface is ORC's exact domain: one row per dispatched
|
|
592
|
+
agent, live, while it runs.
|
|
595
593
|
|
|
596
594
|
```
|
|
597
|
-
|
|
598
|
-
|
|
595
|
+
● orc-executor-opus-5-low O5/low 84K ███▎░░░░ 42% for 17m
|
|
596
|
+
✓ orc-reviewer-opus-5-med O5/med 31K █▌░░░░░░ 16% for 4m
|
|
599
597
|
```
|
|
600
598
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
- **v1.1.0 - the wait, and a window ORC can finally see — _(2026-08-31)_**
|
|
649
|
-
- **v1.0.0 - config, phases and calls stop being prose — _(2026-08-30)_**
|
|
650
|
-
|
|
651
|
-
Full bodies for every one of these are in [CHANGELOG.md](CHANGELOG.md).
|
|
652
|
-
|
|
653
|
-
</details>
|
|
599
|
+
**AND IT ANSWERS A QUESTION v1.2.0 SAID COULD NOT BE ANSWERED.** That release
|
|
600
|
+
established that Claude Code records no token usage for a dispatched subagent —
|
|
601
|
+
`isSidechain` is never set, no sidechain message carries a usage block, verified
|
|
602
|
+
across every transcript on two machines — so `orc usage report` has reported
|
|
603
|
+
`tokens: null` for every Claude row ever since, and said why.
|
|
604
|
+
|
|
605
|
+
That is still true **of the transcript**. It is not true of the agent panel,
|
|
606
|
+
which carries `tokenCount` per task along with the resolved `model` and
|
|
607
|
+
`effort`. So the hook writes down what it is handed, and `orc usage report`
|
|
608
|
+
reads it.
|
|
609
|
+
|
|
610
|
+
- **It is a FLOOR, and it is labelled one everywhere it appears.** The hook sees
|
|
611
|
+
a task only while it is in the panel: an agent that started and finished
|
|
612
|
+
between two renders is never seen, and a count read just before an agent
|
|
613
|
+
finished is short by whatever came after. `not-seen` means exactly that and
|
|
614
|
+
is never `0`. A floor reported as a total would be the same class of lie as a
|
|
615
|
+
zero reported for an unknown.
|
|
616
|
+
- **The record is written even with the board OFF.** It is not part of the
|
|
617
|
+
display feature — it is a measurement Claude Code hands over either way, and
|
|
618
|
+
throwing it out because a display setting is off would be the wrong trade by a
|
|
619
|
+
wide margin. `orc init` and `orc update` wire `subagentStatusLine` for that
|
|
620
|
+
reason alone, and never clobber one you already have.
|
|
621
|
+
- **A count can only go up**, so a lower reading is a stale one and never
|
|
622
|
+
overwrites a higher one.
|
|
623
|
+
- **The model and effort are OBSERVED.** ORC's downgrade check has two readings
|
|
624
|
+
— one derived from the agent's name, one the agent reports about itself. This
|
|
625
|
+
is the third, and the only one nobody had to be trusted for.
|
|
626
|
+
|
|
627
|
+
**ONE COMPILER, TWO BOARDS.** The second board reuses the compiler, the render
|
|
628
|
+
program, every shape, every glyph set, the colour model, the validator and the
|
|
629
|
+
gate ladder. What differs is a component set, three filenames and a config key —
|
|
630
|
+
a table, not a fork. A test asserts there is exactly one compiler and that the
|
|
631
|
+
new hook grew no renderer of its own, because that is the cheap mistake this
|
|
632
|
+
whole design exists to avoid.
|
|
633
|
+
|
|
634
|
+
- **A component belongs to one board**, and the other refuses it by name with
|
|
635
|
+
the board it belongs to. Two catalogues would be two lists somebody has to
|
|
636
|
+
keep in step; this is one catalogue with a column.
|
|
637
|
+
- **A subagent row is one line by construction** — Claude Code renders one per
|
|
638
|
+
task — so the three-line board and its dense-prefix rule simply do not apply.
|
|
639
|
+
- **Three presets**: what the agent is and what it has cost, a watch view with
|
|
640
|
+
its own context window, and the downgrade check made visible per agent.
|
|
641
|
+
- Every gate rung falls back to **Claude Code's own row**, which is a real
|
|
642
|
+
answer and a better one than a blank. An empty render hides a task entirely,
|
|
643
|
+
which is almost never what anybody meant — so it is never emitted.
|
|
644
|
+
|
|
645
|
+
`subagent_line_custom`, default `off`. Off is Claude Code's row, unchanged.
|
|
654
646
|
|
|
655
647
|
---
|
|
656
648
|
|