@goodandready/dsh-kanban 0.2.9 → 0.2.11

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.
Files changed (2) hide show
  1. package/lib/client.js +34 -2
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -17,6 +17,10 @@ window.__ModuleLoader__.load({
17
17
  const ReactDOM = require('react-dom/client')
18
18
 
19
19
  const NS = 'dsh-kanban'
20
+ // Plugins page row seat (DSH 0.1.6-alpha.2): key = '<package name>#<row id>'.
21
+ const PKG = '@goodandready/dsh-kanban'
22
+ const ROW_ID = 'dsh-kanban'
23
+ const ROW_CONFIG_KEY = PKG + '#' + ROW_ID
20
24
  const COLUMN_ORDER = ['backlog', 'in-progress', 'review', 'deploy', 'cleanup', 'done']
21
25
 
22
26
 
@@ -1976,8 +1980,15 @@ window.__ModuleLoader__.load({
1976
1980
  body = rows
1977
1981
  }
1978
1982
 
1979
- return h('li', { className: 'dkb-card dkb-cardOpen' },
1980
- head, h('div', { className: 'dkb-body' }, body))
1983
+ // Row seat (plugins.row.config): the host page draws title/icon/crumb and the
1984
+ // padding, so the summary is a one-liner and the page drops our card chrome.
1985
+ if (props && props.view === 'summary') {
1986
+ return h('span', { className: 'dkb-sub' }, t('settings.subtitle') || 'Kanban board for sessions and tasks')
1987
+ }
1988
+ const page = !!(props && props.view === 'page')
1989
+
1990
+ return h(page ? 'div' : 'li', { className: page ? 'dkb-page' : 'dkb-card dkb-cardOpen' },
1991
+ page ? null : head, h('div', { className: 'dkb-body' }, body))
1981
1992
  }
1982
1993
 
1983
1994
  /** Стрелка влево для кнопки возврата: 14x14, обводка цветом текста. */
@@ -4502,7 +4513,28 @@ window.__ModuleLoader__.load({
4502
4513
  refreshMirrorUntilVisible(ctx)
4503
4514
  const SettingsErrorBoundary = createErrorBoundary()
4504
4515
  const SafeSettingsCard = (props) => h(SettingsErrorBoundary, null, h(KanbanSettingsCard, props))
4516
+ // List seat (plugins.item): the seat the Plugins page renders as the plugin's own
4517
+ // page with its configuration. Registered separately from the fallback chain
4518
+ // below — the seat is additive, not an either/or candidate. The label is a static
4519
+ // string on purpose: it is resolved while the page renders, and a locale lookup
4520
+ // there would take the whole client batch down with it.
4521
+ try {
4522
+ ctx.slots.inject('plugins.item', () => {
4523
+ ctx.slots.register({
4524
+ name: 'plugins.item',
4525
+ id: ROW_ID,
4526
+ order: 60,
4527
+ label: () => 'Kanban',
4528
+ locale: NS,
4529
+ inject: () => ({ ctx }),
4530
+ }, SafeSettingsCard)
4531
+ })
4532
+ } catch (e) {
4533
+ console.warn('[dsh-kanban] plugins.item seat unavailable', e)
4534
+ }
4535
+
4505
4536
  const cardSlot = registerFirst(ctx, [
4537
+ { name: 'plugins.row.config', key: ROW_CONFIG_KEY, locale: NS, inject: () => ({ ctx }) },
4506
4538
  { name: 'settings.plugin.item', key: NS, locale: NS, inject: () => ({ ctx }) },
4507
4539
  ], SafeSettingsCard)
4508
4540
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-kanban",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "Visual Kanban board for DeepSeek Harness: Gitea-backed tasks, workflow columns, and a dedicated agent session per task.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",