@seungyeop-lee/beads-ui 0.13.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/CHANGES.md ADDED
@@ -0,0 +1,469 @@
1
+ # Changes
2
+
3
+ ## 0.13.0
4
+
5
+ - [`15d2d69`](https://github.com/seungyeop-lee/beads-ui/commit/15d2d69ac5e7ea458302b04f719b1bc7c064f93b)
6
+ docs(agents): add epic creation workflow with dependency direction rule
7
+ - [`7e8bc7a`](https://github.com/seungyeop-lee/beads-ui/commit/7e8bc7a571f1083ec393e2cef01f1d66cec0f5c7)
8
+ fix(detail): confirm dependency removals in dialogs
9
+ - [`41b3a99`](https://github.com/seungyeop-lee/beads-ui/commit/41b3a99dac90c236b6d05a9e0195fa79848c4338)
10
+ fix(list): make ready a radio-like status filter
11
+ >
12
+ > Ready is a derived concept (open + no blockers) that conflicts with
13
+ > other statuses. Selecting ready now clears other status checkboxes and
14
+ > disables them; selecting another status clears ready.
15
+ >
16
+ - [`8b55ee7`](https://github.com/seungyeop-lee/beads-ui/commit/8b55ee77110a7408eb8156bbc2ca7b96658dc311)
17
+ docs(agents): add project-specific workflow examples
18
+ - [`f56c6ce`](https://github.com/seungyeop-lee/beads-ui/commit/f56c6ce0f5519420538b129b6dd227f241a88a2f)
19
+ fix(subscriptions): add _board_column to JSDoc type definitions
20
+ >
21
+ > tsc reported TS2339 on line 130 because @param and module-level
22
+ > itemsById type annotations did not include the _board_column property.
23
+ >
24
+ - [`1243029`](https://github.com/seungyeop-lee/beads-ui/commit/1243029ac2d321f63c0c1371a8e46e87006c6f50)
25
+ fix(header): simplify top-left brand area
26
+ >
27
+ > Keep the header brand to the workspace name only and rebalance spacing so the top navigation still aligns naturally.
28
+ >
29
+ - [`ccd94a8`](https://github.com/seungyeop-lee/beads-ui/commit/ccd94a89c45f55e2e97c9a40fc82df56e7519eb4)
30
+ feat(board): unify four column subscriptions into single board-issues subscription
31
+ >
32
+ > Replace four separate WebSocket subscriptions (ready, blocked, in_progress,
33
+ > closed) with one board-issues subscription that fetches all columns in
34
+ > parallel on the server and tags each issue with _board_column. The client
35
+ > splits the unified snapshot into columns, eliminating sequential column
36
+ > loading on initial board entry.
37
+ >
38
+ - [`16af938`](https://github.com/seungyeop-lee/beads-ui/commit/16af938f616ef948ae19d0328a4c80f1118a78fc)
39
+ chore: document beads completion workflow
40
+ - [`b278047`](https://github.com/seungyeop-lee/beads-ui/commit/b27804734a918cae837b6a2fdde159e290cb3a98)
41
+ fix(issues): widen status column for in-progress label
42
+ - [`18d2170`](https://github.com/seungyeop-lee/beads-ui/commit/18d2170ed5fb39d7407b90b12eae841a037e8a52)
43
+ fix(state): restore status filter dedupe semantics
44
+ - [`d1785d5`](https://github.com/seungyeop-lee/beads-ui/commit/d1785d5e8eede9a8a3c03978bd1aadfa3794a89c)
45
+ feat(epics): sort by status rank then priority
46
+ - [`0f85a44`](https://github.com/seungyeop-lee/beads-ui/commit/0f85a445df79eeccef4a0f88c324d21bfec124ff)
47
+ feat(epics): split epic header click targets into toggle bar and title
48
+ - [`95fcc47`](https://github.com/seungyeop-lee/beads-ui/commit/95fcc4783c7d995b4e9286c5fe8e7c09ddd22803)
49
+ feat(detail): show created/updated/closed timestamps in properties
50
+ - [`f998c8a`](https://github.com/seungyeop-lee/beads-ui/commit/f998c8afe72f0bc0f36dc3445045ed883120e88c)
51
+ feat(issues): default status filter to open+in_progress instead of all
52
+ - [`888717f`](https://github.com/seungyeop-lee/beads-ui/commit/888717f6a1e35cccb0925f07e18684a08d3d41aa)
53
+ fix(styles): widen .md heading top/bottom asymmetry
54
+ >
55
+ > Raise `.md` h1~h6 top margins (20/20/18/16/12) while keeping bottom
56
+ > margins small (6/6/6/4/4) so headings group with the following body
57
+ > content in issue detail markdown blocks.
58
+ >
59
+ > Move the `.md { ... }` block to the end of styles.css so its heading
60
+ > rules win source-order against same-specificity selectors like
61
+ > `.detail-main h2 { margin: 0 0 32px }`, which otherwise overrode the
62
+ > new margins inside the issue detail view.
63
+ >
64
+ - [`0af4af0`](https://github.com/seungyeop-lee/beads-ui/commit/0af4af00abb2a8e30162d934b21d9a3c060d3193)
65
+ fix(issues): include closed in multi-status filter via filtered-issues
66
+ >
67
+ > Route the Issues tab's status filter through a new `filtered-issues`
68
+ > subscription that passes a CSV `--status` to `bd list`, so combinations
69
+ > like Any, Closed+Open, or In progress+Closed no longer drop closed
70
+ > items. Keeps `ready-issues`, `in-progress-issues`, and `closed-issues`
71
+ > as single-selection fast paths.
72
+ >
73
+ - [`623a7c9`](https://github.com/seungyeop-lee/beads-ui/commit/623a7c9196b2d5d4e9db8431c48ef92a9773924e)
74
+ chore: document pnpm build need and verification-section policy
75
+ >
76
+ > Pre-Handoff Validation 에 UI 소스 변경 후 `pnpm build` 재생성 필요
77
+ > 문구를 추가하고, Agent Workflow step 5 에 이슈의 `## 검증` 섹션을
78
+ > 모두 수행하고 증거를 Report/Notes 에 남기지 않는 한 `완료` 로
79
+ > 보고하지 않는다는 지침을 명시.
80
+ >
81
+ - [`635f8f7`](https://github.com/seungyeop-lee/beads-ui/commit/635f8f7c6a96cbf20505b02c55f46ef5b40ba2ef)
82
+ feat(issues): open detail on title click; edit via pencil icon
83
+ >
84
+ > Title 셀 클릭이 인라인 편집으로 빠지던 동작을 제거하고 행 클릭과
85
+ > 동일하게 상세 뷰로 이동하도록 변경. 편집은 셀 우측 펜 아이콘
86
+ > 버튼으로 분리하여 명확한 트리거로 재배치. hover/포커스 스타일을
87
+ > 서로 다른 시각 언어로 분리해 외곽선 중첩을 피함.
88
+ >
89
+ - [`41184d8`](https://github.com/seungyeop-lee/beads-ui/commit/41184d804fec158a7ca27561c87005b22478a3a6)
90
+ chore: slim AGENTS.md and extract coding standards
91
+ >
92
+ > AGENTS.md가 199줄로 커져 bd CLI 일반 지식과 코딩 표준이 프로젝트 고유
93
+ > 규약과 섞여 있었다. 권장안에 따라 중복·장황함을 제거하고 코딩 표준을
94
+ > docs/coding-standards.md로 분리해 AGENTS.md를 88줄로 축약했다.
95
+ >
96
+ - [`7096d86`](https://github.com/seungyeop-lee/beads-ui/commit/7096d86a5dea71e9bce40e888e5d87535d5b6373)
97
+ chore: document local-only beads operating mode
98
+ >
99
+ > Add an Operating Mode section clarifying that this repo has no Dolt
100
+ > remote, so bd dolt pull/push must not be run despite the SessionStart
101
+ > hook's Session Close Protocol.
102
+ >
103
+ - [`9ad044b`](https://github.com/seungyeop-lee/beads-ui/commit/9ad044b1ad0c499293fa48a69d7560d17e83cb28)
104
+ fix: prevent long issue ID from overflowing into Type column
105
+ >
106
+ > Apply overflow: hidden and text-overflow: ellipsis on button.id-copy
107
+ > so truncated IDs stay within the 100px ID column in fixed-layout tables.
108
+ >
109
+ - [`94841dd`](https://github.com/seungyeop-lee/beads-ui/commit/94841ddd445c137db031f445144bd9195759c457)
110
+ chore: add .idea to .gitignore
111
+ - [`ff4db5e`](https://github.com/seungyeop-lee/beads-ui/commit/ff4db5e6b19d3c843b9d0c9ef7c93166fdd41b10)
112
+ chore: enforce validation via lefthook pre-commit/pre-push
113
+ >
114
+ > - Add lefthook devDep and pnpm.onlyBuiltDependencies entry so hooks
115
+ > install automatically on pnpm install.
116
+ > - lefthook.yml runs prettier --write (+ stage_fixed) on staged
117
+ > js/ts/json/md/yml/yaml/css/html and eslint --fix on staged js
118
+ > in pre-commit; pre-push delegates to pnpm all.
119
+ > - Rewrite AGENTS.md Pre-Handoff Validation section to describe the
120
+ > structural enforcement, ban hook bypass flags in Commit Rules, and
121
+ > note automatic hook installation in README.
122
+ >
123
+ - [`f7e07a8`](https://github.com/seungyeop-lee/beads-ui/commit/f7e07a8287fbfdfa740351fe8dba282b23085ee0)
124
+ style: fix prettier formatting in AGENTS.md
125
+ - [`d645c19`](https://github.com/seungyeop-lee/beads-ui/commit/d645c19312ed23e75d43504241473df1c784d4d8)
126
+ chore(ci): add feature/** branches to trigger filters
127
+ - [`0ff6fb7`](https://github.com/seungyeop-lee/beads-ui/commit/0ff6fb74b42f81e81055bf729ad65340927e7dc5)
128
+ chore(ci): bump GitHub Actions v4 to v6
129
+ - [`3c1732b`](https://github.com/seungyeop-lee/beads-ui/commit/3c1732b73426aa7d3a5ff04b83dc410c4d6f6373)
130
+ chore: require Korean beads issues with explicit WHAT/METHOD
131
+ >
132
+ > Add an Issue Content section to AGENTS.md mandating Korean for narrative
133
+ > fields and requiring every issue description to spell out WHAT and METHOD.
134
+ >
135
+ - [`83550c5`](https://github.com/seungyeop-lee/beads-ui/commit/83550c5a3116f7947107201537fdd6f625428aa6)
136
+ chore: add CLAUDE.md importing AGENTS.md
137
+ - [`9bc4c05`](https://github.com/seungyeop-lee/beads-ui/commit/9bc4c056590677dee6909bb74d237e582d665a16)
138
+ chore: switch package manager from npm to pnpm
139
+ >
140
+ > - package.json: script calls and publish use pnpm, add packageManager field
141
+ > - .github/workflows/ci.yml: adopt pnpm/action-setup and pnpm cache
142
+ > - README.md: developer workflow uses pnpm; user install keeps npm with pnpm alternative noted
143
+ > - AGENTS.md: Pre-Handoff Validation commands use pnpm
144
+ > - .prettierignore: ignore pnpm-lock.yaml
145
+ > - replace package-lock.json with pnpm-lock.yaml
146
+ >
147
+ - [`c4994cb`](https://github.com/seungyeop-lee/beads-ui/commit/c4994cb2985f752b14f7b3f5bd7561a5e5d6cd98)
148
+ chore: revise AGENTS.md with 9-step agent workflow
149
+ - [`9e76153`](https://github.com/seungyeop-lee/beads-ui/commit/9e76153d970f4bb6aa4b8c2dd373120056507178)
150
+ chore: rebrand as @seungyeop-lee/beads-ui fork
151
+ >
152
+ > - Update package name, author, homepage, and repo URL
153
+ > - Add fork attribution in README and LICENSE
154
+ > - Remove .beads/issues.jsonl from tracking
155
+ >
156
+
157
+ _Released by [seungyeop-lee](https://github.com/seungyeop-lee) on 2026-04-17._
158
+
159
+ ## 0.12.0
160
+
161
+ - [`8559d4a`](https://github.com/mantoni/beads-ui/commit/8559d4af699555b9943914a2e790965c9e4d8da7)
162
+ feat(cli): auto-increment port when default is in use (#73) (Leon Letto)
163
+ - [`527e9a5`](https://github.com/mantoni/beads-ui/commit/527e9a59a01e1b93c1488cb1e2ed26ae346b358c)
164
+ feat(cli): preserve workspaces across bdui restart (#72) (Leon Letto)
165
+ - [`5996b39`](https://github.com/mantoni/beads-ui/commit/5996b39499bcf0e460133c27a7ee20b30c677ab5)
166
+ chore: add dev-docs to .prettierignore (Leon Letto)
167
+ - [`08f1439`](https://github.com/mantoni/beads-ui/commit/08f1439d13fc5b534de13e1ea94af4407174d76f)
168
+ style: fix prettier formatting in daemon and test files (Leon Letto)
169
+ - [`4a0c791`](https://github.com/mantoni/beads-ui/commit/4a0c791300f12e47faae74e8237f823857be7dd9)
170
+ fix: resolve TS18048 type error in restart test (Leon Letto)
171
+ - [`c973d86`](https://github.com/mantoni/beads-ui/commit/c973d8693c6cfa3a5f8ad0905134465903e527a2)
172
+ feat(cli): preserve listening port across bdui restart (Leon Letto)
173
+
174
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-04-02._
175
+
176
+ ## 0.11.3
177
+
178
+ - [`47261a7`](https://github.com/mantoni/beads-ui/commit/47261a7a95d5a17b480ae56c4a10b5eeb49d1007)
179
+ feat: show close reason in issue detail view (#63) (Tom Preece)
180
+
181
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-03-18._
182
+
183
+ ## 0.11.2
184
+
185
+ - [`929a15d`](https://github.com/mantoni/beads-ui/commit/929a15da79ead6819044e50580093e3cbe87758b)
186
+ Fix beads setup
187
+ - [`b354aa6`](https://github.com/mantoni/beads-ui/commit/b354aa63a7d04abe50b0da74c5c0e62077f44b69)
188
+ fix: apply --port/--host overrides before workspace registration (Ryan Peterson)
189
+
190
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-03-11._
191
+
192
+ ## 0.11.1
193
+
194
+ - [`0fc2df7`](https://github.com/mantoni/beads-ui/commit/0fc2df7cbaeb6f0500900ce2bf87e6b3fa8e8ac0)
195
+ style: fix prettier formatting in list-adapters test (Leon Letto)
196
+ - [`e00ddfc`](https://github.com/mantoni/beads-ui/commit/e00ddfc9b9d421dc31b7d7703f4bfbc9790546f8)
197
+ fix: add --tree=false to bd list calls for bd 0.59.0 compat (Leon Letto)
198
+
199
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-03-07._
200
+
201
+ ## 0.11.0
202
+
203
+ - [`fc00b87`](https://github.com/mantoni/beads-ui/commit/fc00b87cfd1b6600a9b9088a9f62c2f6e8fc919e)
204
+ fix(ui): harden daemon restart workspace registration (Leon Letto)
205
+ - [`2ea0dd0`](https://github.com/mantoni/beads-ui/commit/2ea0dd08eb71625fa3ae51e64ea6501b4d058154)
206
+ perf(ui): reduce list latency by default sandbox bd calls (Leon Letto)
207
+
208
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-03-05._
209
+
210
+ ## 0.10.1
211
+
212
+ - [`62017f7`](https://github.com/mantoni/beads-ui/commit/62017f74fadb439c7270160ac03866d3554f36a3)
213
+ fix: clipboard copy fallback for non-secure contexts (Rodrigo Blasi)
214
+
215
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-03-02._
216
+
217
+ ## 0.10.0
218
+
219
+ - [`998f256`](https://github.com/mantoni/beads-ui/commit/998f2562b3ad3203c9dd1f627d44b1c2d5ef03a4)
220
+ Do not wrap issue IDs
221
+ - [`e3c3345`](https://github.com/mantoni/beads-ui/commit/e3c3345db41cd874db8e33ec79c904cc314e6bf8)
222
+ Improve workspace resolution and fallback db
223
+ - [`6de4652`](https://github.com/mantoni/beads-ui/commit/6de4652c336f77c8d8ec9cc13f5a47e9ba1b3857)
224
+ Avoid concurrent DB access to work around dolt panic
225
+ - [`011fe9e`](https://github.com/mantoni/beads-ui/commit/011fe9e3dfaa475f744b69ff6b44c3cc23283ad1)
226
+ Support dolt backend
227
+ - [`63ed3c3`](https://github.com/mantoni/beads-ui/commit/63ed3c3f3f98aa2c6d621537887d98701289dac6)
228
+ Update beads
229
+ - [`cd0a4c5`](https://github.com/mantoni/beads-ui/commit/cd0a4c59fcfe2c9a655ed2079a2a059a242906c5)
230
+ docs: highlight multi-workspace feature in README (#47) (Pablo LION)
231
+
232
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-02-25._
233
+
234
+ ## 0.9.3
235
+
236
+ - [`2e04bc1`](https://github.com/mantoni/beads-ui/commit/2e04bc1eeb5c43e6934d858cd017d80f745a38bb)
237
+ Add -v/—version flag to CLI (#46) (Brent Traut)
238
+
239
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-01-23._
240
+
241
+ ## 0.9.2
242
+
243
+ - [`ffa376c`](https://github.com/mantoni/beads-ui/commit/ffa376cab432b0e321232e8bc0de2caca20a6b17)
244
+ Filter tombstone epics in list adapter (#44) (Brent Traut)
245
+
246
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-01-22._
247
+
248
+ ## 0.9.1
249
+
250
+ - [`bd6f412`](https://github.com/mantoni/beads-ui/commit/bd6f412570a6cb774a683106f9b6efa6ee0e318b)
251
+ Add dependency/dependent counts to issues list view (#35) (Enan Srivastava)
252
+ - [`c6391d1`](https://github.com/mantoni/beads-ui/commit/c6391d1b4ea98ae06ea5bc0c251da57123370ef4)
253
+ Fix stuck loading indicator during view switching (#28) (Ofer Shaal)
254
+
255
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-01-05._
256
+
257
+ ## 0.9.0
258
+
259
+ - [`21fdde2`](https://github.com/mantoni/beads-ui/commit/21fdde230713a58001974db29caf288deeedb371)
260
+ Fix eslint warnings
261
+ - [`5fa7fea`](https://github.com/mantoni/beads-ui/commit/5fa7fead5359aa8f01d4e12a9432464af7276e33)
262
+ Remove accidental bundle commit
263
+ - [`56819d3`](https://github.com/mantoni/beads-ui/commit/56819d321b35a77da690cf028672825752b45544)
264
+ Add drag and drop to boards view (#30) (Brendan O'Leary)
265
+ - [`1c52c6f`](https://github.com/mantoni/beads-ui/commit/1c52c6f2a30b7d37439f291b1a3b1d4c26510396)
266
+ Feature/filter toggles v2 (#20) (Frederic Haddad)
267
+ - [`b4c7ae6`](https://github.com/mantoni/beads-ui/commit/b4c7ae62fd93d7bbaee936e0f8b659beb774122d)
268
+ fix: add windowsHide to prevent console flash on Windows (#29) (Titusz)
269
+ - [`63a269e`](https://github.com/mantoni/beads-ui/commit/63a269ec1f580728bc8977d00b150d69bc1ce535)
270
+ feat: add multi-project workspace switching (#24) (Ofer Shaal)
271
+
272
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2026-01-02._
273
+
274
+ ## 0.8.1
275
+
276
+ - [`59715e8`](https://github.com/mantoni/beads-ui/commit/59715e8eb7834e6fb6ee8f63f2257da33831d705)
277
+ Fix DB watch loop firing every second
278
+
279
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-12-30._
280
+
281
+ ## 0.8.0
282
+
283
+ - [`2cfcd2d`](https://github.com/mantoni/beads-ui/commit/2cfcd2d4d4aa670b67f7798ecf7dfebaf5d2383c)
284
+ Feature/delete issue from detail (#15) (Frederic Haddad)
285
+
286
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-12-22._
287
+
288
+ ## 0.7.0
289
+
290
+ - [`255845f`](https://github.com/mantoni/beads-ui/commit/255845fd49a1e830dd56404d4d49d71c4f3bd18f)
291
+ feat: add comments to issue detail view (Frederic Haddad)
292
+ >
293
+ > - Add get-comments and add-comment WebSocket handlers
294
+ > - Display comments with author and timestamp in detail view
295
+ > - Add comment input form with Ctrl+Enter submit
296
+ > - Auto-fill author from git config user.name
297
+ > - Fetch comments when loading issue details
298
+ >
299
+ > 🤖 Generated with [Claude Code](https://claude.com/claude-code)
300
+ >
301
+ > Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
302
+ >
303
+ - [`a296e98`](https://github.com/mantoni/beads-ui/commit/a296e98dadb59d989cf2acac15666c0d38c635d6)
304
+ Add CHANGES.md to prettier ignore
305
+
306
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-12-19._
307
+
308
+ ## 0.6.0
309
+
310
+ - [`2e25941`](https://github.com/mantoni/beads-ui/commit/2e259418ab24367468daa4449833550f1e9cb297)
311
+ feat(cli): add --host and --port options (cc-vps)
312
+ >
313
+ > Add CLI options to configure the server bind address and port,
314
+ > making it easier to expose the UI on different network interfaces
315
+ > or run multiple instances on different ports.
316
+ >
317
+ > - Add --host <addr> option (default: 127.0.0.1)
318
+ > - Add --port <num> option (default: 3000)
319
+ > - Support HOST and PORT environment variables
320
+ > - Parse --host/--port in server/index.js for dev workflow
321
+ > - Add test coverage for new options
322
+ >
323
+ > Co-authored-by: Christian Catalan <crcatala@gmail.com>
324
+ >
325
+ - [`6327f77`](https://github.com/mantoni/beads-ui/commit/6327f779f7b6ad7d274a37168320442bf013b4e0)
326
+ Fix GitHub action commands
327
+
328
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-12-17._
329
+
330
+ ## 0.5.0
331
+
332
+ - [`76964c1`](https://github.com/mantoni/beads-ui/commit/76964c1daf133dded6b8f335cfe9d3184ac96a18)
333
+ Show badge with number of cards per column
334
+ - [`155316c`](https://github.com/mantoni/beads-ui/commit/155316c975a93edc806379e769b538c213ee5ed8)
335
+ Add loading indicator
336
+ - [`80a837a`](https://github.com/mantoni/beads-ui/commit/80a837a0ef9702fbb7cbbf168526a5a5e3e80d54)
337
+ Show fatal errors in UI
338
+ - [`06e8fd9`](https://github.com/mantoni/beads-ui/commit/06e8fd9293b226c88d8b395c7bc28b9c7f4c9610)
339
+ Beads metadata
340
+ - [`233c70a`](https://github.com/mantoni/beads-ui/commit/233c70aa9b6ed6e2d7fef487c7b241ffe721cecd)
341
+ npm audit
342
+ - [`37b3476`](https://github.com/mantoni/beads-ui/commit/37b3476bc7a0061484de913bee00f285a073ea24)
343
+ Upgrade marked
344
+ - [`a1362c9`](https://github.com/mantoni/beads-ui/commit/a1362c97fc770cb18764305453b18f71830bdbef)
345
+ Update express and types
346
+ - [`8efc40d`](https://github.com/mantoni/beads-ui/commit/8efc40dadc051a826c64474a1254641294337a81)
347
+ Update vitest, jsdom and esbuild
348
+ - [`89cac0f`](https://github.com/mantoni/beads-ui/commit/89cac0ff438a7f1d8b790f339064f2b49ef8ab13)
349
+ Update eslint and plugins
350
+ - [`0d7e33e`](https://github.com/mantoni/beads-ui/commit/0d7e33e55259d11c39820c1576db74b7fec26b5e)
351
+ Update prettier and format files
352
+ - [`356a201`](https://github.com/mantoni/beads-ui/commit/356a201af8cfce75d82a7f942b5d04698400715c)
353
+ Rename npm scripts for prettier and tsc
354
+ - [`31b25d4`](https://github.com/mantoni/beads-ui/commit/31b25d42d23e60c4b30b29281c392179104bf813)
355
+ Upgrade @trivago/prettier-plugin-sort-imports
356
+
357
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-12-08._
358
+
359
+ ## 0.4.4
360
+
361
+ - [`d0f8d1d`](https://github.com/mantoni/beads-ui/commit/d0f8d1d088eda78da14d35ac4fd898cbeb68b534)
362
+ Make labels a separate section in the sidebar
363
+ - [`c44fd34`](https://github.com/mantoni/beads-ui/commit/c44fd3484ade8ef7ea56eb608d11bb07ebbf665b)
364
+ Fix flaky board test due to time-sensitive closed filter (Nikolai
365
+ Prokoschenko)
366
+
367
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-11-13._
368
+
369
+ ## 0.4.3
370
+
371
+ - [`4a5b4cd`](https://github.com/mantoni/beads-ui/commit/4a5b4cda8b22437eac2636c0a5556d0b52897f5f)
372
+ Add author (ignore in changes)
373
+ - [`a34855e`](https://github.com/mantoni/beads-ui/commit/a34855ea26304554df2056ac6ed5224db25d795a)
374
+ Ignore tsconfig.tsbuildinfo
375
+ - [`a7ebbc1`](https://github.com/mantoni/beads-ui/commit/a7ebbc1ba8538107f0ec106638115c4d78c48711)
376
+ Add logging instead of ignoring issues
377
+ - [`54c9488`](https://github.com/mantoni/beads-ui/commit/54c94885c28a9bbdaaa60de6eaf8b91eac567bec)
378
+ Mention `npm link` for development
379
+ - [`a137db0`](https://github.com/mantoni/beads-ui/commit/a137db02386457b7277f9566b5f6fc0079581bf7)
380
+ Display beads issue ID as is
381
+ - [`ee343ee`](https://github.com/mantoni/beads-ui/commit/ee343ee39cc5ef9c7d7ec7df0a4f2b2f0e4b51ba)
382
+ Remove try-catch around localStorage access
383
+ - [`619a107`](https://github.com/mantoni/beads-ui/commit/619a107948b47bcfa6c7102ca0e90f3d575ac3a8)
384
+ Upgrade vitest to v4
385
+ - [`caed1b5`](https://github.com/mantoni/beads-ui/commit/caed1b5005645c2cf566ac3c3eddc4b5b73a4f74)
386
+ Use vitest restoreMocks config
387
+ - [`0a28b5b`](https://github.com/mantoni/beads-ui/commit/0a28b5bf5cc278a6775a051c712ff560dfab2b81)
388
+ Fix: Use BEADS_DB env var instead of --db flag (Nikolai Prokoschenko)
389
+
390
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-11-01._
391
+
392
+ ## 0.4.2
393
+
394
+ - [`66e31ff`](https://github.com/mantoni/beads-ui/commit/66e31ff0e053f3691657ce1175fd9b02155ca699)
395
+ Fix pre-bundled app: Check for bundle instead of NODE_ENV
396
+
397
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-10-29._
398
+
399
+ ## 0.4.1
400
+
401
+ - [`03d3477`](https://github.com/mantoni/beads-ui/commit/03d34774cd35bf03d142d2869633327cbe4902bd)
402
+ Fix missing protocol.js in bundle
403
+
404
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-10-29._
405
+
406
+ ## 0.4.0
407
+
408
+ - [`20a787c`](https://github.com/mantoni/beads-ui/commit/20a787c248225b4959b18b703894daf483f380b6)
409
+ Refine and apply coding standards
410
+ - [`aedc73f`](https://github.com/mantoni/beads-ui/commit/aedc73f0c494dd391fcc9ec7ecbf19b01b37e69a)
411
+ Invert CLI option from no_open to open
412
+ - [`03a2a4f`](https://github.com/mantoni/beads-ui/commit/03a2a4f0ddb93df717e9f12b0c4600be12b390b5)
413
+ Add debug-based logging across codebase
414
+ - [`eed2d5c`](https://github.com/mantoni/beads-ui/commit/eed2d5c71c45131023d1ec047a9f84e84d057fdb)
415
+ Pre-bundle frontend for npm package
416
+ - [`d07f743`](https://github.com/mantoni/beads-ui/commit/d07f7437c67bfdbded470c6ccea556a78b3452b3)
417
+ Remove obsolete BDUI_NO_OPEN
418
+ - [`1c1a003`](https://github.com/mantoni/beads-ui/commit/1c1a0035fd069d030430d56713e64fbaf0224db8)
419
+ Improve project description
420
+
421
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-10-28._
422
+
423
+ ## 0.3.1
424
+
425
+ - [`3912ae5`](https://github.com/mantoni/beads-ui/commit/3912ae552b1cc97e61fbaaa0815ca77675c542e4)
426
+ Status filter intermittently not applied on Issues screen
427
+ - [`a160484`](https://github.com/mantoni/beads-ui/commit/a16048479d1d7d61ed4ad4e53365a5736eb053af)
428
+ Upgrade eslint-plugin-jsdoc and switch config
429
+
430
+ _Released by [Maximilian Antoni](https://github.com/mantoni) on 2025-10-27._
431
+
432
+ ## 0.3.0
433
+
434
+ - 🍏 Rewrite data-exchange layer to push-only updates via WebSocket.
435
+ - 🐛 Heaps of bug fixes.
436
+
437
+ ## 0.2.0
438
+
439
+ - 🍏 Add "Blocked" column to board
440
+ - 🍏 Support `design` in issue details
441
+ - 🍏 Add filter to closed column and improve sorting
442
+ - 🍏 Unblock issue description editing
443
+ - 🍏 CLI: require --open to launch browser, also on restart
444
+ - 🍏 Up/down/left/right keyboard navigation on board
445
+ - 🍏 Up/down keyboard navigation on issues list
446
+ - 🍏 CLI: require --open to launch browser
447
+ - 🍏 Make issue notes editable
448
+ - 🍏 Show toast on disconnect/reconnect
449
+ - 🍏 Support creating a new issue via "New" dialog
450
+ - 🍏 Copy issue IDs to clipboard
451
+ - 🍏 Open issue details in dialog
452
+ - 🐛 Remove --limit 10 when fetching closed issues
453
+ - ✨ Events: coalesce issues-changed to avoid redundant full refresh
454
+ - ✨ Update issues
455
+ - ✨ Align callback function naming
456
+ - 📚 Improve README
457
+ - 📚 Add package description, homepage and repo
458
+
459
+ ## 0.1.2
460
+
461
+ - 📦 Specify files to package
462
+
463
+ ## 0.1.1
464
+
465
+ - 📚 Make screenshot src absolute and add license
466
+
467
+ ## 0.1.0
468
+
469
+ - 🥇 Initial release
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2025 Maximilian Antoni
2
+ Copyright (c) 2026 seungyeop-lee (modifications)
3
+
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,92 @@
1
+ <h1 align="center">
2
+ Beads UI
3
+ </h1>
4
+ <p align="center">
5
+ <b>Local UI for the <code>bd</code> CLI – <a href="https://github.com/steveyegge/beads">Beads</a></b><br>
6
+ Collaborate on issues with your coding agent.
7
+ </p>
8
+ <div align="center">
9
+ <a href="https://www.npmjs.com/package/@seungyeop-lee/beads-ui"><img src="https://img.shields.io/npm/v/@seungyeop-lee/beads-ui.svg" alt="npm Version"></a>
10
+ <a href="https://semver.org"><img src="https://img.shields.io/:semver-%E2%9C%93-blue.svg" alt="SemVer"></a>
11
+ <a href="https://github.com/seungyeop-lee/beads-ui/actions/workflows/ci.yml"><img src="https://github.com/seungyeop-lee/beads-ui/actions/workflows/ci.yml/badge.svg" alt="Build Status"></a>
12
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/npm/l/@seungyeop-lee/beads-ui.svg" alt="MIT License"></a>
13
+ <br>
14
+ <br>
15
+ </div>
16
+
17
+ > Based on [mantoni/beads-ui](https://github.com/mantoni/beads-ui). Maintained
18
+ > as an independent fork by [seungyeop-lee](https://github.com/seungyeop-lee).
19
+
20
+ ## Features
21
+
22
+ - ✨ **Zero setup** – just run `bdui start`
23
+ - 📺 **Live updates** – Monitors the beads database for changes
24
+ - 🔎 **Issues view** – Filter and search issues, edit inline
25
+ - ⛰️ **Epics view** – Show progress per epic, expand rows, edit inline
26
+ - 🏂 **Board view** – Blocked / Ready / In progress / Closed columns
27
+ - ⌨️ **Keyboard navigation** – Navigate and edit without touching the mouse
28
+ - 🔀 **Multi-workspace** – Switch between projects via dropdown, auto-registers
29
+ workspaces
30
+
31
+ ## Setup
32
+
33
+ ```sh
34
+ npm i -g @seungyeop-lee/beads-ui
35
+ # Or with pnpm:
36
+ # pnpm add -g @seungyeop-lee/beads-ui
37
+ # In your project directory:
38
+ bdui start --open
39
+ ```
40
+
41
+ See `bdui --help` for options.
42
+
43
+ ## Screenshots
44
+
45
+ **Issues**
46
+
47
+ ![Issues view](https://github.com/seungyeop-lee/beads-ui/raw/main/media/bdui-issues.png)
48
+
49
+ **Epics**
50
+
51
+ ![Epics view](https://github.com/seungyeop-lee/beads-ui/raw/main/media/bdui-epics.png)
52
+
53
+ **Board**
54
+
55
+ ![Board view](https://github.com/seungyeop-lee/beads-ui/raw/main/media/bdui-board.png)
56
+
57
+ ## Environment variables
58
+
59
+ - `BD_BIN`: path to the `bd` binary.
60
+ - `BDUI_RUNTIME_DIR`: override runtime directory for PID/logs. Defaults to
61
+ `$XDG_RUNTIME_DIR/beads-ui` or the system temp dir.
62
+ - `HOST`: overrides the bind address (default `127.0.0.1`).
63
+ - `PORT`: overrides the listen port (default `3000`).
64
+
65
+ These can also be set via CLI options: `bdui start --host 0.0.0.0 --port 8080`
66
+
67
+ ## Platform notes
68
+
69
+ - macOS/Linux are fully supported. On Windows, the CLI uses `cmd /c start` to
70
+ open URLs and relies on Node’s `process.kill` semantics for stopping the
71
+ daemon.
72
+
73
+ ## Developer Workflow
74
+
75
+ - 🔨 Clone the repo and run `pnpm install`. Lefthook git hooks (pre-commit,
76
+ pre-push) install automatically via its postinstall script — no extra step.
77
+ - 🚀 Start the dev server with `pnpm start`.
78
+ - 🔗 Alternatively, use `pnpm link --global` to link the package globally and
79
+ run `bdui start` from any project.
80
+
81
+ ## Debug Logging
82
+
83
+ - The codebase uses the `debug` package with namespaces like `beads-ui:*`.
84
+ - Enable logs in the browser by running in DevTools:
85
+ - `localStorage.debug = 'beads-ui:*'` then reload the page
86
+ - Enable logs for Node/CLI (server, build scripts) by setting `DEBUG`:
87
+ - `DEBUG=beads-ui:* bdui start`
88
+ - `DEBUG=beads-ui:* node scripts/build-frontend.js`
89
+
90
+ ## License
91
+
92
+ MIT
package/app/index.html ADDED
@@ -0,0 +1,48 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Beads</title>
7
+ <link rel="stylesheet" href="./styles.css" />
8
+ </head>
9
+ <body>
10
+ <header class="app-header">
11
+ <div class="header-left">
12
+ <div id="workspace-picker" class="header-workspace"></div>
13
+ <nav id="top-nav" class="header-nav" aria-label="Primary"></nav>
14
+ </div>
15
+ <div class="header-actions">
16
+ <div
17
+ id="header-loading"
18
+ class="header-loading"
19
+ role="status"
20
+ aria-live="polite"
21
+ aria-label="Loading"
22
+ hidden
23
+ >
24
+ <span class="header-loading__spinner" aria-hidden="true"></span>
25
+ <span class="visually-hidden">Loading</span>
26
+ </div>
27
+ <label class="theme-toggle" title="Toggle dark mode">
28
+ <span>Dark</span>
29
+ <input
30
+ id="theme-switch"
31
+ type="checkbox"
32
+ aria-label="Toggle dark mode"
33
+ />
34
+ </label>
35
+ <button
36
+ id="new-issue-btn"
37
+ type="button"
38
+ aria-haspopup="dialog"
39
+ title="Create a new issue (Ctrl/Cmd+N)"
40
+ >
41
+ New issue
42
+ </button>
43
+ </div>
44
+ </header>
45
+ <main id="app" class="app-shell" aria-live="polite"></main>
46
+ <script type="module" src="/main.bundle.js"></script>
47
+ </body>
48
+ </html>