@link-assistant/hive-mind 1.67.2 → 1.68.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @link-assistant/hive-mind
2
2
 
3
+ ## 1.68.0
4
+
5
+ ### Minor Changes
6
+
7
+ - cbc7033: Switch the test runner to folder-based discovery and deprecate `start-screen` in favour of `--isolated screen` (issue #1758).
8
+ - `scripts/run-tests.mjs` now discovers every `*.mjs` / `*.test.mjs` / `*.test.js` file under `tests/` automatically. The hard-coded `LEGACY_DEFAULT_TESTS` allow-list is gone, so new test files no longer need a runner update to be picked up.
9
+ - New markers complement the existing `@hive-mind-test-suite <name>` marker:
10
+ - `@hive-mind-integration` — skip the file in the default suite; opt in via `--suite integration` or `HIVE_MIND_RUN_INTEGRATION=1`.
11
+ - `@hive-mind-test-skip` — exclude helper / fixture modules from every suite.
12
+ - `tests/integration-guard.mjs` exposes `skipUnlessIntegration(import.meta.url)` for token- or network-heavy tests.
13
+ - `src/start-screen.mjs` and `src/telegram-command-execution.lib.mjs::executeStartScreen` print a one-shot deprecation banner to stderr (suppressible with `HIVE_MIND_SUPPRESS_DEPRECATIONS=1`) recommending `--isolated screen`, which is already the default for `hive`/`solve` invocations through the Telegram bot.
14
+ - Adds regression tests `tests/test-issue-1758-runner-discovery.mjs`, `tests/test-issue-1758-start-screen-deprecation.mjs`, and `tests/test-issue-1758-integration-guard.mjs`.
15
+ - Documents the analysis under `docs/case-studies/issue-1758/`.
16
+
3
17
  ## 1.67.2
4
18
 
5
19
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@link-assistant/hive-mind",
3
- "version": "1.67.2",
3
+ "version": "1.68.0",
4
4
  "description": "AI-powered issue solver and hive mind for collaborative problem solving",
5
5
  "main": "src/hive.mjs",
6
6
  "type": "module",
@@ -19,6 +19,24 @@ const printUsage = (log = console.error) => {
19
19
  }
20
20
  };
21
21
 
22
+ /**
23
+ * Print a single-line deprecation notice to stderr the first time it is
24
+ * called per process. Suppressed when `HIVE_MIND_SUPPRESS_DEPRECATIONS=1`.
25
+ *
26
+ * Tracked via a module-scope flag (`deprecationWarned`) so a long-running
27
+ * process emits the banner only once even if `main()` is invoked multiple
28
+ * times in tests.
29
+ *
30
+ * @see https://github.com/link-assistant/hive-mind/issues/1758
31
+ */
32
+ let deprecationWarned = false;
33
+ const printDeprecationBanner = () => {
34
+ if (deprecationWarned) return;
35
+ if (process.env.HIVE_MIND_SUPPRESS_DEPRECATIONS === '1') return;
36
+ deprecationWarned = true;
37
+ console.error('⚠️ start-screen is deprecated; prefer `--isolated screen` (the default in newer hive/solve CLIs). Set HIVE_MIND_SUPPRESS_DEPRECATIONS=1 to silence this warning.');
38
+ };
39
+
22
40
  const createStartScreenYargsConfig = yargsInstance =>
23
41
  yargsInstance
24
42
  .usage(START_SCREEN_USAGE[0])
@@ -288,6 +306,8 @@ async function createOrEnterScreen(sessionName, command, args, autoTerminate = f
288
306
  async function main() {
289
307
  const args = process.argv.slice(2);
290
308
 
309
+ printDeprecationBanner();
310
+
291
311
  if (args.includes('--help') || args.includes('-h')) {
292
312
  printUsage(console.log);
293
313
  process.exit(0);
@@ -4,6 +4,14 @@ import { exec as execCallback } from 'child_process';
4
4
 
5
5
  const exec = promisify(execCallback);
6
6
 
7
+ let deprecationWarned = false;
8
+ function warnStartScreenDeprecated() {
9
+ if (deprecationWarned) return;
10
+ if (process.env.HIVE_MIND_SUPPRESS_DEPRECATIONS === '1') return;
11
+ deprecationWarned = true;
12
+ console.warn('⚠️ executeStartScreen is deprecated; prefer the `--isolated screen` workflow exposed by hive/solve directly. Set HIVE_MIND_SUPPRESS_DEPRECATIONS=1 to silence this warning.');
13
+ }
14
+
7
15
  async function findStartScreenCommand() {
8
16
  try {
9
17
  const { stdout } = await exec('which start-screen');
@@ -68,6 +76,8 @@ function executeWithCommand(startScreenCmd, command, args, verbose = false) {
68
76
  export async function executeStartScreen(command, args, options = {}) {
69
77
  const { verbose = false } = options;
70
78
 
79
+ warnStartScreenDeprecated();
80
+
71
81
  try {
72
82
  const whichPath = await findStartScreenCommand();
73
83