@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 +14 -0
- package/package.json +1 -1
- package/src/start-screen.mjs +20 -0
- package/src/telegram-command-execution.lib.mjs +10 -0
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
package/src/start-screen.mjs
CHANGED
|
@@ -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
|
|