@azure-id/orc 1.4.0 → 1.4.2
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 +229 -0
- package/README-id.md +39 -2
- package/README.md +53 -63
- package/bin/cli.js +212 -15
- package/bin/webui/api.js +16 -0
- package/bin/webui/css/04-motion.css +61 -0
- package/bin/webui/css/06-responsive.css +17 -1
- package/bin/webui/css/panels/hookui.css +493 -98
- package/bin/webui/fixtures/hookui.js +431 -409
- package/bin/webui/i18n/en/hookui.json +119 -44
- package/bin/webui/i18n/en/tour.json +1 -1
- package/bin/webui/i18n/id/hookui.json +137 -62
- package/bin/webui/i18n/id/tour.json +1 -1
- package/bin/webui/js/panels/hookui.js +1266 -466
- package/package.json +1 -1
- package/templates/hooks/README.md +8 -1
- package/templates/hooks/orc-statusline.js +15 -4
- package/templates/hooks/orc-subagent-line.js +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,235 @@ Format: `### v<version> — <title> _(<date>)_`.
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
### v1.4.2 - the panel that stops reloading, and the fields you could not read back _(2026-09-05)_
|
|
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
|
+
Four more defects in `orc ui` ▸ **CLI Hook Interface**, reported by the person
|
|
26
|
+
who uses it. Three of them turned out to be **the same defect wearing three
|
|
27
|
+
faces**, which is why the fix is one idea rather than four patches.
|
|
28
|
+
|
|
29
|
+
**STAGING A CHANGE RELOADED THE WHOLE PANEL, AND THAT IS WHY EDITING LOOKED
|
|
30
|
+
BROKEN.** Every staged op re-entered the router: the panel was thrown away, four
|
|
31
|
+
endpoints were refetched, and everything was rebuilt from a skeleton. Move a
|
|
32
|
+
chip, pick a colour, type a name - the page visibly reloaded each time. That is
|
|
33
|
+
bad on its own, and it produced two worse things.
|
|
34
|
+
|
|
35
|
+
The first is that **a staged change looked like an applied one.** The picture came
|
|
36
|
+
back looking different, so there was nothing left to tell you the write had not
|
|
37
|
+
happened. The second is that **the open editor went stale.** The dialog stayed on
|
|
38
|
+
screen while the panel behind it was replaced, so every control in it was still
|
|
39
|
+
showing the value from BEFORE the change you had just made. You picked a shape,
|
|
40
|
+
the sample did not move; you typed a name, the box did not keep it. The only
|
|
41
|
+
reasonable conclusion was that editing did not work.
|
|
42
|
+
|
|
43
|
+
Nothing is fetched now until something actually moves the disk - Apply, a
|
|
44
|
+
preset, the reset, the switch, a board change, a recompile. A staged op paints
|
|
45
|
+
from the cache it already has: **zero requests**, the scroll position kept by
|
|
46
|
+
hand. The open editor is registered for that repaint and re-finds its part by
|
|
47
|
+
its stable ref, so what is on screen is always the effective value - **and the
|
|
48
|
+
caret survives**, because an editor that rebuilds on every keystroke and drops
|
|
49
|
+
focus after one letter is not an editor. A name now stages per keystroke rather
|
|
50
|
+
than on blur, which is what made a name typed and then clicked away from race
|
|
51
|
+
the close and sometimes never stage at all.
|
|
52
|
+
|
|
53
|
+
**AND THE FIELDS THEMSELVES COULD NOT BE READ BACK: `--json is not a summary`,
|
|
54
|
+
found again.** `orc statusline show --json` emitted **twelve** of the
|
|
55
|
+
twenty-four fields a part can carry. So `case`, `prefix`, `suffix`, `glyphs`,
|
|
56
|
+
`format`, `compact`, `min_width`, `precision`, `width`, `min_cols`, `max_cols`
|
|
57
|
+
and `priority` were written to disk correctly by a CLI that has always accepted
|
|
58
|
+
them - and were then **invisible to the panel that wrote them**. Reopen the
|
|
59
|
+
editor and the control was blank. Colour worked; almost nothing else appeared to.
|
|
60
|
+
Every resolved field ships now, plus `authored` - the raw item as the user wrote
|
|
61
|
+
it - so a control can finally say **which values are yours** rather than
|
|
62
|
+
inherited from the catalogue or the colour set. A dot beside a control name is
|
|
63
|
+
that answer.
|
|
64
|
+
|
|
65
|
+
**SIX PARTS PER LINE, NOT FIVE**, and the cap moved in ONE place
|
|
66
|
+
(`SL_MAX_PER_LINE`), because a slot limit spelled out at each of its five call
|
|
67
|
+
sites is a limit that drifts on the first change. The limit is about reading
|
|
68
|
+
rather than rendering: a line is scanned at a glance, and six is where people
|
|
69
|
+
stopped asking for one more. A spacer, a divider and a fill still do not count -
|
|
70
|
+
they are not things the line SAYS.
|
|
71
|
+
|
|
72
|
+
**THE DROPDOWN NOBODY COULD READ WAS A PANEL WITH NO COLOURS AT ALL.**
|
|
73
|
+
`hookui.css` had been written against `--bg-sunken`, `--bg-raised`, `--fg` and
|
|
74
|
+
`--fg-dim`, and **none of those tokens exist** - the real names are
|
|
75
|
+
`--surface-2`, `--surface-3`, `--text` and `--text-dim`. Every one of those
|
|
76
|
+
declarations was silently dropped by the browser, which is why the "Between
|
|
77
|
+
parts" select had no background of its own and its open list rendered near-white
|
|
78
|
+
on near-white. All 34 are mapped onto real tokens, and the option list now
|
|
79
|
+
states BOTH halves plus `color-scheme`, because a native popup is drawn by the
|
|
80
|
+
platform and inherits only the half you leave to chance.
|
|
81
|
+
|
|
82
|
+
**THE PREVIEW IS DRAWN AS A TERMINAL NOW**, because that is the claim it is
|
|
83
|
+
making. A status line in a bare grey box is a string; the same string inside a
|
|
84
|
+
window of the stated width, on a terminal ground, with a **column ruler** under
|
|
85
|
+
it, is a picture of the thing. The bytes did not change - it is still
|
|
86
|
+
`templates/hooks/orc-statusline-render.js`, the hook's own engine - what changed
|
|
87
|
+
is that you can believe it. Each line's cell count sits under the window it
|
|
88
|
+
belongs to instead of in a row of chips a long way from it.
|
|
89
|
+
|
|
90
|
+
**And you can now see what you are choosing.** `orc statusline preview` takes
|
|
91
|
+
`--theme` and `--glyphs` as a **render-only** override: the same saved layout,
|
|
92
|
+
drawn under a different colour set or symbol set, **writing nothing**. The panel
|
|
93
|
+
uses it for one drawer - *See it in other setups* - holding the three strippings
|
|
94
|
+
(no colour, plain text, no motion), all four colour sets and all seven symbol
|
|
95
|
+
sets. Picking a colour set from its name is a guess; picking it from its picture
|
|
96
|
+
is a decision. The drawer is **closed by default and its rows are fetched only
|
|
97
|
+
when it is opened**: eleven extra renders nobody asked to see is eleven
|
|
98
|
+
subprocesses nobody asked to pay for.
|
|
99
|
+
|
|
100
|
+
**AND THE SIXTH PART STILL RESET THE BAR TO THE DEFAULT, BECAUSE THE CAP WAS IN
|
|
101
|
+
THREE PLACES.** Raising it in the validator was not enough. The hook has a cheap
|
|
102
|
+
shape guard of its own — it re-checks the compiled file rather than trusting it,
|
|
103
|
+
because a hand-edited compiled file is a file nobody validated — and that guard
|
|
104
|
+
held its own `5`. So a legal six-part line fell straight through to the shipped
|
|
105
|
+
two lines, with the reason recorded in a ledger file nobody was looking at. It
|
|
106
|
+
also counted **every** item, including spacers and fills, which the validator
|
|
107
|
+
never has: a legal five plus a fill fell back too, and always had.
|
|
108
|
+
|
|
109
|
+
A hook cannot call this CLI — a status line re-renders on every keystroke — so
|
|
110
|
+
the cap now travels ON the lock file (already gated on `orc_version`, so a stale
|
|
111
|
+
copy cannot outlive its build) and the compiler marks each structural item,
|
|
112
|
+
because a compiled op carries an instance id and never a component type. Both
|
|
113
|
+
hooks read both. One cap, one counting rule, three readers.
|
|
114
|
+
|
|
115
|
+
**AND A NAME YOU TYPED SOMETIMES WENT NOWHERE, WHICH WAS TRUE AND UNSAID.**
|
|
116
|
+
Seven of the thirty-five shapes draw a name: `plain`, `label-value`, `bracket`,
|
|
117
|
+
`angle`, `badge`, `pill`, `stack`. The other twenty-eight — every bar, every
|
|
118
|
+
icon, every bare value — ignore it entirely, and that is the design: a bar with
|
|
119
|
+
a word in front of it is a different shape. But the Name box was offered on all
|
|
120
|
+
thirty-five. It took the text, the CLI wrote it to disk correctly, and nothing
|
|
121
|
+
ever appeared on the bar or in the preview. The same was true of the number and
|
|
122
|
+
text settings on a bar, which lowers a width and a colour ramp and no format at
|
|
123
|
+
all.
|
|
124
|
+
|
|
125
|
+
Each renderer now publishes the item fields it actually **uses**, and the editor
|
|
126
|
+
greys out the ones this shape ignores — **keeping the slot**, with the reason and
|
|
127
|
+
the list of shapes that do use it, because "this shape cannot use it" and "we
|
|
128
|
+
forgot to offer it" must not look the same, and a value already set has to stay
|
|
129
|
+
readable. The sentence sits under the shape gallery too, since the shape is what
|
|
130
|
+
decides it. A golden test reads the compiler's own switch and fails if the two
|
|
131
|
+
lists disagree.
|
|
132
|
+
|
|
133
|
+
**AND IT STILL BLINKED, WITH THE NETWORK TAB EMPTY.** Removing the refetch was
|
|
134
|
+
half the fix. `hkPaint` still replaces every child of the panel, and the
|
|
135
|
+
stylesheet fades and slides each one in on a 30ms stagger — so a staged change
|
|
136
|
+
still read as a page reload, on every keystroke, exactly as reported. Entrance
|
|
137
|
+
animations are now removed from the second paint onward, and inside the part
|
|
138
|
+
editor on every rebuild. The transitions are untouched: hover, the drop marker
|
|
139
|
+
and the staged edge are about the pointer rather than about arriving.
|
|
140
|
+
|
|
141
|
+
One more honesty fix rode along: the sample in the part editor is labelled for
|
|
142
|
+
what it is. `previews` is a per-renderer sample the CLI drew from its own
|
|
143
|
+
fixture, so it shows the **shape** a part will take and never the words or the
|
|
144
|
+
numbers it will carry at run time. It used to say it was drawn with your changes
|
|
145
|
+
in it, and for a label it was not.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### v1.4.1 - the board you can actually use _(2026-09-05)_
|
|
150
|
+
|
|
151
|
+
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
|
152
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
153
|
+
the top of this file.
|
|
154
|
+
|
|
155
|
+
- **Step 1 — release the command from the old package:** `npm uninstall -g orc`
|
|
156
|
+
- **Step 2 — install the current package:** `npm i -g @azure-id/orc`
|
|
157
|
+
- **Step 3 — re-apply it to your project:** `orc update`
|
|
158
|
+
|
|
159
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
160
|
+
|
|
161
|
+
Four defects in `orc ui` ▸ **CLI Hook Interface**, and the revamp they asked
|
|
162
|
+
for. Reported by the person who designed it, which is the useful kind of report:
|
|
163
|
+
*"this is massive, what the heck is this UI, so plain and not interactive."*
|
|
164
|
+
|
|
165
|
+
**ADDING THREE PARTS PRODUCED ONE, AND THAT WAS ARITHMETIC, NOT A UI COMPLAINT.**
|
|
166
|
+
Every `+ line N` button in the old palette computed its write's position from the
|
|
167
|
+
**saved** layout rather than from the layout being staged. Three staged adds all
|
|
168
|
+
carried position 1 — and `orc statusline set <line> <pos>` with an item already
|
|
169
|
+
at that position is an **EDIT**, by design. So the second write changed the first
|
|
170
|
+
part's type, the third changed it again, and one part appeared where three were
|
|
171
|
+
asked for. The five-slot cap counted the same stale layout, so it never fired
|
|
172
|
+
either.
|
|
173
|
+
|
|
174
|
+
The fix is structural rather than careful. A staged change is now a **semantic op
|
|
175
|
+
against a stable ref** — `add` · `remove` · `move` · `set` · `sep` · `doc` — and
|
|
176
|
+
one function, `hkPlan`, replays them in order to produce **both** the board you
|
|
177
|
+
are looking at **and** the writes that produce it, deriving every position at the
|
|
178
|
+
moment that write will run. A second idea of where a part will land is exactly
|
|
179
|
+
the bug this replaces: the board drew one arrangement and the writes made
|
|
180
|
+
another, silently. The cap, the dense-prefix rule and the "line is full" refusal
|
|
181
|
+
all read that same effective board now.
|
|
182
|
+
|
|
183
|
+
**THE COLOUR SET WROTE ONE LINE AND READ THE WHOLE DOCUMENT.** The picker shelled
|
|
184
|
+
`orc statusline line 1 --theme`, which sets **line 1's** override, while
|
|
185
|
+
`statusline show --json` reports `layout.theme`. So the selected button never
|
|
186
|
+
moved and only a third of the bar changed colour — half working, which is worse
|
|
187
|
+
than not working. New command `orc statusline doc [--theme] [--glyphs] [--ansi]
|
|
188
|
+
[--align-columns]` writes document-level settings, and **clears the per-line
|
|
189
|
+
overrides that would otherwise shadow the choice** — a setting silently shadowed
|
|
190
|
+
is the failure this command exists to fix. One command per scope, and the panel
|
|
191
|
+
calls the one that matches the control.
|
|
192
|
+
|
|
193
|
+
**THE PREVIEW HAD NEVER HAD COLOUR.** `orc ui` serves under
|
|
194
|
+
`style-src 'self'`, which blocks a parsed `style` **attribute** outright — so
|
|
195
|
+
every SGR colour `ansiBlock` computed was thrown away by the browser, with the
|
|
196
|
+
reason only in a console nobody had open. The properties are assigned through
|
|
197
|
+
CSSOM now, which is not a parse and is not blocked. Loosening the policy to
|
|
198
|
+
`unsafe-inline` for a preview is not a trade worth making.
|
|
199
|
+
|
|
200
|
+
**AND "WHAT IS THIS THING" NOW HAS AN ANSWER ON THE PAGE.** Every part carries
|
|
201
|
+
its one-line description on the chip, in the picker and in the reference list;
|
|
202
|
+
every control in the editor carries the sentence that says what it does; the
|
|
203
|
+
`80 / 120 / 160` buttons say they are **terminal widths in character cells**;
|
|
204
|
+
and each colour set carries the CLI's own sentence about what it is for.
|
|
205
|
+
|
|
206
|
+
**The revamp itself, five changes:**
|
|
207
|
+
|
|
208
|
+
- **The board is the only place anything is applied.** The palette's three
|
|
209
|
+
`+ line N` buttons are gone. It is a **reference** now — what each part shows
|
|
210
|
+
and nothing else — because the act of building the bar belongs next to the bar.
|
|
211
|
+
- **Add · Change · Move · Remove are buttons on the chip**, and each opens a
|
|
212
|
+
**modal that says what it is about to do**. The part picker is one modal, one
|
|
213
|
+
search box, one click, and it is the only place a part is ever chosen — for a
|
|
214
|
+
new slot and for swapping an existing one.
|
|
215
|
+
- **Drag and drop**, with the drop edge marked on the chip it will land beside
|
|
216
|
+
rather than by opening a gap that shoves every other chip sideways while the
|
|
217
|
+
pointer is still deciding. It is the **shortcut, never the mechanism**: every
|
|
218
|
+
move has a button and a keyboard equivalent, and drag is switched **off for
|
|
219
|
+
real** below 600px, where a drop gap stops being a target.
|
|
220
|
+
- **The separator is a dropdown of twelve**, published by the CLI
|
|
221
|
+
(`separators` in `statusline components --json`) so the panel still names none
|
|
222
|
+
of them. A value the layout already carries that is not in the set keeps its
|
|
223
|
+
slot, leads the list and is disabled — the `fixed_executor` rule.
|
|
224
|
+
- **Motion, in `04-motion.css` and nowhere else:** a chip arrives, a chip you
|
|
225
|
+
just staged pulses three times so you can find it, a picker row slides in as
|
|
226
|
+
the list narrows under your typing. Every one is FINITE, so the reduced-motion
|
|
227
|
+
cap leaves each at rest rather than frozen part-way — and the drop marker,
|
|
228
|
+
the refusal and the staged-edge are borders, never motion.
|
|
229
|
+
|
|
230
|
+
A refusal is never a shrug: "line 3 is full, it already holds 5 parts" and
|
|
231
|
+
"put something on line 2 first" are two different facts and stay two sentences.
|
|
232
|
+
A line that cannot take a part **says so once** rather than printing the same
|
|
233
|
+
refusal on six identical disabled slots.
|
|
234
|
+
|
|
235
|
+
`statusline components --json` gains `separators`, `themes_about` and a
|
|
236
|
+
per-component `structural` flag — the panel cannot know which parts do not eat
|
|
237
|
+
one of the five without a second idea of the catalogue, which is the drift this
|
|
238
|
+
panel exists to make impossible.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
13
242
|
### v1.4.0 - the agent panel, and the number that was missing _(2026-09-04)_
|
|
14
243
|
|
|
15
244
|
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
package/README-id.md
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
*Terima permintaan → pahami → rencanakan → beri nilai → kerjakan paralel → periksa → uji → kirim.*
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|

