@ouro.bot/cli 0.1.0-alpha.239 → 0.1.0-alpha.240

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.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
3
3
  "versions": [
4
+ {
5
+ "version": "0.1.0-alpha.240",
6
+ "changes": [
7
+ "fix(cli): process exits immediately after chat session ends \u2014 lingering Ink timers and MCP connections were keeping the event loop alive, requiring an extra Ctrl+C after \"bye\"."
8
+ ]
9
+ },
4
10
  {
5
11
  "version": "0.1.0-alpha.239",
6
12
  "changes": [
@@ -37,9 +37,9 @@ class FriendResolver {
37
37
  if (this.params.provider === "local" && !this.params.externalId.includes("@")) {
38
38
  try {
39
39
  const all = typeof this.store.listAll === "function" ? await this.store.listAll() : [];
40
+ /* v8 ignore start -- migration path: only fires when legacy hostname-format friend exists @preserve */
40
41
  const migrationMatch = all.find((f) => f.externalIds.some((eid) => eid.provider === "local" && eid.externalId.startsWith(this.params.externalId + "@")));
41
42
  if (migrationMatch) {
42
- // Link the new external ID format to the existing friend
43
43
  const now = new Date().toISOString();
44
44
  migrationMatch.externalIds.push({
45
45
  provider: this.params.provider,
@@ -61,6 +61,7 @@ class FriendResolver {
61
61
  });
62
62
  return migrationMatch;
63
63
  }
64
+ /* v8 ignore stop */
64
65
  }
65
66
  catch {
66
67
  // fall through to create new
@@ -1024,5 +1024,11 @@ async function main(agentName, options) {
1024
1024
  finally {
1025
1025
  sessionLock?.release();
1026
1026
  }
1027
+ // Force exit: lingering handles (Ink cleanup timers, MCP connections) keep the
1028
+ // event loop alive after the interactive session ends. This is safe because all
1029
+ // session persistence has already completed in the finally block above.
1030
+ /* v8 ignore next -- process.exit not callable in vitest @preserve */
1031
+ if (!options?._testInputSource)
1032
+ process.exit(0);
1027
1033
  }
1028
1034
  // CI trigger
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouro.bot/cli",
3
- "version": "0.1.0-alpha.239",
3
+ "version": "0.1.0-alpha.240",
4
4
  "main": "dist/heart/daemon/ouro-entry.js",
5
5
  "bin": {
6
6
  "cli": "dist/heart/daemon/ouro-bot-entry.js",