@boyingliu01/opencode-plugin 0.10.12 → 0.10.13

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/index.ts CHANGED
@@ -322,6 +322,8 @@ export const XpGatePlugin = async (input: OpenCodePluginInput) => {
322
322
  if (!checked) {
323
323
  checked = true
324
324
  const msg = await runBackgroundUpdates(directory).catch(() => null)
325
+ // Primary notification: upgrade-notice.json → TUI sidebar banner
326
+ // Fallback: stderr for users without TUI panel registered
325
327
  if (msg) process.stderr.write(`${msg}\n`)
326
328
  }
327
329
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boyingliu01/opencode-plugin",
3
- "version": "0.10.12",
3
+ "version": "0.10.13",
4
4
  "type": "module",
5
5
  "main": "index.ts",
6
6
  "description": "XP-Gate quality gates + AI workflow skills + Sprint Flow TUI sidebar for OpenCode",
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-06-23
4
- **Commit:** bac916f
3
+ **Generated:** 2026-06-24
4
+ **Commit:** 5019773
5
5
  **Branch:** main
6
- **Version:** 0.10.11.0
6
+ **Version:** 0.10.13.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, 3 experts from ≥2 providers, domestic models only). Supports design + code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-06-23
4
- **Commit:** bac916f
3
+ **Generated:** 2026-06-24
4
+ **Commit:** 5019773
5
5
  **Branch:** main
6
- **Version:** 0.10.11.0
6
+ **Version:** 0.10.13.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **11-phase** development pipeline: ISOLATE → AUTO-ESTIMATE → THINK → PLAN → BUILD → REVIEW → USER ACCEPTANCE → FEEDBACK → SHIP → LAND → CLEANUP. Phase 2 default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE in Phase 1: design must pass Delphi review (≥90% consensus) before any coding.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/TEST-SPECIFICATION-ALIGNMENT KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-06-23
4
- **Commit:** bac916f
3
+ **Generated:** 2026-06-24
4
+ **Commit:** 5019773
5
5
  **Branch:** main
6
- **Version:** 0.10.11.0
6
+ **Version:** 0.10.13.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.
package/tui-plugin.ts CHANGED
@@ -329,11 +329,29 @@ function renderMultiSprintSidebar(sprints: DiscoveredSprint[]): string | null {
329
329
  return blocks.join("\n---\n");
330
330
  }
331
331
 
332
- function renderContent(sprints: DiscoveredSprint[], upgradeNotice: string | null): string | null {
332
+ function renderContent(sprints: DiscoveredSprint[], upgradeNotice: string | null, dir: string): string | null {
333
333
  const sprintContent = renderMultiSprintSidebar(sprints)
334
- if (upgradeNotice && sprintContent) return `${upgradeNotice}\n---\n${sprintContent}`
335
- if (upgradeNotice) return upgradeNotice
336
- return sprintContent
334
+
335
+ if (sprintContent) {
336
+ return [upgradeNotice, sprintContent].filter(Boolean).join("\n---\n")
337
+ }
338
+
339
+ // Early-phase placeholders: when no sprint data yet, check for directory hints
340
+ const hasStateDir = existsSync(join(dir, ".sprint-state"))
341
+ const gitRoot = findGitRoot(dir)
342
+ const hasWorktreesRoot = gitRoot ? existsSync(join(gitRoot, ".worktrees")) : false
343
+
344
+ if (hasStateDir) {
345
+ const placeholder = "SPRINT FLOW\n → 初始化中..."
346
+ return [upgradeNotice, placeholder].filter(Boolean).join("\n---\n")
347
+ }
348
+
349
+ if (hasWorktreesRoot) {
350
+ const placeholder = "SPRINT FLOW\n · 准备中..."
351
+ return [upgradeNotice, placeholder].filter(Boolean).join("\n---\n")
352
+ }
353
+
354
+ return upgradeNotice || null
337
355
  }
338
356
 
339
357
  // ── Upgrade notice ──
@@ -376,15 +394,14 @@ const tuiPlugin: TuiSlotPlugin = {
376
394
  const dir = process.env.XP_GATE_PROJECT_DIR || process.cwd();
377
395
  const now = Date.now();
378
396
 
379
- // Use cache if still valid for current directory
380
397
  if (_cache && _cache.dir === dir && now - _cache.ts < CACHE_TTL_MS) {
381
- return renderContent(_cache.data, _cache.upgradeNotice);
398
+ return renderContent(_cache.data, _cache.upgradeNotice, dir);
382
399
  }
383
400
 
384
401
  const sprints = discoverActiveSprints(dir);
385
402
  const upgradeNotice = renderUpgradeNotice()
386
403
  _cache = { data: sprints, ts: now, dir, upgradeNotice };
387
- return renderContent(sprints, upgradeNotice);
404
+ return renderContent(sprints, upgradeNotice, dir);
388
405
  },
389
406
  },
390
407
  }