@jakkrichm/create-nexus-devflow 2.11.0 → 2.11.1
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/package.json
CHANGED
|
@@ -172,4 +172,13 @@
|
|
|
172
172
|
- *Dependencies*: Feature 20, DISC-20260902-001
|
|
173
173
|
- *Scope*: ขยายชุดทดสอบ Evals Routing ให้ครอบคลุมทุกสคิล (`browser-tests.json`, `continuous.json`, `bughunter.json`, `publish-devflow.json`), นำเข้าและปรับใช้ Live-Agent E2E Test Harness (`scripts/e2e/`), สคริปต์จำลองติดตั้ง Sandbox Scaffolding (`scripts/scaffold-sandbox.ts`), สคริปต์ตรวจจับ Upstream Drift (`scripts/check-upstream-drift.ts`), และเอกสารวิเคราะห์ Token Efficiency (`benchmarks/context-efficiency.md`)
|
|
174
174
|
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 🧹 Phase 22: Reference Artifacts Housekeeping
|
|
178
|
+
|
|
179
|
+
- [x] **22. Prune Studio Reference Artifacts (`069-prune-studio-reference-artifacts`)** `[Size: S]`
|
|
180
|
+
- *Dependencies*: None
|
|
181
|
+
- *Scope*: ลบไฟล์ Static HTML Snapshot ตกค้าง `devflow/reference/studio.html` และสคริปต์ `scripts/export-studio.ts` โดยยังคงรักษา Webview Studio Engine (`webview-studio.ts`), MCP tool (`devflow_get_studio_html`), CLI Command (`nexus-devflow studio`) และชุดทดสอบทั้งหมดให้ทำงานได้สมบูรณ์ 100%
|
|
182
|
+
|
|
183
|
+
|
|
175
184
|
|
|
@@ -1,504 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="th" data-theme="auto">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Nexus-DevFlow Studio: nexus-devflow</title>
|
|
7
|
-
<style>
|
|
8
|
-
:root {
|
|
9
|
-
--bg: var(--vscode-editor-background, #090d16);
|
|
10
|
-
--bg-panel: var(--vscode-sideBar-background, rgba(17, 24, 39, 0.75));
|
|
11
|
-
--bg-card: rgba(30, 41, 59, 0.6);
|
|
12
|
-
--border: var(--vscode-panel-border, rgba(255, 255, 255, 0.08));
|
|
13
|
-
--border-accent: rgba(56, 189, 248, 0.3);
|
|
14
|
-
--fg: var(--vscode-editor-foreground, #f8fafc);
|
|
15
|
-
--fg-muted: var(--vscode-descriptionForeground, #94a3b8);
|
|
16
|
-
--accent: #38bdf8;
|
|
17
|
-
--accent-gradient: linear-gradient(135deg, #38bdf8 0%, #818cf8 100%);
|
|
18
|
-
--green: #4ade80;
|
|
19
|
-
--yellow: #facc15;
|
|
20
|
-
--red: #f87171;
|
|
21
|
-
--font-mono: var(--vscode-editor-font-family, 'Fira Code', Consolas, monospace);
|
|
22
|
-
--font-sans: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
26
|
-
body {
|
|
27
|
-
font-family: var(--font-sans);
|
|
28
|
-
background-color: var(--bg);
|
|
29
|
-
color: var(--fg);
|
|
30
|
-
padding: 16px;
|
|
31
|
-
line-height: 1.5;
|
|
32
|
-
font-size: 13px;
|
|
33
|
-
overflow-x: hidden;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.studio-container {
|
|
37
|
-
max-width: 1200px;
|
|
38
|
-
margin: 0 auto;
|
|
39
|
-
display: flex;
|
|
40
|
-
flex-direction: column;
|
|
41
|
-
gap: 16px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/* Top Studio Header */
|
|
45
|
-
.studio-header {
|
|
46
|
-
background: var(--bg-panel);
|
|
47
|
-
backdrop-filter: blur(12px);
|
|
48
|
-
border: 1px solid var(--border);
|
|
49
|
-
border-radius: 12px;
|
|
50
|
-
padding: 16px 20px;
|
|
51
|
-
display: flex;
|
|
52
|
-
align-items: center;
|
|
53
|
-
justify-content: space-between;
|
|
54
|
-
flex-wrap: wrap;
|
|
55
|
-
gap: 12px;
|
|
56
|
-
}
|
|
57
|
-
.header-left {
|
|
58
|
-
display: flex;
|
|
59
|
-
align-items: center;
|
|
60
|
-
gap: 12px;
|
|
61
|
-
}
|
|
62
|
-
.project-badge {
|
|
63
|
-
font-weight: 700;
|
|
64
|
-
font-size: 16px;
|
|
65
|
-
background: var(--accent-gradient);
|
|
66
|
-
-webkit-background-clip: text;
|
|
67
|
-
-webkit-text-fill-color: transparent;
|
|
68
|
-
letter-spacing: -0.5px;
|
|
69
|
-
}
|
|
70
|
-
.branch-pill {
|
|
71
|
-
font-family: var(--font-mono);
|
|
72
|
-
font-size: 12px;
|
|
73
|
-
background: rgba(56, 189, 248, 0.12);
|
|
74
|
-
color: var(--accent);
|
|
75
|
-
padding: 3px 10px;
|
|
76
|
-
border-radius: 20px;
|
|
77
|
-
border: 1px solid var(--border-accent);
|
|
78
|
-
}
|
|
79
|
-
.header-right {
|
|
80
|
-
display: flex;
|
|
81
|
-
align-items: center;
|
|
82
|
-
gap: 10px;
|
|
83
|
-
}
|
|
84
|
-
.badge-pass {
|
|
85
|
-
background: rgba(74, 222, 128, 0.15);
|
|
86
|
-
color: var(--green);
|
|
87
|
-
border: 1px solid rgba(74, 222, 128, 0.3);
|
|
88
|
-
padding: 4px 12px;
|
|
89
|
-
border-radius: 20px;
|
|
90
|
-
font-weight: 600;
|
|
91
|
-
}
|
|
92
|
-
.badge-blocked {
|
|
93
|
-
background: rgba(248, 113, 113, 0.15);
|
|
94
|
-
color: var(--red);
|
|
95
|
-
border: 1px solid rgba(248, 113, 113, 0.3);
|
|
96
|
-
padding: 4px 12px;
|
|
97
|
-
border-radius: 20px;
|
|
98
|
-
font-weight: 600;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/* Quick Action Dispatcher */
|
|
102
|
-
.action-bar {
|
|
103
|
-
background: var(--bg-panel);
|
|
104
|
-
border: 1px solid var(--border);
|
|
105
|
-
border-radius: 10px;
|
|
106
|
-
padding: 12px 16px;
|
|
107
|
-
display: flex;
|
|
108
|
-
align-items: center;
|
|
109
|
-
gap: 8px;
|
|
110
|
-
overflow-x: auto;
|
|
111
|
-
}
|
|
112
|
-
.action-label {
|
|
113
|
-
font-weight: 600;
|
|
114
|
-
color: var(--fg-muted);
|
|
115
|
-
font-size: 11px;
|
|
116
|
-
text-transform: uppercase;
|
|
117
|
-
margin-right: 4px;
|
|
118
|
-
white-space: nowrap;
|
|
119
|
-
}
|
|
120
|
-
.btn-action {
|
|
121
|
-
background: var(--bg-card);
|
|
122
|
-
border: 1px solid var(--border);
|
|
123
|
-
color: var(--fg);
|
|
124
|
-
padding: 5px 12px;
|
|
125
|
-
border-radius: 6px;
|
|
126
|
-
cursor: pointer;
|
|
127
|
-
font-family: var(--font-mono);
|
|
128
|
-
font-size: 12px;
|
|
129
|
-
transition: all 0.2s ease;
|
|
130
|
-
white-space: nowrap;
|
|
131
|
-
}
|
|
132
|
-
.btn-action:hover {
|
|
133
|
-
background: rgba(56, 189, 248, 0.15);
|
|
134
|
-
border-color: var(--accent);
|
|
135
|
-
color: var(--accent);
|
|
136
|
-
}
|
|
137
|
-
.btn-action.btn-primary {
|
|
138
|
-
background: var(--accent-gradient);
|
|
139
|
-
color: #040812;
|
|
140
|
-
font-weight: 700;
|
|
141
|
-
border: none;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/* 3-Pillars Kanban Grid */
|
|
145
|
-
.kanban-grid {
|
|
146
|
-
display: grid;
|
|
147
|
-
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
|
|
148
|
-
gap: 16px;
|
|
149
|
-
}
|
|
150
|
-
.kanban-col {
|
|
151
|
-
background: var(--bg-panel);
|
|
152
|
-
border: 1px solid var(--border);
|
|
153
|
-
border-radius: 12px;
|
|
154
|
-
padding: 16px;
|
|
155
|
-
display: flex;
|
|
156
|
-
flex-direction: column;
|
|
157
|
-
gap: 12px;
|
|
158
|
-
}
|
|
159
|
-
.col-header {
|
|
160
|
-
display: flex;
|
|
161
|
-
align-items: center;
|
|
162
|
-
justify-content: space-between;
|
|
163
|
-
border-bottom: 1px solid var(--border);
|
|
164
|
-
padding-bottom: 10px;
|
|
165
|
-
}
|
|
166
|
-
.col-title {
|
|
167
|
-
font-size: 13px;
|
|
168
|
-
font-weight: 700;
|
|
169
|
-
display: flex;
|
|
170
|
-
align-items: center;
|
|
171
|
-
gap: 6px;
|
|
172
|
-
}
|
|
173
|
-
.col-count {
|
|
174
|
-
font-size: 11px;
|
|
175
|
-
background: var(--bg-card);
|
|
176
|
-
padding: 2px 8px;
|
|
177
|
-
border-radius: 10px;
|
|
178
|
-
color: var(--fg-muted);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.col-content {
|
|
182
|
-
display: flex;
|
|
183
|
-
flex-direction: column;
|
|
184
|
-
gap: 10px;
|
|
185
|
-
max-height: 480px;
|
|
186
|
-
overflow-y: auto;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/* Card Items */
|
|
190
|
-
.card-item {
|
|
191
|
-
background: var(--bg-card);
|
|
192
|
-
border: 1px solid var(--border);
|
|
193
|
-
border-radius: 8px;
|
|
194
|
-
padding: 12px;
|
|
195
|
-
display: flex;
|
|
196
|
-
flex-direction: column;
|
|
197
|
-
gap: 6px;
|
|
198
|
-
transition: transform 0.15s ease, border-color 0.15s ease;
|
|
199
|
-
}
|
|
200
|
-
.card-item:hover {
|
|
201
|
-
border-color: var(--border-accent);
|
|
202
|
-
transform: translateY(-1px);
|
|
203
|
-
}
|
|
204
|
-
.card-item.active-item {
|
|
205
|
-
border-color: var(--accent);
|
|
206
|
-
box-shadow: 0 0 12px rgba(56, 189, 248, 0.15);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
.item-header {
|
|
210
|
-
display: flex;
|
|
211
|
-
align-items: flex-start;
|
|
212
|
-
gap: 8px;
|
|
213
|
-
}
|
|
214
|
-
.badge-id {
|
|
215
|
-
font-family: var(--font-mono);
|
|
216
|
-
font-size: 10px;
|
|
217
|
-
font-weight: 700;
|
|
218
|
-
background: rgba(56, 189, 248, 0.2);
|
|
219
|
-
color: var(--accent);
|
|
220
|
-
padding: 2px 6px;
|
|
221
|
-
border-radius: 4px;
|
|
222
|
-
white-space: nowrap;
|
|
223
|
-
}
|
|
224
|
-
.badge-history {
|
|
225
|
-
background: rgba(129, 140, 248, 0.2);
|
|
226
|
-
color: #818cf8;
|
|
227
|
-
}
|
|
228
|
-
.item-title {
|
|
229
|
-
font-weight: 600;
|
|
230
|
-
font-size: 12px;
|
|
231
|
-
flex: 1;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/* Progress bar */
|
|
235
|
-
.progress-bar-container {
|
|
236
|
-
background: rgba(0, 0, 0, 0.3);
|
|
237
|
-
height: 6px;
|
|
238
|
-
border-radius: 3px;
|
|
239
|
-
overflow: hidden;
|
|
240
|
-
margin-top: 4px;
|
|
241
|
-
}
|
|
242
|
-
.progress-bar-fill {
|
|
243
|
-
background: var(--accent-gradient);
|
|
244
|
-
height: 100%;
|
|
245
|
-
transition: width 0.3s ease;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
.item-tags, .item-meta {
|
|
249
|
-
display: flex;
|
|
250
|
-
align-items: center;
|
|
251
|
-
gap: 6px;
|
|
252
|
-
font-size: 11px;
|
|
253
|
-
color: var(--fg-muted);
|
|
254
|
-
}
|
|
255
|
-
.tag {
|
|
256
|
-
font-size: 10px;
|
|
257
|
-
padding: 1px 6px;
|
|
258
|
-
border-radius: 4px;
|
|
259
|
-
background: rgba(255, 255, 255, 0.05);
|
|
260
|
-
}
|
|
261
|
-
.tag-feasibility { color: var(--green); }
|
|
262
|
-
.tag-value { color: var(--accent); }
|
|
263
|
-
.tag-cat { color: var(--yellow); }
|
|
264
|
-
|
|
265
|
-
.empty-state {
|
|
266
|
-
text-align: center;
|
|
267
|
-
padding: 24px;
|
|
268
|
-
color: var(--fg-muted);
|
|
269
|
-
font-size: 12px;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/* Pulse Notification */
|
|
273
|
-
.pulse-panel {
|
|
274
|
-
background: var(--bg-panel);
|
|
275
|
-
border: 1px solid var(--border);
|
|
276
|
-
border-radius: 10px;
|
|
277
|
-
padding: 12px 16px;
|
|
278
|
-
display: flex;
|
|
279
|
-
align-items: center;
|
|
280
|
-
justify-content: space-between;
|
|
281
|
-
font-size: 12px;
|
|
282
|
-
}
|
|
283
|
-
</style>
|
|
284
|
-
</head>
|
|
285
|
-
<body>
|
|
286
|
-
<div class="studio-container">
|
|
287
|
-
|
|
288
|
-
<!-- Top Header -->
|
|
289
|
-
<header class="studio-header">
|
|
290
|
-
<div class="header-left">
|
|
291
|
-
<span class="project-badge">⚡ nexus-devflow</span>
|
|
292
|
-
<span class="branch-pill">🌿 main</span>
|
|
293
|
-
<span class="badge-track">Track: deep</span>
|
|
294
|
-
</div>
|
|
295
|
-
<div class="header-right">
|
|
296
|
-
<span class="badge-pass">✔ Gate Passed</span>
|
|
297
|
-
<button class="btn-action btn-primary" onclick="dispatchCommand('/feature')">
|
|
298
|
-
Next: /feature
|
|
299
|
-
</button>
|
|
300
|
-
</div>
|
|
301
|
-
</header>
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
<!-- Quick Action Bar -->
|
|
305
|
-
<div class="action-bar">
|
|
306
|
-
<span class="action-label">Quick Actions:</span>
|
|
307
|
-
<button class="btn-action" onclick="dispatchCommand('/feature')">/feature</button>
|
|
308
|
-
<button class="btn-action" onclick="dispatchCommand('/implement')">/implement</button>
|
|
309
|
-
<button class="btn-action" onclick="dispatchCommand('/check')">/check</button>
|
|
310
|
-
<button class="btn-action" onclick="dispatchCommand('/complete')">/complete</button>
|
|
311
|
-
<button class="btn-action" onclick="dispatchCommand('nexus-devflow slice --stage implement')">slice</button>
|
|
312
|
-
<button class="btn-action" onclick="dispatchCommand('nexus-devflow drift')">drift</button>
|
|
313
|
-
<button class="btn-action" onclick="dispatchCommand('nexus-devflow reconcile --fix')">reconcile</button>
|
|
314
|
-
<button class="btn-action" onclick="dispatchCommand('nexus-devflow doctor')">doctor</button>
|
|
315
|
-
</div>
|
|
316
|
-
|
|
317
|
-
<!-- 3-Pillars Kanban View -->
|
|
318
|
-
<main class="kanban-grid">
|
|
319
|
-
|
|
320
|
-
<!-- 🔮 1. Future (Ideas Inbox) -->
|
|
321
|
-
<section class="kanban-col">
|
|
322
|
-
<div class="col-header">
|
|
323
|
-
<span class="col-title">🔮 Future (Ideas Inbox)</span>
|
|
324
|
-
<span class="col-count">4</span>
|
|
325
|
-
</div>
|
|
326
|
-
<div class="col-content">
|
|
327
|
-
|
|
328
|
-
<div class="card-item idea-item">
|
|
329
|
-
<div class="item-header">
|
|
330
|
-
<span class="badge-id">IDEA-003</span>
|
|
331
|
-
<span class="item-title">Interactive Terminal UI (TUI) Dashboard (Ink / Clack)</span>
|
|
332
|
-
</div>
|
|
333
|
-
<div class="item-tags">
|
|
334
|
-
<span class="tag tag-feasibility">**ปานกลาง (Medium Feasibility)** — ใช้ไลบรารี CLI UI เช่น `@clack/prompts` หรือ `ink` (React for CLI) ในการเรนเดอร์ Interface แบบ Interactive</span>
|
|
335
|
-
<span class="tag tag-value">**สูง (Premium DX)** — สร้างความประทับใจระดับ Wow ให้กับผู้ใช้ สามารถใช้คีย์บอร์ดเลื่อนดู Task, ติ๊ก Checklist และกดคัดลอกคำสั่ง AI เข้า Clipboard ได้ทันที</span>
|
|
336
|
-
</div>
|
|
337
|
-
</div>
|
|
338
|
-
|
|
339
|
-
<div class="card-item idea-item">
|
|
340
|
-
<div class="item-header">
|
|
341
|
-
<span class="badge-id">IDEA-004</span>
|
|
342
|
-
<span class="item-title">DevFlow MCP Server (Model Context Protocol) & Multi-Agent API</span>
|
|
343
|
-
</div>
|
|
344
|
-
<div class="item-tags">
|
|
345
|
-
<span class="tag tag-feasibility">**ปานกลาง (Medium Feasibility)** — ใช้ `@modelcontextprotocol/sdk` ของ Anthropic ในการเปิด JSON-RPC Server ผ่าน Stdio</span>
|
|
346
|
-
<span class="tag tag-value">**สูงสุด (Next-Gen AI Integration)** — AI ไม่ต้องใช้ Regex คอยสแกนหรือแก้ Markdown เอง แต่สามารถเรียก Tools เช่น `devflow_add_finding`, `devflow_update_task`, `devflow_get_status` ได้แบบ 100% Type-safe</span>
|
|
347
|
-
</div>
|
|
348
|
-
</div>
|
|
349
|
-
|
|
350
|
-
<div class="card-item idea-item">
|
|
351
|
-
<div class="item-header">
|
|
352
|
-
<span class="badge-id">IDEA-015</span>
|
|
353
|
-
<span class="item-title">Configurable Artifact Language (`artifactLanguage: th | en`)</span>
|
|
354
|
-
</div>
|
|
355
|
-
<div class="item-tags">
|
|
356
|
-
<span class="tag tag-feasibility">**ง่าย (High Feasibility)** — อ่านค่า `artifactLanguage` จาก `nexus-devflow.json` แล้วปรับ Directive ใน Skills</span>
|
|
357
|
-
<span class="tag tag-value">**สูง** — รองรับการใช้งานของทีมงานระดับสากลหรือทีมที่ต้องการเอกสารเป็นภาษาอังกฤษ</span>
|
|
358
|
-
</div>
|
|
359
|
-
</div>
|
|
360
|
-
|
|
361
|
-
<div class="card-item idea-item">
|
|
362
|
-
<div class="item-header">
|
|
363
|
-
<span class="badge-id">IDEA-023</span>
|
|
364
|
-
<span class="item-title">Lightweight Zero-Dependency Pure Markdown Mode</span>
|
|
365
|
-
</div>
|
|
366
|
-
<div class="item-tags">
|
|
367
|
-
<span class="tag tag-feasibility">**ง่าย (High Feasibility)** — สร้างไฟล์เทมเพลตบริสุทธิ์แบบไม่ต้องใช้ CLI</span>
|
|
368
|
-
<span class="tag tag-value">**ปานกลาง** — รองรับสภาพแวดล้อมการทำงานแบบปิโตรเลียม/งานเครื่องมือพื้นฐานที่ไม่มี Node.js</span>
|
|
369
|
-
</div>
|
|
370
|
-
</div>
|
|
371
|
-
|
|
372
|
-
</div>
|
|
373
|
-
</section>
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
<!-- ⚡ 2. Present (Active Living Context) -->
|
|
377
|
-
<section class="kanban-col">
|
|
378
|
-
<div class="col-header">
|
|
379
|
-
<span class="col-title">⚡ Present (Active Living Spec)</span>
|
|
380
|
-
<span class="col-count">0/0 Tasks</span>
|
|
381
|
-
</div>
|
|
382
|
-
<div class="col-content">
|
|
383
|
-
|
|
384
|
-
<div class="empty-state">
|
|
385
|
-
Idle workspace.<br>Run <code>/feature</code> or <code>/fix</code> to start a run.
|
|
386
|
-
</div>
|
|
387
|
-
|
|
388
|
-
</div>
|
|
389
|
-
</section>
|
|
390
|
-
|
|
391
|
-
<!-- 📦 3. Past (Release History Archive) -->
|
|
392
|
-
<section class="kanban-col">
|
|
393
|
-
<div class="col-header">
|
|
394
|
-
<span class="col-title">📦 Past (History Archives)</span>
|
|
395
|
-
<span class="col-count">43 Releases</span>
|
|
396
|
-
</div>
|
|
397
|
-
<div class="col-content">
|
|
398
|
-
|
|
399
|
-
<div class="card-item history-item">
|
|
400
|
-
<div class="item-header">
|
|
401
|
-
<span class="badge-id badge-history">047</span>
|
|
402
|
-
<span class="item-title">IDE Native Extension & Interactive Webview Studio (`studio` & `devflow_get_studio_html`)</span>
|
|
403
|
-
</div>
|
|
404
|
-
<div class="item-meta">
|
|
405
|
-
<span class="tag tag-cat">feature</span>
|
|
406
|
-
</div>
|
|
407
|
-
</div>
|
|
408
|
-
|
|
409
|
-
<div class="card-item history-item">
|
|
410
|
-
<div class="item-header">
|
|
411
|
-
<span class="badge-id badge-history">046</span>
|
|
412
|
-
<span class="item-title">Git Diff Drift Reconciler & Self-Healing State Engine (`drift` & `reconcile`)</span>
|
|
413
|
-
</div>
|
|
414
|
-
<div class="item-meta">
|
|
415
|
-
<span class="tag tag-cat">feature</span>
|
|
416
|
-
</div>
|
|
417
|
-
</div>
|
|
418
|
-
|
|
419
|
-
<div class="card-item history-item">
|
|
420
|
-
<div class="item-header">
|
|
421
|
-
<span class="badge-id badge-history">045</span>
|
|
422
|
-
<span class="item-title">Just-In-Time (JIT) Dynamic Context Slicing Engine (`slice` & `devflow_get_sliced_context`)</span>
|
|
423
|
-
</div>
|
|
424
|
-
<div class="item-meta">
|
|
425
|
-
<span class="tag tag-cat">feature</span>
|
|
426
|
-
</div>
|
|
427
|
-
</div>
|
|
428
|
-
|
|
429
|
-
<div class="card-item history-item">
|
|
430
|
-
<div class="item-header">
|
|
431
|
-
<span class="badge-id badge-history">044</span>
|
|
432
|
-
<span class="item-title">Branch-Scoped Context Isolation & Dynamic Router (`devflow/context/<branch>/`)</span>
|
|
433
|
-
</div>
|
|
434
|
-
<div class="item-meta">
|
|
435
|
-
<span class="tag tag-cat">feature</span>
|
|
436
|
-
</div>
|
|
437
|
-
</div>
|
|
438
|
-
|
|
439
|
-
<div class="card-item history-item">
|
|
440
|
-
<div class="item-header">
|
|
441
|
-
<span class="badge-id badge-history">043</span>
|
|
442
|
-
<span class="item-title">DevFlow Model Context Protocol (MCP) Server Hub & Type-Safe Schema Engine (`mcp`)</span>
|
|
443
|
-
</div>
|
|
444
|
-
<div class="item-meta">
|
|
445
|
-
<span class="tag tag-cat">feature</span>
|
|
446
|
-
</div>
|
|
447
|
-
</div>
|
|
448
|
-
|
|
449
|
-
<div class="card-item history-item">
|
|
450
|
-
<div class="item-header">
|
|
451
|
-
<span class="badge-id badge-history">042</span>
|
|
452
|
-
<span class="item-title">Automated Quality Gatekeeper & Pre-commit Hook Integration (`check-gate` & `hook`)</span>
|
|
453
|
-
</div>
|
|
454
|
-
<div class="item-meta">
|
|
455
|
-
<span class="tag tag-cat">feature</span>
|
|
456
|
-
</div>
|
|
457
|
-
</div>
|
|
458
|
-
|
|
459
|
-
<div class="card-item history-item">
|
|
460
|
-
<div class="item-header">
|
|
461
|
-
<span class="badge-id badge-history">041</span>
|
|
462
|
-
<span class="item-title">Unified Dual-Track Root Switch, Context Auto-Sync Engine, และ Dashboard Tab Auto-Focus</span>
|
|
463
|
-
</div>
|
|
464
|
-
<div class="item-meta">
|
|
465
|
-
<span class="tag tag-cat">feature</span>
|
|
466
|
-
</div>
|
|
467
|
-
</div>
|
|
468
|
-
|
|
469
|
-
<div class="card-item history-item">
|
|
470
|
-
<div class="item-header">
|
|
471
|
-
<span class="badge-id badge-history">040</span>
|
|
472
|
-
<span class="item-title">Dashboard Blueprint Reference Mockup Parity, Dual-Track Visualizer, และ Snapshot API Backend</span>
|
|
473
|
-
</div>
|
|
474
|
-
<div class="item-meta">
|
|
475
|
-
<span class="tag tag-cat">feature</span>
|
|
476
|
-
</div>
|
|
477
|
-
</div>
|
|
478
|
-
|
|
479
|
-
</div>
|
|
480
|
-
</section>
|
|
481
|
-
|
|
482
|
-
</main>
|
|
483
|
-
|
|
484
|
-
<!-- Bottom Pulse -->
|
|
485
|
-
<footer class="pulse-panel">
|
|
486
|
-
<div>Findings Blockers: <strong>0</strong> | Total Findings: <strong>0</strong></div>
|
|
487
|
-
<div>Git Drift: <strong>✔ In Sync</strong></div>
|
|
488
|
-
</footer>
|
|
489
|
-
|
|
490
|
-
</div>
|
|
491
|
-
|
|
492
|
-
<script>
|
|
493
|
-
function dispatchCommand(cmd) {
|
|
494
|
-
if (window.acquireVsCodeApi) {
|
|
495
|
-
const vscode = window.acquireVsCodeApi();
|
|
496
|
-
vscode.postMessage({ command: 'exec', text: cmd });
|
|
497
|
-
} else if (navigator.clipboard) {
|
|
498
|
-
navigator.clipboard.writeText(cmd);
|
|
499
|
-
alert('Copied command to clipboard: ' + cmd);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
</script>
|
|
503
|
-
</body>
|
|
504
|
-
</html>
|