@hartvig/developer-control-center 0.8.7 → 0.8.8

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.
@@ -1 +1 @@
1
- {"projectRunning":true,"activeTasks":1,"packageVersion":"0.8.7","latestTest":{"label":"Run all tests","status":"success","time":1782309973017},"latestBuild":{"status":"success","time":1782310001628},"lastGitPush":{"label":"Commit & push","time":1780608994995}}
1
+ {"projectRunning":false,"activeTasks":0,"packageVersion":"0.8.7","latestTest":{"label":"Run all tests","status":"success","time":1782309973017},"latestBuild":{"status":"running"},"lastGitPush":{"label":"Commit & push","time":1780608994995}}
@@ -1 +1 @@
1
- [["deploy-publish",{"id":"deploy-publish","label":"Publish package","status":"running","output":"","startTime":1782310012701,"watchMode":false}]]
1
+ [["deploy-publish",{"id":"deploy-publish","label":"Publish package","status":"failure","output":"npm warn publish npm auto-corrected some errors in your package.json when publishing. Please run \"npm pkg fix\" to address these errors.\nnpm warn publish errors corrected:\nnpm warn publish \"bin[dcc]\" script name was cleaned\nnpm notice\nnpm notice 📦 @hartvig/developer-control-center@0.8.7\nnpm notice Tarball Contents\nnpm notice 239B .developer-control-center/metrics.json\nnpm notice 145B .developer-control-center/status.json\nnpm notice 5.9kB .developer-control-center/timings.jsonl\nnpm notice 893B .github/workflows/ci.yml\nnpm notice 2.2kB AGENTS.md\nnpm notice 3.1kB PLUGINS.md\nnpm notice 3.2kB README.md\nnpm notice 5.4kB coverage/base.css\nnpm notice 2.7kB coverage/block-navigation.js\nnpm notice 33.3kB coverage/clover.xml\nnpm notice 144.1kB coverage/coverage-final.json\nnpm notice 25.3kB coverage/Developer Control Center/dcc.config.js.html\nnpm notice 4.4kB coverage/Developer Control Center/index.html\nnpm notice 4.5kB coverage/Developer Control Center/src/config/index.html\nnpm notice 19.4kB coverage/Developer Control Center/src/config/loader.ts.html\nnpm notice 6.2kB coverage/Developer Control Center/src/core/ci.ts.html\nnpm notice 7.5kB coverage/Developer Control Center/src/core/event-bus.ts.html\nnpm notice 8.0kB coverage/Developer Control Center/src/core/index.html\nnpm notice 7.7kB coverage/Developer Control Center/src/core/notifier.ts.html\nnpm notice 3.4kB coverage/Developer Control Center/src/core/persistence.ts.html\nnpm notice 64.3kB coverage/Developer Control Center/src/core/task-runner.ts.html\nnpm notice 12.0kB coverage/Developer Control Center/src/core/workspaces.ts.html\nnpm notice 4.5kB coverage/Developer Control Center/src/plugins/index.html\nnpm notice 10.3kB coverage/Developer Control Center/src/plugins/manager.ts.html\nnpm notice 4.5kB coverage/Developer Control Center/src/status/index.html\nnpm notice 13.6kB coverage/Developer Control Center/src/status/store.ts.html\nnpm notice 24.1kB coverage/Developer Control Center/src/ui/command-list.tsx.html\nnpm notice 6.7kB coverage/Developer Control Center/src/ui/index.html\nnpm notice 34.0kB coverage/Developer Control Center/src/ui/metrics-panel.tsx.html\nnpm notice 12.9kB coverage/Developer Control Center/src/ui/panel.tsx.html\nnpm notice 24.5kB coverage/Developer Control Center/src/ui/status-panel.tsx.html\nnpm notice 445B coverage/favicon.png\nnpm notice 8.2kB coverage/index.html\nnpm notice 676B coverage/prettify.css\nnpm notice 17.6kB coverage/prettify.js\nnpm notice 138B coverage/sort-arrow-sprite.png\nnpm notice 6.7kB coverage/sorter.js\nnpm notice 2.2kB dcc.config.example.js\nnpm notice 5.3kB dcc.config.js\nnpm notice 64B dist/cli.d.ts\nnpm notice 100B dist/cli.d.ts.map\nnpm notice 6.0kB dist/cli.js\nnpm notice 3.5kB dist/cli.js.map\nnpm notice 214B dist/config/index.d.ts\nnpm notice 254B dist/config/index.d.ts.map\nnpm notice 90B dist/config/index.js\nnpm notice 161B dist/config/index.js.map\nnpm notice 299B dist/config/loader.d.ts\nnpm notice 361B dist/config/loader.d.ts.map\nnpm notice 3.1kB dist/config/loader.js\nnpm notice 3.7kB dist/config/loader.js.map\nnpm notice 52B dist/config/loader.test.d.ts\nnpm notice 126B dist/config/loader.test.d.ts.map\nnpm notice 1.1kB dist/config/loader.test.js\nnpm notice 1.3kB dist/config/loader.test.js.map\nnpm notice 199B dist/config/presets/node.d.ts\nnpm notice 142B dist/config/presets/node.d.ts.map\nnpm notice 677B dist/config/presets/node.js\nnpm notice 543B dist/config/presets/node.js.map\nnpm notice 200B dist/config/presets/react.d.ts\nnpm notice 144B dist/config/presets/react.d.ts.map\nnpm notice 817B dist/config/presets/react.js\nnpm notice 622B dist/config/presets/react.js.map\nnpm notice 1.2kB dist/config/types.d.ts\nnpm notice 1.5kB dist/config/types.d.ts.map\nnpm notice 44B dist/config/types.js\nnpm notice 112B dist/config/types.js.map\nnpm notice 51B dist/config/types.test.d.ts\nnpm notice 124B dist/config/types.test.d.ts.map\nnpm notice 759B dist/config/types.test.js\nnpm notice 937B dist/config/types.test.js.map\nnpm notice 142B dist/core/ci.d.ts\nnpm notice 220B dist/core/ci.d.ts.map\nnpm notice 622B dist/core/ci.js\nnpm notice 881B dist/core/ci.js.map\nnpm notice 48B dist/core/ci.test.d.ts\nnpm notice 116B dist/core/ci.test.d.ts.map\nnpm notice 1.6kB dist/core/ci.test.js\nnpm notice 2.2kB dist/core/ci.test.js.map\nnpm notice 728B dist/core/event-bus.d.ts\nnpm notice 982B dist/core/event-bus.d.ts.map\nnpm notice 507B dist/core/event-bus.js\nnpm notice 796B dist/core/event-bus.js.map\nnpm notice 55B dist/core/event-bus.test.d.ts\nnpm notice 130B dist/core/event-bus.test.d.ts.map\nnpm notice 1.6kB dist/core/event-bus.test.js\nnpm notice 2.5kB dist/core/event-bus.test.js.map\nnpm notice 399B dist/core/index.d.ts\nnpm notice 452B dist/core/index.d.ts.map\nnpm notice 301B dist/core/index.js\nnpm notice 364B dist/core/index.js.map\nnpm notice 118B dist/core/notifier.d.ts\nnpm notice 193B dist/core/notifier.d.ts.map\nnpm notice 844B dist/core/notifier.js\nnpm notice 1.0kB dist/core/notifier.js.map\nnpm notice 54B dist/core/notifier.test.d.ts\nnpm notice 128B dist/core/notifier.test.d.ts.map\nnpm notice 948B dist/core/notifier.test.js\nnpm notice 1.3kB dist/core/notifier.test.js.map\nnpm notice 109B dist/core/persistence.d.ts\nnpm notice 155B dist/core/persistence.d.ts.map\nnpm notice 99B dist/core/persistence.js\nnpm notice 163B dist/core/persistence.js.map\nnpm notice 900B dist/core/runtime.d.ts\nnpm notice 905B dist/core/runtime.d.ts.map\nnpm notice 3.0kB dist/core/runtime.js\nnpm notice 3.1kB dist/core/runtime.js.map\nnpm notice 1.1kB dist/core/task-runner.d.ts\nnpm notice 1.0kB dist/core/task-runner.d.ts.map\nnpm notice 16.1kB dist/core/task-runner.js\nnpm notice 16.9kB dist/core/task-runner.js.map\nnpm notice 57B dist/core/task-runner.test.d.ts\nnpm notice 134B dist/core/task-runner.test.d.ts.map\nnpm notice 13.5kB dist/core/task-runner.test.js\nnpm notice 15.1kB dist/core/task-runner.test.js.map\nnpm notice 135B dist/core/timer-plugin.d.ts\nnpm notice 210B dist/core/timer-plugin.d.ts.map\nnpm notice 1.2kB dist/core/timer-plugin.js\nnpm notice 1.3kB dist/core/timer-plugin.js.map\nnpm notice 193B dist/core/workspaces.d.ts\nnpm notice 262B dist/core/workspaces.d.ts.map\nnpm notice 2.1kB dist/core/workspaces.js\nnpm notice 2.3kB dist/core/workspaces.js.map\nnpm notice 56B dist/core/workspaces.test.d.ts\nnpm notice 132B dist/core/workspaces.test.d.ts.map\nnpm notice 2.9kB dist/core/workspaces.test.js\nnpm notice 3.7kB dist/core/workspaces.test.js.map\nnpm notice 898B dist/index.d.ts\nnpm notice 827B dist/index.d.ts.map\nnpm notice 534B dist/index.js\nnpm notice 540B dist/index.js.map\nnpm notice 136B dist/plugins/index.d.ts\nnpm notice 205B dist/plugins/index.d.ts.map\nnpm notice 79B dist/plugins/index.js\nnpm notice 152B dist/plugins/index.js.map\nnpm notice 597B dist/plugins/manager.d.ts\nnpm notice 729B dist/plugins/manager.d.ts.map\nnpm notice 1.3kB dist/plugins/manager.js\nnpm notice 1.5kB dist/plugins/manager.js.map\nnpm notice 53B dist/plugins/manager.test.d.ts\nnpm notice 129B dist/plugins/manager.test.d.ts.map\nnpm notice 3.0kB dist/plugins/manager.test.js\nnpm notice 3.9kB dist/plugins/manager.test.js.map\nnpm notice 575B dist/plugins/types.d.ts\nnpm notice 762B dist/plugins/types.d.ts.map\nnpm notice 44B dist/plugins/types.js\nnpm notice 113B dist/plugins/types.js.map\nnpm notice 134B dist/status/index.d.ts\nnpm notice 204B dist/status/index.d.ts.map\nnpm notice 75B dist/status/index.js\nnpm notice 151B dist/status/index.js.map\nnpm notice 603B dist/status/store.d.ts\nnpm notice 715B dist/status/store.d.ts.map\nnpm notice 2.2kB dist/status/store.js\nnpm notice 2.8kB dist/status/store.js.map\nnpm notice 51B dist/status/store.test.d.ts\nnpm notice 124B dist/status/store.test.d.ts.map\nnpm notice 4.3kB dist/status/store.test.js\nnpm notice 5.2kB dist/status/store.test.js.map\nnpm notice 309B dist/status/types.d.ts\nnpm notice 436B dist/status/types.d.ts.map\nnpm notice 44B dist/status/types.js\nnpm notice 112B dist/status/types.js.map\nnpm notice 283B dist/ui/app.d.ts\nnpm notice 362B dist/ui/app.d.ts.map\nnpm notice 26.9kB dist/ui/app.js\nnpm notice 28.0kB dist/ui/app.js.map\nnpm notice 49B dist/ui/app.test.d.ts\nnpm notice 117B dist/ui/app.test.d.ts.map\nnpm notice 6.4kB dist/ui/app.test.js\nnpm notice 7.0kB dist/ui/app.test.js.map\nnpm notice 797B dist/ui/command-list.d.ts\nnpm notice 947B dist/ui/command-list.d.ts.map\nnpm notice 3.8kB dist/ui/command-list.js\nnpm notice 4.6kB dist/ui/command-list.js.map\nnpm notice 58B dist/ui/command-list.test.d.ts\nnpm notice 135B dist/ui/command-list.test.d.ts.map\nnpm notice 4.5kB dist/ui/command-list.test.js\nnpm notice 5.0kB dist/ui/command-list.test.js.map\nnpm notice 221B dist/ui/index.d.ts\nnpm notice 260B dist/ui/index.d.ts.map\nnpm notice 304B dist/ui/index.js\nnpm notice 376B dist/ui/index.js.map\nnpm notice 301B dist/ui/metrics-panel.d.ts\nnpm notice 391B dist/ui/metrics-panel.d.ts.map\nnpm notice 7.2kB dist/ui/metrics-panel.js\nnpm notice 7.8kB dist/ui/metrics-panel.js.map\nnpm notice 59B dist/ui/metrics-panel.test.d.ts\nnpm notice 137B dist/ui/metrics-panel.test.d.ts.map\nnpm notice 4.8kB dist/ui/metrics-panel.test.js\nnpm notice 5.3kB dist/ui/metrics-panel.test.js.map\nnpm notice 407B dist/ui/panel.d.ts\nnpm notice 531B dist/ui/panel.d.ts.map\nnpm notice 2.4kB dist/ui/panel.js\nnpm notice 2.7kB dist/ui/panel.js.map\nnpm notice 51B dist/ui/panel.test.d.ts\nnpm notice 121B dist/ui/panel.test.d.ts.map\nnpm notice 2.7kB dist/ui/panel.test.js\nnpm notice 3.3kB dist/ui/panel.test.js.map\nnpm notice 541B dist/ui/status-panel.d.ts\nnpm notice 633B dist/ui/status-panel.d.ts.map\nnpm notice 4.5kB dist/ui/status-panel.js\nnpm notice 5.3kB dist/ui/status-panel.js.map\nnpm notice 58B dist/ui/status-panel.test.d.ts\nnpm notice 135B dist/ui/status-panel.test.d.ts.map\nnpm notice 4.1kB dist/ui/status-panel.test.js\nnpm notice 4.8kB dist/ui/status-panel.test.js.map\nnpm notice 662B package.json\nnpm notice 5.8kB src/cli.ts\nnpm notice 179B src/config/index.ts\nnpm notice 979B src/config/loader.test.ts\nnpm notice 3.1kB src/config/loader.ts\nnpm notice 509B src/config/presets/node.ts\nnpm notice 622B src/config/presets/react.ts\nnpm notice 641B src/config/types.test.ts\nnpm notice 1.1kB src/config/types.ts\nnpm notice 1.5kB src/core/ci.test.ts\nnpm notice 613B src/core/ci.ts\nnpm notice 1.5kB src/core/event-bus.test.ts\nnpm notice 1.1kB src/core/event-bus.ts\nnpm notice 364B src/core/index.ts\nnpm notice 863B src/core/notifier.test.ts\nnpm notice 838B src/core/notifier.ts\nnpm notice 60B src/core/persistence.ts\nnpm notice 3.1kB src/core/runtime.ts\nnpm notice 12.0kB src/core/task-runner.test.ts\nnpm notice 14.7kB src/core/task-runner.ts\nnpm notice 1.0kB src/core/timer-plugin.ts\nnpm notice 2.8kB src/core/workspaces.test.ts\nnpm notice 1.9kB src/core/workspaces.ts\nnpm notice 863B src/index.ts\nnpm notice 101B src/plugins/index.ts\nnpm notice 2.7kB src/plugins/manager.test.ts\nnpm notice 1.4kB src/plugins/manager.ts\nnpm notice 518B src/plugins/types.ts\nnpm notice 99B src/status/index.ts\nnpm notice 3.9kB src/status/store.test.ts\nnpm notice 2.3kB src/status/store.ts\nnpm notice 259B src/status/types.ts\nnpm notice 5.9kB src/ui/app.test.tsx\nnpm notice 24.9kB src/ui/app.tsx\nnpm notice 4.1kB src/ui/command-list.test.tsx\nnpm notice 4.8kB src/ui/command-list.tsx\nnpm notice 358B src/ui/index.tsx\nnpm notice 4.5kB src/ui/metrics-panel.test.tsx\nnpm notice 7.5kB src/ui/metrics-panel.tsx\nnpm notice 2.5kB src/ui/panel.test.tsx\nnpm notice 2.6kB src/ui/panel.tsx\nnpm notice 3.9kB src/ui/status-panel.test.tsx\nnpm notice 5.3kB src/ui/status-panel.tsx\nnpm notice 475B tsconfig.json\nnpm notice 171B vitest.config.ts\nnpm notice Tarball Details\nnpm notice name: @hartvig/developer-control-center\nnpm notice version: 0.8.7\nnpm notice filename: hartvig-developer-control-center-0.8.7.tgz\nnpm notice package size: 164.4 kB\nnpm notice unpacked size: 991.8 kB\nnpm notice shasum: 0a2492e7aa1b98c7c400d9632b7ca9b63c15bda1\nnpm notice integrity: sha512-68/JgQXuseDA9[...]Kq6qtx8zfsjeg==\nnpm notice total files: 252\nnpm notice\nnpm notice Publishing to https://registry.npmjs.org/ with tag latest and public access\nnpm error code E403\nnpm error 403 403 Forbidden - PUT https://registry.npmjs.org/@hartvig%2fdeveloper-control-center - You cannot publish over the previously published versions: 0.8.7.\nnpm error 403 In most cases, you or one of your dependencies are requesting\nnpm error 403 a package version that is forbidden by your security policy, or\nnpm error 403 on a server you do not have access to.\nnpm error A complete log of this run can be found in: /home/ole/.npm/_logs/2026-06-24T15_06_04_971Z-debug-0.log\n","startTime":1782313564870,"endTime":1782313566580,"exitCode":1,"watchMode":false}]]
@@ -33,3 +33,13 @@
33
33
  {"id":"test","label":"Run all tests","duration":3206,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:13.022Z"}
34
34
  {"id":"bump-version","label":"Bump version","duration":246,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:33.826Z"}
35
35
  {"id":"build","label":"Build all packages","duration":2568,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:41.632Z"}
36
+ {"id":"deploy-publish","label":"Publish package","duration":2300,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:54.988Z"}
37
+ {"id":"status-outdated","label":"Check outdated deps","duration":824,"exitCode":1,"status":"failure","timestamp":"2026-06-24T14:07:44.048Z"}
38
+ {"id":"status-outdated:on-nonzero","label":"Update all","duration":6507,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:07:59.783Z"}
39
+ {"id":"status-outdated","label":"Check outdated deps","duration":690,"exitCode":1,"status":"failure","timestamp":"2026-06-24T14:08:03.442Z"}
40
+ {"id":"install","label":"Install all packages","duration":1344,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:09:34.820Z"}
41
+ {"id":"status-outdated","label":"Check outdated deps","duration":640,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:09:45.852Z"}
42
+ {"id":"status-packages","label":"List workspace packages","duration":394,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:09:49.560Z"}
43
+ {"id":"status-git","label":"Git status","duration":70,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:11:08.139Z"}
44
+ {"id":"status-git","label":"Git status","duration":80,"exitCode":0,"status":"success","timestamp":"2026-06-24T15:03:09.128Z"}
45
+ {"id":"deploy-publish","label":"Publish package","duration":1734,"exitCode":1,"status":"failure","timestamp":"2026-06-24T15:06:06.585Z"}
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import path from 'path';
4
4
  import { loadConfig } from './config/index.js';
5
5
  import { Runtime, detectCI } from './core/index.js';
6
6
  import { startUI } from './ui/index.js';
7
- const VERSION = '0.1.0';
7
+ const VERSION = '0.8.7';
8
8
  function printHelp() {
9
9
  console.log(`
10
10
  developer-control-center v${VERSION}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAgB3C,qBAAa,OAAO;IAiBN,QAAQ,CAAC,MAAM,EAAE,YAAY;IAhBzC,QAAQ,CAAC,QAAQ,WAAkB;IACnC,QAAQ,CAAC,WAAW,cAAqB;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,gBAIpB;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,aAAa,CAAC,CAAa;gBAEd,MAAM,EAAE,YAAY;IAanC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,IAAI,IAAI,IAAI;IAOZ,OAAO,CAAC,aAAa;CAyBtB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAgB3C,qBAAa,OAAO;IAiBN,QAAQ,CAAC,MAAM,EAAE,YAAY;IAhBzC,QAAQ,CAAC,QAAQ,WAAkB;IACnC,QAAQ,CAAC,WAAW,cAAqB;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,gBAIpB;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,aAAa,CAAC,CAAa;gBAEd,MAAM,EAAE,YAAY;IAanC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,aAAa;CAyBtB"}
@@ -59,7 +59,6 @@ export class Runtime {
59
59
  }
60
60
  stop() {
61
61
  this.taskRunner.abortAll();
62
- this.eventBus.removeAll();
63
62
  this.unsubPersistence?.();
64
63
  this.unsubNotifier?.();
65
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA4B1C,qBAAa,UAAU;IAOnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,QAAQ;IATlB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAAqD;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAG7B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,QAAQ,GAAE,aAAa,EAAO;IAGxC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAItC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmHnE,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUvB,QAAQ,IAAI,IAAI;IAahB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IA2BlC,OAAO,CAAC,kBAAkB;YAYZ,WAAW;YAiDX,gBAAgB;IAyE9B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,SAAS;CAOlB"}
1
+ {"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA8B1C,qBAAa,UAAU;IAOnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,QAAQ;IATlB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAAqD;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAG7B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,QAAQ,GAAE,aAAa,EAAO;IAGxC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAItC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4InE,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAkBvB,QAAQ,IAAI,IAAI;IAahB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IA2BlC,OAAO,CAAC,kBAAkB;YAYZ,WAAW;YAiDX,gBAAgB;IAyE9B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,SAAS;CAOlB"}
@@ -1,12 +1,15 @@
1
- import { spawn, execSync } from 'child_process';
1
+ import { spawn, exec } from 'child_process';
2
2
  import fs from 'fs';
3
3
  class FileWatcher {
4
4
  watcher;
5
5
  debounceTimer;
6
+ exclude = /[/\\](node_modules|\.git)[/\\]/;
6
7
  watch(dir, onChange) {
7
8
  this.stop();
8
9
  try {
9
- this.watcher = fs.watch(dir, { recursive: true }, () => {
10
+ this.watcher = fs.watch(dir, { recursive: true }, (event, filename) => {
11
+ if (filename && this.exclude.test(filename.toString()))
12
+ return;
10
13
  if (this.debounceTimer)
11
14
  clearTimeout(this.debounceTimer);
12
15
  this.debounceTimer = setTimeout(onChange, 500);
@@ -58,7 +61,9 @@ export class TaskRunner {
58
61
  return;
59
62
  const existing = this.statusStore.getTask(command.id);
60
63
  if (existing?.status === 'running') {
61
- return;
64
+ if (!command.parallel)
65
+ return;
66
+ this.abort(command.id);
62
67
  }
63
68
  await this.pluginManager?.executeHook('beforeRun', command);
64
69
  this.stopWatcher(command.id);
@@ -74,17 +79,40 @@ export class TaskRunner {
74
79
  watchMode: false,
75
80
  });
76
81
  this.eventBus.emit('task:start', command);
77
- const child = spawn(command.command, [], {
78
- shell: true,
79
- detached: true,
80
- windowsHide: true,
81
- stdio: ['ignore', 'pipe', 'pipe'],
82
- cwd: command.cwd,
83
- });
82
+ let child;
83
+ try {
84
+ child = spawn(command.command, [], {
85
+ shell: true,
86
+ detached: true,
87
+ windowsHide: true,
88
+ stdio: ['ignore', 'pipe', 'pipe'],
89
+ cwd: command.cwd,
90
+ });
91
+ }
92
+ catch (err) {
93
+ this.statusStore.updateTask(command.id, {
94
+ status: 'failure',
95
+ output: `Failed to spawn: ${err instanceof Error ? err.message : String(err)}\n`,
96
+ exitCode: -1,
97
+ endTime: Date.now(),
98
+ });
99
+ this.eventBus.emit('task:error', command.id, err instanceof Error ? err : new Error(String(err)));
100
+ this.pluginManager?.executeHook('onError', command.id, err instanceof Error ? err : new Error(String(err)));
101
+ return;
102
+ }
84
103
  this.running.set(command.id, child);
85
104
  if (command.toggle?.check) {
86
105
  this.startCheck(command);
87
106
  }
107
+ let timedOut = false;
108
+ const timeoutMs = command.timeout ?? 0;
109
+ let timeoutTimer = null;
110
+ if (timeoutMs > 0) {
111
+ timeoutTimer = setTimeout(() => {
112
+ timedOut = true;
113
+ this.abort(command.id);
114
+ }, timeoutMs);
115
+ }
88
116
  let output = '';
89
117
  child.stdout?.on('data', (data) => {
90
118
  const text = data.toString();
@@ -101,6 +129,8 @@ export class TaskRunner {
101
129
  this.pluginManager?.executeHook('onOutput', command.id, text);
102
130
  });
103
131
  child.on('close', (exitCode) => {
132
+ if (timeoutTimer)
133
+ clearTimeout(timeoutTimer);
104
134
  this.running.delete(command.id);
105
135
  if (command.toggle?.check)
106
136
  return;
@@ -148,6 +178,14 @@ export class TaskRunner {
148
178
  }
149
179
  this.stopWatcher(id);
150
180
  this.stopCheck(id);
181
+ const existing = this.statusStore.getTask(id);
182
+ if (existing?.status === 'running') {
183
+ this.statusStore.updateTask(id, {
184
+ status: 'failure',
185
+ endTime: Date.now(),
186
+ });
187
+ this.eventBus.emit('task:complete', id, -1);
188
+ }
151
189
  }
152
190
  abortAll() {
153
191
  for (const [id, child] of this.running) {
@@ -388,17 +426,16 @@ export class TaskRunner {
388
426
  return;
389
427
  const checkCmd = command.toggle.check;
390
428
  const interval = setInterval(() => {
391
- try {
392
- execSync(checkCmd, { encoding: 'utf-8', timeout: 3000, stdio: 'pipe' });
393
- }
394
- catch {
395
- this.statusStore.updateTask(id, {
396
- status: 'failure',
397
- endTime: Date.now(),
398
- });
399
- this.eventBus.emit('task:complete', id, -1);
400
- this.stopCheck(id);
401
- }
429
+ exec(checkCmd, { encoding: 'utf-8', timeout: 3000 }, (err) => {
430
+ if (err) {
431
+ this.statusStore.updateTask(id, {
432
+ status: 'failure',
433
+ endTime: Date.now(),
434
+ });
435
+ this.eventBus.emit('task:complete', id, -1);
436
+ this.stopCheck(id);
437
+ }
438
+ });
402
439
  }, this.CHECK_INTERVAL);
403
440
  this.checkIntervals.set(id, interval);
404
441
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AAOhF,UAAU,QAAQ;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAmED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAqoBlC,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AAQhF,UAAU,QAAQ;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAmED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAkpBlC,CAAC"}
package/dist/ui/app.js CHANGED
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect, useMemo, useCallback, useRef } from 'react';
3
3
  import { Box, Text, useInput, useApp, useStdout } from 'ink';
4
4
  import { mergeCommands } from '../config/index.js';
5
+ import { sendNotification } from '../core/notifier.js';
5
6
  import { CommandList } from './command-list.js';
6
7
  import { MetricsPanel } from './metrics-panel.js';
7
8
  import { Panel } from './panel.js';
@@ -65,11 +66,19 @@ export const App = ({ config, runtime }) => {
65
66
  const [multiSelected, setMultiSelected] = useState(new Set());
66
67
  const [helpScroll, setHelpScroll] = useState(0);
67
68
  const [activeProfile, setActiveProfile] = useState(config.profile);
68
- const terminalRows = stdout?.rows ?? 24;
69
+ const [termSize, setTermSize] = useState({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
70
+ const terminalRows = termSize.rows;
69
71
  const dynamicRows = Math.max(4, terminalRows - 7);
70
72
  const menuRows = config.menuRows ?? dynamicRows;
71
73
  const outputRows = config.outputRows ?? menuRows;
72
- const terminalColumns = stdout?.columns ?? 120;
74
+ const terminalColumns = termSize.cols;
75
+ useEffect(() => {
76
+ const onResize = () => {
77
+ setTermSize({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
78
+ };
79
+ stdout?.on?.('resize', onResize);
80
+ return () => { stdout?.off?.('resize', onResize); };
81
+ }, [stdout]);
73
82
  const statusPaneWidth = 28;
74
83
  const activeCommands = useMemo(() => commandsForProfile(config, activeProfile), [activeProfile, config]);
75
84
  useEffect(() => {
@@ -101,8 +110,12 @@ export const App = ({ config, runtime }) => {
101
110
  popupRef.current = popup;
102
111
  useEffect(() => {
103
112
  const onComplete = (id, exitCode) => {
113
+ const cmd = commandsRef.current.find((c) => c.id === id);
114
+ if (cmd) {
115
+ const status = exitCode === null ? 'Stopped' : exitCode === 0 ? 'Completed' : 'Failed';
116
+ sendNotification(`DCC: ${cmd.label}`, status);
117
+ }
104
118
  if (exitCode != null && exitCode > 0) {
105
- const cmd = commandsRef.current.find((c) => c.id === id);
106
119
  if (cmd?.onNonZeroExit) {
107
120
  setConfirmingCmd({
108
121
  id: `${cmd.id}:on-nonzero`,
@@ -438,11 +451,11 @@ export const App = ({ config, runtime }) => {
438
451
  else if (key.upArrow) {
439
452
  setScrollOffsets((prev) => {
440
453
  const next = new Map(prev);
441
- const entries = Array.from(tasks.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
454
+ const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
442
455
  const target = entries[0];
443
456
  if (target) {
444
- const current = next.get(target.id) ?? 0;
445
- next.set(target.id, current + 1);
457
+ const hiddenFromBottom = next.get(target.id) ?? 0;
458
+ next.set(target.id, hiddenFromBottom + 1);
446
459
  }
447
460
  return next;
448
461
  });
@@ -450,11 +463,11 @@ export const App = ({ config, runtime }) => {
450
463
  else if (key.downArrow) {
451
464
  setScrollOffsets((prev) => {
452
465
  const next = new Map(prev);
453
- const entries = Array.from(tasks.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
466
+ const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
454
467
  const target = entries[0];
455
468
  if (target) {
456
- const current = next.get(target.id) ?? 0;
457
- next.set(target.id, Math.max(0, current - 1));
469
+ const hiddenFromBottom = next.get(target.id) ?? 0;
470
+ next.set(target.id, Math.max(0, hiddenFromBottom - 1));
458
471
  }
459
472
  return next;
460
473
  });
@@ -462,11 +475,11 @@ export const App = ({ config, runtime }) => {
462
475
  else if (key.pageUp) {
463
476
  setScrollOffsets((prev) => {
464
477
  const next = new Map(prev);
465
- const entries = Array.from(tasks.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
478
+ const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
466
479
  const target = entries[0];
467
480
  if (target) {
468
- const current = next.get(target.id) ?? 0;
469
- next.set(target.id, current + 10);
481
+ const hiddenFromBottom = next.get(target.id) ?? 0;
482
+ next.set(target.id, hiddenFromBottom + 10);
470
483
  }
471
484
  return next;
472
485
  });
@@ -474,11 +487,11 @@ export const App = ({ config, runtime }) => {
474
487
  else if (key.pageDown) {
475
488
  setScrollOffsets((prev) => {
476
489
  const next = new Map(prev);
477
- const entries = Array.from(tasks.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
490
+ const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
478
491
  const target = entries[0];
479
492
  if (target) {
480
- const current = next.get(target.id) ?? 0;
481
- next.set(target.id, Math.max(0, current - 10));
493
+ const hiddenFromBottom = next.get(target.id) ?? 0;
494
+ next.set(target.id, Math.max(0, hiddenFromBottom - 10));
482
495
  }
483
496
  return next;
484
497
  });
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=app.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.test.d.ts","sourceRoot":"","sources":["../../src/ui/app.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
3
+ import { act } from 'react';
4
+ import { render } from 'ink-testing-library';
5
+ import { App } from './app.js';
6
+ import { EventBus } from '../core/event-bus.js';
7
+ import { StatusStore } from '../status/store.js';
8
+ function createMockRuntime() {
9
+ const eventBus = new EventBus();
10
+ const statusStore = new StatusStore();
11
+ const taskRunner = {
12
+ run: vi.fn().mockResolvedValue(undefined),
13
+ stop: vi.fn(),
14
+ abortAll: vi.fn(),
15
+ setCommands: vi.fn(),
16
+ abort: vi.fn(),
17
+ };
18
+ return {
19
+ eventBus,
20
+ statusStore,
21
+ taskRunner,
22
+ pluginManager: { register: vi.fn(), executeHook: vi.fn(), loadFromConfig: vi.fn() },
23
+ gitBranch: 'main',
24
+ workspaces: [],
25
+ ci: { isCI: false, name: undefined },
26
+ stop: vi.fn(),
27
+ };
28
+ }
29
+ const baseConfig = {
30
+ name: 'test-project',
31
+ commands: [
32
+ { id: 'build', label: 'Build', command: 'npm run build', description: 'Build the project' },
33
+ { id: 'test', label: 'Test', command: 'npm test' },
34
+ ],
35
+ };
36
+ describe('App', () => {
37
+ let runtime;
38
+ beforeEach(() => {
39
+ runtime = createMockRuntime();
40
+ });
41
+ afterEach(() => {
42
+ vi.restoreAllMocks();
43
+ });
44
+ it('renders the project name in the header', () => {
45
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
46
+ expect(lastFrame()).toContain('test-project');
47
+ });
48
+ it('shows the git branch', () => {
49
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
50
+ expect(lastFrame()).toContain('⎇ main');
51
+ });
52
+ it('renders command items', () => {
53
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
54
+ const frame = lastFrame();
55
+ expect(frame).toContain('Build');
56
+ expect(frame).toContain('Test');
57
+ });
58
+ it('shows no tasks yet in output panel', () => {
59
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
60
+ expect(lastFrame()).toContain('No tasks yet');
61
+ });
62
+ it('shows selected command description in footer', () => {
63
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
64
+ expect(lastFrame()).toContain('Build the project');
65
+ });
66
+ it('renders with groups', () => {
67
+ const config = {
68
+ name: 'test',
69
+ commands: [
70
+ { id: 'build', label: 'Build', command: 'npm run build', group: 'Build' },
71
+ { id: 'test', label: 'Test', command: 'npm test', group: 'Test' },
72
+ ],
73
+ };
74
+ const { lastFrame } = render(_jsx(App, { config: config, runtime: runtime }));
75
+ expect(lastFrame()).toContain('▶ Build');
76
+ expect(lastFrame()).toContain('▶ Test');
77
+ });
78
+ it('shows active profile in header', () => {
79
+ const config = {
80
+ name: 'test',
81
+ commands: [{ id: 'build', label: 'Build', command: 'npm run build' }],
82
+ profiles: { prod: { commands: [] } },
83
+ profile: 'prod',
84
+ };
85
+ const { lastFrame } = render(_jsx(App, { config: config, runtime: runtime }));
86
+ expect(lastFrame()).toContain('⚙ prod');
87
+ });
88
+ it('shows workspace count when present', () => {
89
+ runtime.workspaces = [{ name: 'pkg-a', path: '/pkg-a' }];
90
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
91
+ expect(lastFrame()).toContain('⊞ 1');
92
+ });
93
+ it('handles status store updates', () => {
94
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
95
+ act(() => {
96
+ runtime.statusStore.updateTask('build', {
97
+ id: 'build',
98
+ label: 'Build',
99
+ status: 'running',
100
+ output: 'compiling...',
101
+ });
102
+ });
103
+ const frame = lastFrame();
104
+ expect(frame).toContain('compiling...');
105
+ });
106
+ it('shows confirm prompt for confirm commands', () => {
107
+ const config = {
108
+ name: 'test',
109
+ commands: [
110
+ { id: 'deploy', label: 'Deploy', command: 'npm run deploy', confirm: true },
111
+ ],
112
+ };
113
+ const { lastFrame, stdin } = render(_jsx(App, { config: config, runtime: runtime }));
114
+ act(() => { stdin.write('\r'); });
115
+ const frame = lastFrame();
116
+ expect(frame).toContain('⚠');
117
+ });
118
+ it('shows DCC in header', () => {
119
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
120
+ expect(lastFrame()).toContain('DCC');
121
+ });
122
+ it('shows status pane (middle panel)', () => {
123
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
124
+ expect(lastFrame()).toContain('Status');
125
+ });
126
+ it('shows output pane (right panel)', () => {
127
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
128
+ expect(lastFrame()).toContain('Output');
129
+ });
130
+ it('shows CI badge when in CI environment', () => {
131
+ runtime.ci = { isCI: true, name: 'GitHub Actions' };
132
+ const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
133
+ expect(lastFrame()).toContain('⊡ GitHub Actions');
134
+ });
135
+ it('switches pane focus on Tab', () => {
136
+ const { lastFrame, stdin } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
137
+ act(() => { stdin.write('\t'); });
138
+ const frame = lastFrame();
139
+ expect(frame).toContain('Output');
140
+ });
141
+ it('enters search mode on / key', () => {
142
+ const { lastFrame, stdin } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
143
+ act(() => { stdin.write('/'); });
144
+ expect(lastFrame()).toContain('🔍');
145
+ });
146
+ it('shows default footer hint for command without description', () => {
147
+ const config = {
148
+ name: 'test',
149
+ commands: [
150
+ { id: 'foo', label: 'Foo', command: 'echo foo' },
151
+ ],
152
+ };
153
+ const { lastFrame } = render(_jsx(App, { config: config, runtime: runtime }));
154
+ expect(lastFrame()).toContain('Enter to run');
155
+ });
156
+ });
157
+ //# sourceMappingURL=app.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../src/ui/app.test.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hartvig/developer-control-center",
3
- "version": "0.8.7",
3
+ "version": "0.8.8",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "bin": {
@@ -22,7 +22,7 @@
22
22
  "react": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@types/node": "^25.0.0",
25
+ "@types/node": "^26.0.0",
26
26
  "@types/react": "^19.0.0",
27
27
  "@vitest/coverage-v8": "^4.1.9",
28
28
  "ink-testing-library": "^4.0.0",
package/src/cli.ts CHANGED
@@ -6,7 +6,7 @@ import { loadConfig } from './config/index.js';
6
6
  import { Runtime, detectCI } from './core/index.js';
7
7
  import { startUI } from './ui/index.js';
8
8
 
9
- const VERSION = '0.1.0';
9
+ const VERSION = '0.8.7';
10
10
 
11
11
  function printHelp(): void {
12
12
  console.log(`
@@ -71,7 +71,6 @@ export class Runtime {
71
71
 
72
72
  stop(): void {
73
73
  this.taskRunner.abortAll();
74
- this.eventBus.removeAll();
75
74
  this.unsubPersistence?.();
76
75
  this.unsubNotifier?.();
77
76
  }
@@ -1,4 +1,4 @@
1
- import { spawn, execSync, ChildProcess } from 'child_process';
1
+ import { spawn, exec, ChildProcess } from 'child_process';
2
2
  import fs from 'fs';
3
3
  import { ProkomCommand } from '../config/types.js';
4
4
  import { StatusStore } from '../status/store.js';
@@ -8,11 +8,13 @@ import { EventBus } from './event-bus.js';
8
8
  class FileWatcher {
9
9
  private watcher?: fs.FSWatcher;
10
10
  private debounceTimer?: ReturnType<typeof setTimeout>;
11
+ private exclude = /[/\\](node_modules|\.git)[/\\]/;
11
12
 
12
13
  watch(dir: string, onChange: () => void): boolean {
13
14
  this.stop();
14
15
  try {
15
- this.watcher = fs.watch(dir, { recursive: true }, () => {
16
+ this.watcher = fs.watch(dir, { recursive: true }, (event, filename) => {
17
+ if (filename && this.exclude.test(filename.toString())) return;
16
18
  if (this.debounceTimer) clearTimeout(this.debounceTimer);
17
19
  this.debounceTimer = setTimeout(onChange, 500);
18
20
  });
@@ -63,7 +65,8 @@ export class TaskRunner {
63
65
 
64
66
  const existing = this.statusStore.getTask(command.id);
65
67
  if (existing?.status === 'running') {
66
- return;
68
+ if (!command.parallel) return;
69
+ this.abort(command.id);
67
70
  }
68
71
 
69
72
  await this.pluginManager?.executeHook('beforeRun', command);
@@ -83,13 +86,26 @@ export class TaskRunner {
83
86
 
84
87
  this.eventBus.emit('task:start', command);
85
88
 
86
- const child = spawn(command.command, [], {
87
- shell: true,
88
- detached: true,
89
- windowsHide: true,
90
- stdio: ['ignore', 'pipe', 'pipe'],
91
- cwd: command.cwd,
92
- });
89
+ let child: ChildProcess;
90
+ try {
91
+ child = spawn(command.command, [], {
92
+ shell: true,
93
+ detached: true,
94
+ windowsHide: true,
95
+ stdio: ['ignore', 'pipe', 'pipe'],
96
+ cwd: command.cwd,
97
+ });
98
+ } catch (err) {
99
+ this.statusStore.updateTask(command.id, {
100
+ status: 'failure',
101
+ output: `Failed to spawn: ${err instanceof Error ? err.message : String(err)}\n`,
102
+ exitCode: -1,
103
+ endTime: Date.now(),
104
+ });
105
+ this.eventBus.emit('task:error', command.id, err instanceof Error ? err : new Error(String(err)));
106
+ this.pluginManager?.executeHook('onError', command.id, err instanceof Error ? err : new Error(String(err)));
107
+ return;
108
+ }
93
109
 
94
110
  this.running.set(command.id, child);
95
111
 
@@ -97,6 +113,16 @@ export class TaskRunner {
97
113
  this.startCheck(command);
98
114
  }
99
115
 
116
+ let timedOut = false;
117
+ const timeoutMs = command.timeout ?? 0;
118
+ let timeoutTimer: ReturnType<typeof setTimeout> | null = null;
119
+ if (timeoutMs > 0) {
120
+ timeoutTimer = setTimeout(() => {
121
+ timedOut = true;
122
+ this.abort(command.id);
123
+ }, timeoutMs);
124
+ }
125
+
100
126
  let output = '';
101
127
 
102
128
  child.stdout?.on('data', (data: Buffer) => {
@@ -116,6 +142,7 @@ export class TaskRunner {
116
142
  });
117
143
 
118
144
  child.on('close', (exitCode) => {
145
+ if (timeoutTimer) clearTimeout(timeoutTimer);
119
146
  this.running.delete(command.id);
120
147
 
121
148
  if (command.toggle?.check) return;
@@ -171,6 +198,14 @@ export class TaskRunner {
171
198
  }
172
199
  this.stopWatcher(id);
173
200
  this.stopCheck(id);
201
+ const existing = this.statusStore.getTask(id);
202
+ if (existing?.status === 'running') {
203
+ this.statusStore.updateTask(id, {
204
+ status: 'failure',
205
+ endTime: Date.now(),
206
+ });
207
+ this.eventBus.emit('task:complete', id, -1);
208
+ }
174
209
  }
175
210
 
176
211
  abortAll(): void {
@@ -446,16 +481,16 @@ export class TaskRunner {
446
481
 
447
482
  const checkCmd = command.toggle!.check!;
448
483
  const interval = setInterval(() => {
449
- try {
450
- execSync(checkCmd, { encoding: 'utf-8', timeout: 3000, stdio: 'pipe' });
451
- } catch {
452
- this.statusStore.updateTask(id, {
453
- status: 'failure',
454
- endTime: Date.now(),
455
- });
456
- this.eventBus.emit('task:complete', id, -1);
457
- this.stopCheck(id);
458
- }
484
+ exec(checkCmd, { encoding: 'utf-8', timeout: 3000 }, (err) => {
485
+ if (err) {
486
+ this.statusStore.updateTask(id, {
487
+ status: 'failure',
488
+ endTime: Date.now(),
489
+ });
490
+ this.eventBus.emit('task:complete', id, -1);
491
+ this.stopCheck(id);
492
+ }
493
+ });
459
494
  }, this.CHECK_INTERVAL);
460
495
 
461
496
  this.checkIntervals.set(id, interval);
@@ -0,0 +1,177 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import React, { act } from 'react';
3
+ import { render } from 'ink-testing-library';
4
+ import { App } from './app.js';
5
+ import { EventBus } from '../core/event-bus.js';
6
+ import { StatusStore } from '../status/store.js';
7
+
8
+ function createMockRuntime() {
9
+ const eventBus = new EventBus();
10
+ const statusStore = new StatusStore();
11
+ const taskRunner = {
12
+ run: vi.fn().mockResolvedValue(undefined),
13
+ stop: vi.fn(),
14
+ abortAll: vi.fn(),
15
+ setCommands: vi.fn(),
16
+ abort: vi.fn(),
17
+ };
18
+ return {
19
+ eventBus,
20
+ statusStore,
21
+ taskRunner,
22
+ pluginManager: { register: vi.fn(), executeHook: vi.fn(), loadFromConfig: vi.fn() },
23
+ gitBranch: 'main',
24
+ workspaces: [] as { name: string; path: string }[],
25
+ ci: { isCI: false, name: undefined as string | undefined },
26
+ stop: vi.fn(),
27
+ };
28
+ }
29
+
30
+ const baseConfig = {
31
+ name: 'test-project',
32
+ commands: [
33
+ { id: 'build', label: 'Build', command: 'npm run build', description: 'Build the project' },
34
+ { id: 'test', label: 'Test', command: 'npm test' },
35
+ ],
36
+ };
37
+
38
+ describe('App', () => {
39
+ let runtime: ReturnType<typeof createMockRuntime>;
40
+
41
+ beforeEach(() => {
42
+ runtime = createMockRuntime() as any;
43
+ });
44
+
45
+ afterEach(() => {
46
+ vi.restoreAllMocks();
47
+ });
48
+
49
+ it('renders the project name in the header', () => {
50
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
51
+ expect(lastFrame()).toContain('test-project');
52
+ });
53
+
54
+ it('shows the git branch', () => {
55
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
56
+ expect(lastFrame()).toContain('⎇ main');
57
+ });
58
+
59
+ it('renders command items', () => {
60
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
61
+ const frame = lastFrame();
62
+ expect(frame).toContain('Build');
63
+ expect(frame).toContain('Test');
64
+ });
65
+
66
+ it('shows no tasks yet in output panel', () => {
67
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
68
+ expect(lastFrame()).toContain('No tasks yet');
69
+ });
70
+
71
+ it('shows selected command description in footer', () => {
72
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
73
+ expect(lastFrame()).toContain('Build the project');
74
+ });
75
+
76
+ it('renders with groups', () => {
77
+ const config = {
78
+ name: 'test',
79
+ commands: [
80
+ { id: 'build', label: 'Build', command: 'npm run build', group: 'Build' },
81
+ { id: 'test', label: 'Test', command: 'npm test', group: 'Test' },
82
+ ],
83
+ };
84
+ const { lastFrame } = render(<App config={config} runtime={runtime as any} />);
85
+ expect(lastFrame()).toContain('▶ Build');
86
+ expect(lastFrame()).toContain('▶ Test');
87
+ });
88
+
89
+ it('shows active profile in header', () => {
90
+ const config = {
91
+ name: 'test',
92
+ commands: [{ id: 'build', label: 'Build', command: 'npm run build' }],
93
+ profiles: { prod: { commands: [] } },
94
+ profile: 'prod',
95
+ };
96
+ const { lastFrame } = render(<App config={config} runtime={runtime as any} />);
97
+ expect(lastFrame()).toContain('⚙ prod');
98
+ });
99
+
100
+ it('shows workspace count when present', () => {
101
+ runtime.workspaces = [{ name: 'pkg-a', path: '/pkg-a' }];
102
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
103
+ expect(lastFrame()).toContain('⊞ 1');
104
+ });
105
+
106
+ it('handles status store updates', () => {
107
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
108
+ act(() => {
109
+ runtime.statusStore.updateTask('build', {
110
+ id: 'build',
111
+ label: 'Build',
112
+ status: 'running',
113
+ output: 'compiling...',
114
+ });
115
+ });
116
+ const frame = lastFrame();
117
+ expect(frame).toContain('compiling...');
118
+ });
119
+
120
+ it('shows confirm prompt for confirm commands', () => {
121
+ const config = {
122
+ name: 'test',
123
+ commands: [
124
+ { id: 'deploy', label: 'Deploy', command: 'npm run deploy', confirm: true },
125
+ ],
126
+ };
127
+ const { lastFrame, stdin } = render(<App config={config} runtime={runtime as any} />);
128
+ act(() => { stdin.write('\r'); });
129
+ const frame = lastFrame();
130
+ expect(frame).toContain('⚠');
131
+ });
132
+
133
+ it('shows DCC in header', () => {
134
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
135
+ expect(lastFrame()).toContain('DCC');
136
+ });
137
+
138
+ it('shows status pane (middle panel)', () => {
139
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
140
+ expect(lastFrame()).toContain('Status');
141
+ });
142
+
143
+ it('shows output pane (right panel)', () => {
144
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
145
+ expect(lastFrame()).toContain('Output');
146
+ });
147
+
148
+ it('shows CI badge when in CI environment', () => {
149
+ runtime.ci = { isCI: true, name: 'GitHub Actions' };
150
+ const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
151
+ expect(lastFrame()).toContain('⊡ GitHub Actions');
152
+ });
153
+
154
+ it('switches pane focus on Tab', () => {
155
+ const { lastFrame, stdin } = render(<App config={baseConfig} runtime={runtime as any} />);
156
+ act(() => { stdin.write('\t'); });
157
+ const frame = lastFrame();
158
+ expect(frame).toContain('Output');
159
+ });
160
+
161
+ it('enters search mode on / key', () => {
162
+ const { lastFrame, stdin } = render(<App config={baseConfig} runtime={runtime as any} />);
163
+ act(() => { stdin.write('/'); });
164
+ expect(lastFrame()).toContain('🔍');
165
+ });
166
+
167
+ it('shows default footer hint for command without description', () => {
168
+ const config = {
169
+ name: 'test',
170
+ commands: [
171
+ { id: 'foo', label: 'Foo', command: 'echo foo' },
172
+ ],
173
+ };
174
+ const { lastFrame } = render(<App config={config} runtime={runtime as any} />);
175
+ expect(lastFrame()).toContain('Enter to run');
176
+ });
177
+ });
package/src/ui/app.tsx CHANGED
@@ -3,6 +3,7 @@ import { Box, Text, useInput, useApp, useStdout } from 'ink';
3
3
  import { Runtime } from '../core/index.js';
4
4
  import { ProkomConfig, ProkomCommand, mergeCommands } from '../config/index.js';
5
5
  import { TaskState } from '../status/types.js';
6
+ import { sendNotification } from '../core/notifier.js';
6
7
  import { CommandList, MenuGroup, MenuItem, ProfileOption } from './command-list.js';
7
8
  import { MetricsPanel } from './metrics-panel.js';
8
9
  import { Panel } from './panel.js';
@@ -99,11 +100,20 @@ export const App: React.FC<AppProps> = ({ config, runtime }) => {
99
100
  const [multiSelected, setMultiSelected] = useState<Set<string>>(new Set());
100
101
  const [helpScroll, setHelpScroll] = useState(0);
101
102
  const [activeProfile, setActiveProfile] = useState<string | undefined>(config.profile);
102
- const terminalRows = stdout?.rows ?? 24;
103
+ const [termSize, setTermSize] = useState({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
104
+ const terminalRows = termSize.rows;
103
105
  const dynamicRows = Math.max(4, terminalRows - 7);
104
106
  const menuRows = config.menuRows ?? dynamicRows;
105
107
  const outputRows = config.outputRows ?? menuRows;
106
- const terminalColumns = stdout?.columns ?? 120;
108
+ const terminalColumns = termSize.cols;
109
+
110
+ useEffect(() => {
111
+ const onResize = () => {
112
+ setTermSize({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
113
+ };
114
+ stdout?.on?.('resize', onResize);
115
+ return () => { stdout?.off?.('resize', onResize); };
116
+ }, [stdout]);
107
117
  const statusPaneWidth = 28;
108
118
 
109
119
  const activeCommands = useMemo(
@@ -144,8 +154,12 @@ export const App: React.FC<AppProps> = ({ config, runtime }) => {
144
154
 
145
155
  useEffect(() => {
146
156
  const onComplete = (id: string, exitCode: number | null) => {
157
+ const cmd = commandsRef.current.find((c) => c.id === id);
158
+ if (cmd) {
159
+ const status = exitCode === null ? 'Stopped' : exitCode === 0 ? 'Completed' : 'Failed';
160
+ sendNotification(`DCC: ${cmd.label}`, status);
161
+ }
147
162
  if (exitCode != null && exitCode > 0) {
148
- const cmd = commandsRef.current.find((c) => c.id === id);
149
163
  if (cmd?.onNonZeroExit) {
150
164
  setConfirmingCmd({
151
165
  id: `${cmd.id}:on-nonzero`,
@@ -484,52 +498,52 @@ export const App: React.FC<AppProps> = ({ config, runtime }) => {
484
498
  } else if (key.upArrow) {
485
499
  setScrollOffsets((prev) => {
486
500
  const next = new Map(prev);
487
- const entries = Array.from(tasks.values()).sort(
501
+ const entries = Array.from(tasksRef.current.values()).sort(
488
502
  (a, b) => (b.startTime || 0) - (a.startTime || 0),
489
503
  );
490
504
  const target = entries[0];
491
505
  if (target) {
492
- const current = next.get(target.id) ?? 0;
493
- next.set(target.id, current + 1);
506
+ const hiddenFromBottom = next.get(target.id) ?? 0;
507
+ next.set(target.id, hiddenFromBottom + 1);
494
508
  }
495
509
  return next;
496
510
  });
497
511
  } else if (key.downArrow) {
498
512
  setScrollOffsets((prev) => {
499
513
  const next = new Map(prev);
500
- const entries = Array.from(tasks.values()).sort(
514
+ const entries = Array.from(tasksRef.current.values()).sort(
501
515
  (a, b) => (b.startTime || 0) - (a.startTime || 0),
502
516
  );
503
517
  const target = entries[0];
504
518
  if (target) {
505
- const current = next.get(target.id) ?? 0;
506
- next.set(target.id, Math.max(0, current - 1));
519
+ const hiddenFromBottom = next.get(target.id) ?? 0;
520
+ next.set(target.id, Math.max(0, hiddenFromBottom - 1));
507
521
  }
508
522
  return next;
509
523
  });
510
524
  } else if (key.pageUp) {
511
525
  setScrollOffsets((prev) => {
512
526
  const next = new Map(prev);
513
- const entries = Array.from(tasks.values()).sort(
527
+ const entries = Array.from(tasksRef.current.values()).sort(
514
528
  (a, b) => (b.startTime || 0) - (a.startTime || 0),
515
529
  );
516
530
  const target = entries[0];
517
531
  if (target) {
518
- const current = next.get(target.id) ?? 0;
519
- next.set(target.id, current + 10);
532
+ const hiddenFromBottom = next.get(target.id) ?? 0;
533
+ next.set(target.id, hiddenFromBottom + 10);
520
534
  }
521
535
  return next;
522
536
  });
523
537
  } else if (key.pageDown) {
524
538
  setScrollOffsets((prev) => {
525
539
  const next = new Map(prev);
526
- const entries = Array.from(tasks.values()).sort(
540
+ const entries = Array.from(tasksRef.current.values()).sort(
527
541
  (a, b) => (b.startTime || 0) - (a.startTime || 0),
528
542
  );
529
543
  const target = entries[0];
530
544
  if (target) {
531
- const current = next.get(target.id) ?? 0;
532
- next.set(target.id, Math.max(0, current - 10));
545
+ const hiddenFromBottom = next.get(target.id) ?? 0;
546
+ next.set(target.id, Math.max(0, hiddenFromBottom - 10));
533
547
  }
534
548
  return next;
535
549
  });