@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 +469 -0
- package/LICENSE +23 -0
- package/README.md +92 -0
- package/app/index.html +48 -0
- package/app/main.bundle.js +825 -0
- package/app/main.bundle.js.map +7 -0
- package/app/protocol.js +216 -0
- package/app/styles.css +2214 -0
- package/bin/bdui.js +19 -0
- package/package.json +82 -0
- package/server/app.js +119 -0
- package/server/bd.js +227 -0
- package/server/cli/commands.js +285 -0
- package/server/cli/daemon.js +340 -0
- package/server/cli/index.js +135 -0
- package/server/cli/open.js +178 -0
- package/server/cli/usage.js +27 -0
- package/server/config.js +36 -0
- package/server/db.js +154 -0
- package/server/index.js +76 -0
- package/server/list-adapters.js +365 -0
- package/server/logging.js +23 -0
- package/server/registry-watcher.js +200 -0
- package/server/subscriptions.js +305 -0
- package/server/validators.js +153 -0
- package/server/watcher.js +139 -0
- package/server/ws.js +1348 -0
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
|
+

|
|
48
|
+
|
|
49
|
+
**Epics**
|
|
50
|
+
|
|
51
|
+

|
|
52
|
+
|
|
53
|
+
**Board**
|
|
54
|
+
|
|
55
|
+

|
|
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>
|