@goodandready/dsh-kanban 0.2.33 → 0.2.35

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/lib/config.js CHANGED
@@ -81,6 +81,19 @@ export const CONFIG_DEFAULTS = {
81
81
  verificationTimeoutMs: 120000,
82
82
  costMeterEnabled: true,
83
83
  taskCostLimit: 0,
84
+ remoteMode: false,
85
+ remoteHost: '192.168.1.111',
86
+ remotePort: 22,
87
+ remoteUser: 'migrate',
88
+ remoteAuthType: 'key',
89
+ remoteKeyPath: '',
90
+ remoteSudoUser: 'vadim',
91
+ remoteRoot: '/mnt/external/Project/DEV',
92
+ remoteServerUrl: 'http://192.168.1.111:3080',
93
+ remoteServerToken: '',
94
+ watchdogEnabled: true,
95
+ watchdogStallTimeoutMin: 15,
96
+ watchdogMaxConsecutiveErrors: 5,
84
97
  }
85
98
 
86
99
  /** Field descriptions reused in schema and settings card. */
@@ -121,6 +134,19 @@ export const CONFIG_HINTS = {
121
134
  verificationTimeoutMs: 'Timeout in milliseconds for verification gate execution (default: 120000).',
122
135
  costMeterEnabled: 'Enable token and cost telemetry integration via @goodandready/dsh-cost-meter.',
123
136
  taskCostLimit: 'Cost threshold per task in USD; 0 disables threshold warnings.',
137
+ remoteMode: 'Enable remote execution on server 111 for tasks, worktrees, and git operations.',
138
+ remoteHost: 'Remote server hostname or IP address (e.g. 192.168.1.111).',
139
+ remotePort: 'Remote SSH port (default: 22).',
140
+ remoteUser: 'SSH username on remote server (e.g. migrate or vadim).',
141
+ remoteAuthType: 'SSH authentication mechanism: key, agent, or password.',
142
+ remoteKeyPath: 'Path to SSH private key file on local PC (e.g. C:/Users/.../.ssh/key).',
143
+ remoteSudoUser: 'Linux user to run commands as via sudo -u (e.g. vadim).',
144
+ remoteRoot: 'Base directory on remote server containing project repositories (/mnt/external/Project/DEV).',
145
+ remoteServerUrl: 'DSH server URL on 111 (http://192.168.1.111:3080) for unified board state and sessions.',
146
+ remoteServerToken: 'Authentication token for remote DSH server if required.',
147
+ watchdogEnabled: 'Enable background watchdog timer and circuit breaker for stalled agent tasks.',
148
+ watchdogStallTimeoutMin: 'Minutes of inactivity before active task is marked stalled by watchdog (default: 15).',
149
+ watchdogMaxConsecutiveErrors: 'Number of consecutive execution errors before tripping circuit breaker (default: 5).',
124
150
  }
125
151
 
126
152
  /** Setting key for column WIP limit; not all columns have limits. */
@@ -137,7 +163,11 @@ const WIP_FIELD = {
137
163
  */
138
164
  export function rootOf(config, cwdOf = () => process.cwd()) {
139
165
  const named = String(config?.defaultProjectRoot ?? '').trim()
140
- return named !== '' ? { path: named, set: true } : { path: cwdOf(), set: false }
166
+ if (named !== '') return { path: named, set: true }
167
+ if (config?.remoteMode && config?.remoteRoot) {
168
+ return { path: String(config.remoteRoot).trim(), set: true }
169
+ }
170
+ return { path: cwdOf(), set: false }
141
171
  }
142
172
 
143
173
  /**