|
|
15
15
|
|
|
16
|
-
**Versi terbaru: v1.
|
|
16
|
+
**Versi terbaru: v1.4.2** · diperbarui 05-09-2026 · [daftar perubahan lengkap](CHANGELOG.md)
|
|
17
17
|
|
|
18
18
|
**Ada di npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
|
|
19
19
|
|
|
@@ -619,6 +619,43 @@ 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.4.2 - panel yang berhenti memuat ulang, dan bidang yang tidak bisa dibaca kembali _(05-09-2026)_
|
|
623
|
+
|
|
624
|
+
Empat cacat lagi di `orc ui` ▸ **Antarmuka CLI Hook**. Tiga di antaranya adalah
|
|
625
|
+
cacat yang sama dengan tiga wajah berbeda.
|
|
626
|
+
|
|
627
|
+
**Menyiapkan satu perubahan memuat ulang seluruh panel** - tiap operasi yang
|
|
628
|
+
disiapkan masuk kembali ke router, jadi empat endpoint diambil ulang dan semua
|
|
629
|
+
dibangun lagi dari kerangka. Itu membuat perubahan yang baru disiapkan tampak
|
|
630
|
+
seperti sudah diterapkan, dan meninggalkan editor yang terbuka menampilkan nilai
|
|
631
|
+
sebelum perubahan yang baru saja Anda buat: Anda memilih bentuk, tidak ada yang
|
|
632
|
+
bergerak. Sekarang tidak ada yang diambil sampai sesuatu benar-benar mengubah
|
|
633
|
+
disk; satu operasi yang disiapkan menggambar ulang dari cache dengan **nol
|
|
634
|
+
permintaan**, menjaga posisi gulir Anda, dan editor yang terbuka ikut digambar
|
|
635
|
+
ulang - beserta kursornya.
|
|
636
|
+
|
|
637
|
+
**Dan bidangnya tidak bisa dibaca kembali.** `orc statusline show --json`
|
|
638
|
+
mengirim dua belas dari dua puluh empat bidang yang bisa dibawa sebuah bagian,
|
|
639
|
+
jadi `case`, `prefix`, `min_cols`, `precision` dan tujuh lainnya ditulis ke disk
|
|
640
|
+
dengan benar lalu tidak terlihat oleh panel yang menulisnya. Sekarang semua
|
|
641
|
+
bidang dikirim, ditambah `authored`, sehingga sebuah kontrol bisa menyebut
|
|
642
|
+
**nilai mana yang milik Anda** dan mana yang warisan.
|
|
643
|
+
|
|
644
|
+
**Enam bagian per baris, bukan lima** - dipindahkan di satu tempat, dan pemisah
|
|
645
|
+
tetap tidak dihitung. **Menu tarik-turun yang tidak terbaca** ternyata adalah
|
|
646
|
+
panel tanpa warna sama sekali: `hookui.css` ditulis memakai empat token CSS yang
|
|
647
|
+
tidak ada, jadi setiap deklarasi itu dibuang diam-diam oleh peramban.
|
|
648
|
+
|
|
649
|
+
**Pratinjau kini digambar sebagai terminal** - jendela selebar yang disebutkan
|
|
650
|
+
dengan penggaris kolom - dan `orc statusline preview` menerima `--theme` dan
|
|
651
|
+
`--glyphs` sebagai penimpaan **khusus gambar**, jadi laci baru menampilkan bar
|
|
652
|
+
yang sama di bawah keempat set warna dan ketujuh set simbol. Memilih set warna
|
|
653
|
+
dari namanya adalah tebakan; memilihnya dari gambarnya adalah keputusan.
|
|
654
|
+
|
|
655
|
+
Detail lengkap di [CHANGELOG.md](CHANGELOG.md).
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
622
659
|
### v1.3.0 - bangun sendiri baris status Anda _(04-09-2026)_
|
|
623
660
|
|
|
624
661
|
**Masih memakai paket `orc` yang tanpa awalan?** Lakukan ini sekali dulu —
|
package/README.md
CHANGED
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
*Intake → analyze → plan → score → parallel subagents → review → verify → ship.*
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
|
17
|
-
**Latest: v1.4.
|
|
17
|
+
**Latest: v1.4.2** · updated 2026-09-05 · [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,74 +575,64 @@ 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.4.
|
|
578
|
+
### v1.4.2 - the panel that stops reloading, and the fields you could not read back _(2026-09-05)_
|
|
579
579
|
|
|
580
|
-
**Still on the unscoped `orc` package?** Do this once first
|
|
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
|
|
582
582
|
the top of this file.
|
|
583
583
|
|
|
584
|
-
- **Step 1
|
|
585
|
-
- **Step 2
|
|
586
|
-
- **Step 3
|
|
584
|
+
- **Step 1 - release the command from the old package:** `npm uninstall -g orc`
|
|
585
|
+
- **Step 2 - install the current package:** `npm i -g @azure-id/orc`
|
|
586
|
+
- **Step 3 - re-apply it to your project:** `orc update`
|
|
587
587
|
|
|
588
588
|
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
589
589
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
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
|
-
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.
|
|
590
|
+
Four more defects in `orc ui` ▸ **CLI Hook Interface**. Three were the same
|
|
591
|
+
defect wearing three faces.
|
|
592
|
+
|
|
593
|
+
**Staging a change reloaded the whole panel** - every staged op re-entered the
|
|
594
|
+
router, so four endpoints were refetched and everything was rebuilt from a
|
|
595
|
+
skeleton. That made a staged change look like an applied one, and it left the
|
|
596
|
+
open editor showing values from before the change you had just made: you picked
|
|
597
|
+
a shape and nothing moved. Nothing is fetched now until something actually moves
|
|
598
|
+
the disk; a staged op repaints from cache with **zero requests**, keeps your
|
|
599
|
+
scroll position, and the open editor repaints with it - caret and all.
|
|
600
|
+
|
|
601
|
+
**And the fields could not be read back.** `orc statusline show --json` emitted
|
|
602
|
+
twelve of the twenty-four fields a part can carry, so `case`, `prefix`,
|
|
603
|
+
`min_cols`, `precision` and seven more were written to disk correctly and then
|
|
604
|
+
were invisible to the panel that wrote them. Every field ships now, plus
|
|
605
|
+
`authored`, so a control can say **which values are yours** rather than
|
|
606
|
+
inherited. `--json is not a summary`, found again.
|
|
607
|
+
|
|
608
|
+
**Six parts per line, not five.** **The dropdown nobody could read** turned out
|
|
609
|
+
to be a panel with no colours at all: `hookui.css` was written against four CSS tokens that do not
|
|
610
|
+
exist, so every one of those declarations was silently dropped.
|
|
611
|
+
|
|
612
|
+
**The preview is drawn as a terminal now** - a window of the stated width with a
|
|
613
|
+
column ruler - and `orc statusline preview` takes `--theme` and `--glyphs` as a
|
|
614
|
+
**render-only** override, so a new drawer shows the same bar under all four
|
|
615
|
+
colour sets and all seven symbol sets. Picking a colour set from its name is a
|
|
616
|
+
guess; picking it from its picture is a decision.
|
|
617
|
+
|
|
618
|
+
**And the sixth part still reset the bar to the default**, because the cap was in
|
|
619
|
+
three places: the hook re-checks the compiled file with a cheap shape guard of
|
|
620
|
+
its own, and that guard held its own `5` — and counted spacers, which the
|
|
621
|
+
validator never has. The cap now travels on the lock file and the compiler marks
|
|
622
|
+
each structural item, so one cap and one counting rule serve all three readers.
|
|
623
|
+
|
|
624
|
+
**And a name you typed sometimes went nowhere.** Seven of the thirty-five shapes
|
|
625
|
+
draw a name; the other twenty-eight ignore it, which is the design — a bar with a
|
|
626
|
+
word in front of it is a different shape. The Name box was offered on all
|
|
627
|
+
thirty-five anyway. Each renderer now publishes the fields it **uses**, and the
|
|
628
|
+
editor greys out what this shape ignores, keeping the slot and naming the shapes
|
|
629
|
+
that do.
|
|
630
|
+
|
|
631
|
+
**And it still blinked with the network tab empty:** `hkPaint` replaces every
|
|
632
|
+
child, and the stylesheet faded each one in on a stagger. Entrance animations are
|
|
633
|
+
off from the second paint onward.
|
|
634
|
+
|
|
635
|
+
Full detail in [CHANGELOG.md](CHANGELOG.md).
|
|
646
636
|
|
|
647
637
|
---
|
|
648
638
|
|