@vodmal/vdx-cli 0.37.0 → 0.37.1
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/package.json +1 -1
- package/src/ai.ts +12 -3
- package/src/index.ts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vodmal/vdx-cli",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.1",
|
|
4
4
|
"description": "vdx — unified lifecycle interface (up/down/build/test/check/fix) + versioned maturity audit with drift detection. Pairs with the vdx Claude Code plugin.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vdx",
|
package/src/ai.ts
CHANGED
|
@@ -1283,10 +1283,12 @@ function chooseConversation(plan: LaunchPlan, deps: AiDeps, canAsk: boolean): Co
|
|
|
1283
1283
|
const host = plan.host;
|
|
1284
1284
|
const same = sameMachine;
|
|
1285
1285
|
// A mail session's conversations are its own: a start of the person's never continues one.
|
|
1286
|
-
const
|
|
1286
|
+
const listed =
|
|
1287
1287
|
plan.resumeArgs.length === 0
|
|
1288
1288
|
? []
|
|
1289
|
-
: listConversations({ env: deps.env, home: deps.home, projectRoot: plan.projectRoot })
|
|
1289
|
+
: listConversations({ env: deps.env, home: deps.home, projectRoot: plan.projectRoot });
|
|
1290
|
+
const all = listed.filter((c) => !c.mail);
|
|
1291
|
+
const mailOnly = listed.length - all.length;
|
|
1290
1292
|
const root = shellQuote(plan.projectRoot);
|
|
1291
1293
|
// Said from where the person sits: under `vdx ai@<host>` that is not this machine.
|
|
1292
1294
|
const atSeat = same(plan.seat, host);
|
|
@@ -1320,7 +1322,14 @@ function chooseConversation(plan: LaunchPlan, deps: AiDeps, canAsk: boolean): Co
|
|
|
1320
1322
|
return { args: [], elsewhere: [...new Set(elsewhere.map(({ m }) => m))], lines: [...lines, ...agents] };
|
|
1321
1323
|
};
|
|
1322
1324
|
if (plan.resumeArgs.length === 0) return fresh(silent);
|
|
1323
|
-
if (all.length === 0)
|
|
1325
|
+
if (all.length === 0) {
|
|
1326
|
+
return fresh([
|
|
1327
|
+
mailOnly
|
|
1328
|
+
? `only the mail session's conversations here (${mailOnly}; vdx ai --conversation <id> opens one) — starting a new one`
|
|
1329
|
+
: 'no conversation of this project yet — starting a new one',
|
|
1330
|
+
...silent,
|
|
1331
|
+
]);
|
|
1332
|
+
}
|
|
1324
1333
|
|
|
1325
1334
|
const live = new Map<string, { machine: string; session: LiveSession; here: boolean }[]>();
|
|
1326
1335
|
const addLive = (machine: string, session: LiveSession, here: boolean) =>
|
package/src/index.ts
CHANGED
|
@@ -630,7 +630,8 @@ function cmdDoctor(opts: ParsedArgs): void {
|
|
|
630
630
|
const memory = root ? checkClaudeMemory({ projectRoot: root }) : null;
|
|
631
631
|
if (root && memory?.remedy) {
|
|
632
632
|
try {
|
|
633
|
-
|
|
633
|
+
// The question goes to stderr: the report on stdout may be redirected.
|
|
634
|
+
const interactive = process.stdin.isTTY === true && process.stderr.isTTY === true;
|
|
634
635
|
const done = fixDoctorMemory(root, memoryState(root, { env: process.env, home: os.homedir() }), {
|
|
635
636
|
ask: (prompt) => (interactive ? askLine(prompt) : null),
|
|
636
637
|
log: (line) => process.stderr.write(line + '\n'),
|