@agenit/cli 1.1.1 → 1.3.4
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 +369 -0
- package/cli.js +1766 -882
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,375 @@
|
|
|
3
3
|
All notable changes to `@agenit/cli` are documented here. The project
|
|
4
4
|
follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
5
5
|
|
|
6
|
+
## [1.3.4] - 2026-05-09
|
|
7
|
+
|
|
8
|
+
_Auto-generated entry. Edit CHANGELOG.md directly before
|
|
9
|
+
the next release to curate this section._
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Merge pull request #66 from muhammed-eldabea:fix/publish-repo-url (c9fce29)
|
|
14
|
+
- fix(release): point package.json at the AgenIT repo for npm provenance (29ae4f3)
|
|
15
|
+
|
|
16
|
+
## [1.3.3] - 2026-05-09
|
|
17
|
+
|
|
18
|
+
_Auto-generated entry. Edit CHANGELOG.md directly before
|
|
19
|
+
the next release to curate this section._
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Merge pull request #65 from muhammed-eldabea/feat/right-rail-soul-codedigest (2d68ea4)
|
|
24
|
+
- fix(repl): cycle focused job with Tab/Enter (Ctrl-J → key.return on Unix) (2263b19)
|
|
25
|
+
- fix(rail): job-tray compact mode hid freshly-started jobs (d6d80ff)
|
|
26
|
+
- fix(init): seed .flow/tools and .specify/memory/constitution.md (d87537a)
|
|
27
|
+
- feat(repl): add Ctrl-U / Ctrl-D backlog scroll for Mac compact keyboards (b0aa9da)
|
|
28
|
+
- feat(repl): scroll chat backlog with PgUp / PgDn (e955dbc)
|
|
29
|
+
- fix(repl): bottom-anchor entries to a row budget to stop bleed-through (9aca93e)
|
|
30
|
+
- fix(repl): word-wrap chat bubbles to bubble inner width (557ca5d)
|
|
31
|
+
- fix(repl): chat bubbles size correctly to multi-line content (a273ab8)
|
|
32
|
+
- fix(repl): write \r\n after rmcup so the shell prompt redraws on exit (cfcb1c6)
|
|
33
|
+
- feat(repl): bordered chat bubbles for user / agent / system / error (86efadd)
|
|
34
|
+
- fix(repl): single-line compact widgets so all four fit short terminals (f840bf7)
|
|
35
|
+
- fix(repl): bound body row to terminal height, pin chat input at bottom (f03c7b1)
|
|
36
|
+
- fix(repl): clear alt screen on resize to evict stale cells (e26907c)
|
|
37
|
+
- fix(repl): run inside alternate screen buffer to fix resize-stacking (80b0c54)
|
|
38
|
+
- fix(repl): chat in middle column + non-collapsing widget titles (4602787)
|
|
39
|
+
- fix(repl): bordered widget frames + status-toned borders on the right rail (af75b12)
|
|
40
|
+
- chore(release): bump @agenit/cli to 1.2.0 (2465b56)
|
|
41
|
+
- feat(repl): add PINNED @-files section to the side rail (46a4dfa)
|
|
42
|
+
- feat(repl): restyle ActivityStrip with chip vocabulary (feea7bb)
|
|
43
|
+
- feat(repl): restyle StatusBar with branded logo + stat pills (0109db2)
|
|
44
|
+
- feat(repl): add soul + codedigest sections to right rail (6f25ac0)
|
|
45
|
+
- feat: enhance job detail panel with live reasoning display and adjust right rail width for better readability (680e820)
|
|
46
|
+
- fix: improve tag resolution logic in release workflow for better validation (38cf4b4)
|
|
47
|
+
- feat: enhance plan approval modal with scrolling and rendering improvements (d22cb9a)
|
|
48
|
+
|
|
49
|
+
## [1.3.2] - 2026-05-09
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- **Ctrl-J never cycled to the next focused job.** On Unix terminals
|
|
54
|
+
Ctrl-J generates LF (`\n`) — the same byte as Enter — and Ink
|
|
55
|
+
reports it as `key.return`, not `key.ctrl && ch === "j"`. So the
|
|
56
|
+
cycle handler never fired; the keystroke fell through, the panel
|
|
57
|
+
closed (or the empty-input submit ran), and "d" leaked into the
|
|
58
|
+
input field on the next user keypress. Tab and Enter now also
|
|
59
|
+
cycle when a job is already focused (the panel replaces the input
|
|
60
|
+
field, so Enter has no other meaning there); Ctrl-J is preserved
|
|
61
|
+
for terminals that do report it correctly. Footer hint updated to
|
|
62
|
+
`Tab / Enter to cycle to next job`.
|
|
63
|
+
|
|
64
|
+
## [1.3.1] - 2026-05-09
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- **Job Tray widget hides freshly-started jobs.** The compact-mode
|
|
69
|
+
summary line only listed `jobs[0].snapshot.label`, so when the
|
|
70
|
+
always-running `soul-keeper` daemon held the top slot, a `/goal start`
|
|
71
|
+
the user just kicked off was counted ("2 running") but invisible by
|
|
72
|
+
name. The summary now lists every job's `kind: label` joined by
|
|
73
|
+
middle-dots and adds a `Ctrl-] expand · Ctrl-G focus` hint at the
|
|
74
|
+
end (truncated to fit one row).
|
|
75
|
+
|
|
76
|
+
## [1.3.0] - 2026-05-09
|
|
77
|
+
|
|
78
|
+
### Fixed
|
|
79
|
+
|
|
80
|
+
- **`/goal start` no longer dies with ENOENT on plan.md.** `agenit init`
|
|
81
|
+
was seeding `.gemini/skills/` and `.gemini/settings.json` but not
|
|
82
|
+
`.flow/tools/` or `.specify/memory/constitution.md`. The skill files
|
|
83
|
+
reference both — speckit-specify shells out to
|
|
84
|
+
`.flow/tools/speckit_native.py`, speckit-plan reads
|
|
85
|
+
`.specify/memory/constitution.md` on step 2 — so the skills installed
|
|
86
|
+
into a project but their runtime dependencies didn't, and the
|
|
87
|
+
pipeline died downstream when `plan-via-speckit` ENOENT'd on the
|
|
88
|
+
`plan.md` the skill never wrote (because the model was busy
|
|
89
|
+
thrashing for the missing tool/constitution and never reached
|
|
90
|
+
`write_file`).
|
|
91
|
+
`seedGeminiAssets` now also recursively copies `.flow/tools/*` from
|
|
92
|
+
flowHome and seeds a default `constitution.md` if the target lacks
|
|
93
|
+
one. Tool copies overwrite (CLI ships truth); constitution preserves
|
|
94
|
+
user edits across re-init.
|
|
95
|
+
|
|
96
|
+
### Changed
|
|
97
|
+
|
|
98
|
+
- **`agenit init` output adds two lines** reporting tool count and
|
|
99
|
+
constitution status, so users can confirm the bootstrap is complete
|
|
100
|
+
before running `/goal start`.
|
|
101
|
+
|
|
102
|
+
## [1.2.13] - 2026-05-09
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
|
|
106
|
+
- **Ctrl-U / Ctrl-D scroll the chat backlog (Mac-friendly).** Mac
|
|
107
|
+
compact keyboards don't have dedicated PgUp / PgDn keys — they
|
|
108
|
+
require Fn+Up / Fn+Down, which is awkward in a terminal. Ctrl-U
|
|
109
|
+
(older) and Ctrl-D (newer) follow the vim / less / tmux convention
|
|
110
|
+
and work on every keyboard. PgUp / PgDn still work for users with
|
|
111
|
+
full keyboards. Help banner and scroll hints updated to lead with
|
|
112
|
+
Ctrl-U / Ctrl-D.
|
|
113
|
+
|
|
114
|
+
## [1.2.12] - 2026-05-09
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
|
|
118
|
+
- **PgUp / PgDn scroll the chat backlog.** The `↑ N earlier messages
|
|
119
|
+
above` hint was a dead end — there was no way to actually view those
|
|
120
|
+
older entries. PgUp now shifts the visible window backward through
|
|
121
|
+
history one entry at a time; PgDn shifts forward. The scroll offset
|
|
122
|
+
auto-resets to the bottom whenever a new entry arrives so users
|
|
123
|
+
always see the reply to the prompt they just sent. A `↓ N newer
|
|
124
|
+
message{s} below` hint surfaces at the bottom of the chat area when
|
|
125
|
+
scrollback is engaged. Help banner updated.
|
|
126
|
+
|
|
127
|
+
## [1.2.11] - 2026-05-09
|
|
128
|
+
|
|
129
|
+
### Fixed
|
|
130
|
+
|
|
131
|
+
- **Long chat backlogs no longer bleed past the viewport.** When the
|
|
132
|
+
cumulative height of all entries exceeded the chat column's available
|
|
133
|
+
rows, Ink rendered them past the bottom of the viewport — producing
|
|
134
|
+
bleed-through artifacts (old chars from a prior frame staying on
|
|
135
|
+
cells the new frame didn't repaint, e.g. `cycle jobsory` instead of
|
|
136
|
+
`cycle jobs`). The entries window now uses a row budget instead of a
|
|
137
|
+
fixed count of 12: each entry's wrapped row count is measured via
|
|
138
|
+
the same `wordWrap` helper used for rendering, then we walk newest →
|
|
139
|
+
oldest and keep entries until the budget is hit, anchoring the latest
|
|
140
|
+
reply to the bottom. The `↑ N earlier` hint covers the rest. The
|
|
141
|
+
budget accounts for the activity strip, job strip, busy spinner,
|
|
142
|
+
expanded reasoning card, and picker dynamically.
|
|
143
|
+
|
|
144
|
+
## [1.2.10] - 2026-05-09
|
|
145
|
+
|
|
146
|
+
### Fixed
|
|
147
|
+
|
|
148
|
+
- **Chat bubbles now contain wrapped text on narrow terminals.** When
|
|
149
|
+
an agent reply contained lines longer than the chat column, Ink
|
|
150
|
+
would word-wrap them visually but Yoga only counted the logical
|
|
151
|
+
lines toward the bubble's height — so the box clipped the bottom
|
|
152
|
+
rows of long answers. `MultilineText` now pre-wraps text at the
|
|
153
|
+
bubble's inner width (`cols − sideRail − rightRail − bubble chrome`)
|
|
154
|
+
using an ANSI-aware tokenizer, so each `<Text>` child equals exactly
|
|
155
|
+
one visual row and the box sizes correctly. Wide terminals were
|
|
156
|
+
unaffected because nothing wrapped; the bug was width-dependent.
|
|
157
|
+
|
|
158
|
+
## [1.2.9] - 2026-05-09
|
|
159
|
+
|
|
160
|
+
### Fixed
|
|
161
|
+
|
|
162
|
+
- **Chat bubbles now contain multi-line content correctly.** The
|
|
163
|
+
agent's `/goal status` response (and any other multi-line markdown
|
|
164
|
+
reply) was overflowing past the bubble's bottom border because Ink
|
|
165
|
+
doesn't always count `\n` characters within a single `<Text>`
|
|
166
|
+
toward the parent Box's auto-height — especially when the string
|
|
167
|
+
carries ANSI escapes from `renderMarkdown`. EntryView now splits
|
|
168
|
+
each entry's text into one `<Text>` per line via a new
|
|
169
|
+
`MultilineText` helper; Ink counts children rather than
|
|
170
|
+
newline-characters, so the box sizes to N rows reliably.
|
|
171
|
+
|
|
172
|
+
## [1.2.8] - 2026-05-09
|
|
173
|
+
|
|
174
|
+
### Fixed
|
|
175
|
+
|
|
176
|
+
- **Shell prompt now redraws after `/exit`.** The rmcup escape on
|
|
177
|
+
alt-screen exit restores the cursor to where it was when alt-screen
|
|
178
|
+
was entered — typically right after the `agenit\n` the user typed
|
|
179
|
+
to launch us, on a logically-blank line. zsh and bash only redraw
|
|
180
|
+
their prompt when the cursor is on a fresh line, so the user was
|
|
181
|
+
left staring at a blank line until they pressed Enter. The exit
|
|
182
|
+
hook now writes `\r\n` after rmcup to advance to a fresh line, so
|
|
183
|
+
the shell's prompt renders naturally on `/exit` / Ctrl-C / SIGTERM.
|
|
184
|
+
|
|
185
|
+
## [1.2.7] - 2026-05-09
|
|
186
|
+
|
|
187
|
+
### Changed
|
|
188
|
+
|
|
189
|
+
- **Chat messages now render as bordered bubbles** — each entry
|
|
190
|
+
(user, agent, system, error) is wrapped in a rounded `<Box>` with
|
|
191
|
+
a status-toned border and a uppercase role badge inside the frame:
|
|
192
|
+
`● YOU` (blue), `● AGENT` (mint), `● SYSTEM` (amber), `● ERROR`
|
|
193
|
+
(red). Matches the right-rail widget vocabulary so the whole UI
|
|
194
|
+
reads as one consistent surface.
|
|
195
|
+
|
|
196
|
+
## [1.2.6] - 2026-05-09
|
|
197
|
+
|
|
198
|
+
UX patch — all four rail widgets fit even in short terminals.
|
|
199
|
+
|
|
200
|
+
### Changed
|
|
201
|
+
|
|
202
|
+
- **Compact mode is now a single body line per widget.** Each rail
|
|
203
|
+
widget renders as a 4-row card (frame top + title + 1 line + frame
|
|
204
|
+
bottom) with a status-toned dot in the title. The marginTop above
|
|
205
|
+
the frame goes to 0 in compact mode so widgets sit flush. Total
|
|
206
|
+
rail height: 16 rows for four widgets — fits in ≥ 18-row terminals.
|
|
207
|
+
Press Ctrl-] to expand any widget back to full detail.
|
|
208
|
+
- JOB TRAY compact: `N {status} · top-job kind: label`
|
|
209
|
+
- SOUL compact: `block heads · N entries`
|
|
210
|
+
- CODEDIGEST compact: `N chunks · built T · M recent`
|
|
211
|
+
- THINKING compact: last reasoning line only
|
|
212
|
+
- `overflow="hidden"` added to the body row so any widget content
|
|
213
|
+
beyond the row's bounded height clips at the boundary instead of
|
|
214
|
+
bleeding into adjacent renders.
|
|
215
|
+
|
|
216
|
+
## [1.2.5] - 2026-05-09
|
|
217
|
+
|
|
218
|
+
UX patch on top of 1.2.4 — anchors the chat input at the bottom of
|
|
219
|
+
the middle column and bounds rail widget height so chat is always
|
|
220
|
+
visible.
|
|
221
|
+
|
|
222
|
+
### Changed
|
|
223
|
+
|
|
224
|
+
- **Body row is now bounded to the terminal height** (`rows`). The
|
|
225
|
+
middle column uses `justifyContent="space-between"` to pin chat
|
|
226
|
+
input + reasoning + activity at the bottom and let the entries
|
|
227
|
+
area flex-grow above. Resolves the bug where extending the
|
|
228
|
+
terminal vertically pushed the chat input below the visible area.
|
|
229
|
+
- **Soul widget compact mode shows 1 block × 1 bullet only** — was 2
|
|
230
|
+
blocks × 3 bullets, which could overflow the rail height. Other
|
|
231
|
+
blocks surface as `+N more blocks · Ctrl-] to expand`. Full mode
|
|
232
|
+
(Ctrl-]) shows all blocks with up to 8 bullets each.
|
|
233
|
+
|
|
234
|
+
### Fixed
|
|
235
|
+
|
|
236
|
+
- **Soul bullet wrap-tails bleeding into the side rail are gone.**
|
|
237
|
+
Each `SoulRow` element now wraps its `<Text>` in an explicit
|
|
238
|
+
`<Box width={width}>` so Ink is forced to constrain the text to
|
|
239
|
+
the rail's column. Without the explicit width, Ink could fall
|
|
240
|
+
back to the text's natural length and wrap onto the next visual
|
|
241
|
+
line — visible as fragments like `ion code wi…`, `Clever embe…`,
|
|
242
|
+
`e. ASIL sco…` appearing in the side rail.
|
|
243
|
+
|
|
244
|
+
## [1.2.4] - 2026-05-09
|
|
245
|
+
|
|
246
|
+
UX patch on top of 1.2.3.
|
|
247
|
+
|
|
248
|
+
### Fixed
|
|
249
|
+
|
|
250
|
+
- **Resize artifacts cleared on every resize event.** Even inside the
|
|
251
|
+
alt screen, Ink only repaints cells the new frame visits — cells
|
|
252
|
+
the old frame wrote to that the new frame doesn't revisit kept
|
|
253
|
+
their old content. Visible as wrap-tail fragments from the right
|
|
254
|
+
rail (`ion code wi…`, `Clever embe…`, `ASIL sco…`) appearing in
|
|
255
|
+
the side rail's column after a narrow-to-wide or wide-to-narrow
|
|
256
|
+
resize. The resize handler in `App.tsx` now writes `\x1b[2J\x1b[H`
|
|
257
|
+
(clear screen + cursor home) before updating cols/rows state, so
|
|
258
|
+
Ink's next paint starts from a blank buffer.
|
|
259
|
+
|
|
260
|
+
## [1.2.3] - 2026-05-09
|
|
261
|
+
|
|
262
|
+
UX patch on top of 1.2.2 — fixes terminal-resize re-rendering and
|
|
263
|
+
restores a clean exit experience.
|
|
264
|
+
|
|
265
|
+
### Fixed
|
|
266
|
+
|
|
267
|
+
- **Terminal resize no longer stacks stale layouts in scrollback.**
|
|
268
|
+
The REPL now runs inside the terminal's alternate screen buffer
|
|
269
|
+
(smcup / rmcup), the same mode `vim` / `htop` / `less` use. Resize,
|
|
270
|
+
re-render, and modal transitions all happen on a fresh buffer; the
|
|
271
|
+
original terminal state is restored on every exit path (clean exit,
|
|
272
|
+
Ctrl-C, SIGTERM, SIGHUP). Trade-off: the conversation isn't visible
|
|
273
|
+
in scrollback after `/exit`, but it persists to the session file
|
|
274
|
+
on disk — `agenit resume` recovers the transcript.
|
|
275
|
+
|
|
276
|
+
## [1.2.2] - 2026-05-09
|
|
277
|
+
|
|
278
|
+
UX patch on top of 1.2.1.
|
|
279
|
+
|
|
280
|
+
### Changed
|
|
281
|
+
|
|
282
|
+
- **Chat lives in the middle column now.** Previous renders put the
|
|
283
|
+
goal banner, user prompts, and agent responses into Ink's
|
|
284
|
+
`<Static>` (which renders into terminal scrollback above the
|
|
285
|
+
layout), so the middle column between the rails was empty. Entries
|
|
286
|
+
now render inside `main` between the StatusBar and the input,
|
|
287
|
+
capped to the last 12 messages so the layout stays bounded. A
|
|
288
|
+
dim `↑ N earlier messages above` hint surfaces when older entries
|
|
289
|
+
are off-screen. Trade-off: terminal scrollback no longer holds a
|
|
290
|
+
pristine copy of the conversation — but the layout matches the
|
|
291
|
+
three-pane workbench design.
|
|
292
|
+
|
|
293
|
+
### Fixed
|
|
294
|
+
|
|
295
|
+
- Widget titles (`JOB TRAY`, `SOUL`, `CODEDIGEST`, `THINKING`) no
|
|
296
|
+
longer collapse on short or narrow terminals. `WidgetFrame`
|
|
297
|
+
declares `flexShrink={0}` on itself, the title row, and the
|
|
298
|
+
subtitle row so Ink can't evict them when the rail's bounded
|
|
299
|
+
height is smaller than the natural content height. The fix
|
|
300
|
+
resolves the `1 runningY` row-collision artifact where
|
|
301
|
+
`JOB TRAY` was being squeezed into the subtitle row and only
|
|
302
|
+
the trailing `Y` survived.
|
|
303
|
+
|
|
304
|
+
## [1.2.1] - 2026-05-09
|
|
305
|
+
|
|
306
|
+
UX patch on top of 1.2.0 — fixes the right-rail rendering issues
|
|
307
|
+
spotted on a 56-col rail where the title and subtitle of each
|
|
308
|
+
section collided onto the same row.
|
|
309
|
+
|
|
310
|
+
### Fixed
|
|
311
|
+
|
|
312
|
+
- Each rail section is now wrapped in a single bordered `WidgetFrame`
|
|
313
|
+
with a status-toned border (idle=blue, running=green, stopped=red)
|
|
314
|
+
rather than relying on per-card borders alone. The section title
|
|
315
|
+
and subtitle live inside that frame on separate rows — the
|
|
316
|
+
letter-spacing trick that was producing `T R A Y` collisions has
|
|
317
|
+
been removed.
|
|
318
|
+
- Job tray, codedigest, and thinking widgets compute their own status
|
|
319
|
+
tone from their data: jobs running / jobs errored, codedigest
|
|
320
|
+
index missing / recently searched, reasoning fresh / stale.
|
|
321
|
+
- Goal-kind job rows now get a full progress bar with percentage and
|
|
322
|
+
an elapsed-time line so the goal widget reads as a primary surface.
|
|
323
|
+
Other job kinds keep the compact two-line layout.
|
|
324
|
+
|
|
325
|
+
## [1.2.0] - 2026-05-09
|
|
326
|
+
|
|
327
|
+
A minor bump for a redesign pass on the rail chrome: the right rail
|
|
328
|
+
now carries soul, codedigest, and reasoning sections alongside the
|
|
329
|
+
job tray; the top status bar gets stat pills; the side rail carries
|
|
330
|
+
recent `@`-paths under the V-Model view.
|
|
331
|
+
|
|
332
|
+
### Added
|
|
333
|
+
|
|
334
|
+
- **Right rail** — three new sections beyond the existing job tray:
|
|
335
|
+
`SOUL` (per-block cards from `.flow/soul.md`, refreshed every 2s),
|
|
336
|
+
`CODEDIGEST` (chunk count + last-build freshness + language pills +
|
|
337
|
+
recent searches with top-hit location), and `THINKING` (tail of the
|
|
338
|
+
live reasoning stream). Folding is mode-driven: compact by default,
|
|
339
|
+
full when widened.
|
|
340
|
+
- **Resizable right rail** — width now scales proportionally with the
|
|
341
|
+
terminal (`clamp(36, 30%·cols, 56)` default) instead of jumping
|
|
342
|
+
between fixed tiers. `Ctrl-]` toggles a wider mode
|
|
343
|
+
(`clamp(48, 42%·cols, 80)`) that keeps the chat visible — the
|
|
344
|
+
inline counterpart to the full-screen `Ctrl-J` / `Ctrl-G` modal.
|
|
345
|
+
- **Status bar restyle** — branded `agenIT flow` logo with the IT
|
|
346
|
+
highlighted in the design's signal red, a project context pill
|
|
347
|
+
(`[ ● project · ⎇ branch ]`), and right-aligned bracket pills for
|
|
348
|
+
YOLO / MODEL / STAGE.
|
|
349
|
+
- **ActivityStrip chips** — skill / agent / tool counts now render as
|
|
350
|
+
bracket pills with per-kind tool color coding (write=red,
|
|
351
|
+
read=muted, shell=amber).
|
|
352
|
+
- **PINNED side-rail section** — the side rail now keeps a 5-deep
|
|
353
|
+
list of `@`-paths the user referenced in their last few prompts.
|
|
354
|
+
Long paths ellipsize from the left so the basename is preserved.
|
|
355
|
+
- `/codedigest search` results are recorded into an in-memory ring
|
|
356
|
+
buffer (capacity 10) so the rail can show what was searched without
|
|
357
|
+
changing the `@flow/codedigest` API.
|
|
358
|
+
|
|
359
|
+
### Changed
|
|
360
|
+
|
|
361
|
+
- `RightRail` no longer guards on `tuiState.backgroundJobs.length > 0`
|
|
362
|
+
— it renders whenever any of jobs / soul / codedigest / reasoning
|
|
363
|
+
has content. Empty terminals (no project, no jobs) still drop to
|
|
364
|
+
a clean chat view.
|
|
365
|
+
- `pickRightRailMode` simplified from four tiers (wide/narrow/strip/
|
|
366
|
+
hidden) to three (rail/strip/hidden); width is computed by the new
|
|
367
|
+
`rightRailColumns(cols, expanded)` helper.
|
|
368
|
+
|
|
369
|
+
### Removed
|
|
370
|
+
|
|
371
|
+
- Old `JobCard` and `solveJobLayout` per-card vertical-flex allocator
|
|
372
|
+
— superseded by the section-host design where each section bounds
|
|
373
|
+
its own content. `JobStrip` (narrow-mode fallback) is unchanged.
|
|
374
|
+
|
|
6
375
|
## [1.1.1] - 2026-05-08
|
|
7
376
|
|
|
8
377
|
A patch bump on top of 1.1.0 covering the rebuild after the
|