terminalhire 0.10.5 → 0.10.7

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.
@@ -4786,7 +4786,7 @@ async function runChatPane(opts = {}) {
4786
4786
  signals.removeListener("exit", onExit);
4787
4787
  } catch {
4788
4788
  }
4789
- output.write(SHOW_CURSOR + "\n");
4789
+ output.write(SHOW_CURSOR + EXIT_ALT);
4790
4790
  }
4791
4791
  function finish(reason) {
4792
4792
  if (cleaned) return;
@@ -4972,7 +4972,7 @@ async function runChatPane(opts = {}) {
4972
4972
  try {
4973
4973
  if (typeof input.setRawMode === "function") input.setRawMode(true);
4974
4974
  if (typeof input.resume === "function") input.resume();
4975
- output.write(HIDE_CURSOR);
4975
+ output.write(ENTER_ALT + HIDE_CURSOR);
4976
4976
  input.on("data", onData);
4977
4977
  signals.on("SIGINT", onSignal);
4978
4978
  signals.on("SIGTERM", onTerm);
@@ -5094,14 +5094,14 @@ async function run() {
5094
5094
  process.exit(0);
5095
5095
  } catch (err) {
5096
5096
  try {
5097
- process.stdout.write(SHOW_CURSOR);
5097
+ process.stdout.write(SHOW_CURSOR + EXIT_ALT);
5098
5098
  } catch {
5099
5099
  }
5100
5100
  console.error("terminalhire chat error:", err instanceof Error ? err.message : err);
5101
5101
  process.exit(1);
5102
5102
  }
5103
5103
  }
5104
- var CHAT_BASE3, GH_SESSION_COOKIE3, HIDE_CURSOR, SHOW_CURSOR, CLEAR, KEY_CTRL_C, KEY_CTRL_S, KEY_ENTER_A, KEY_ENTER_B, KEY_BACKSPACE_A, KEY_BACKSPACE_B, MAX_INPUT_LEN, ANSI_CSI, ANSI_OSC, ANSI_OTHER, C0_C1_DEL, CHAT_DISCLOSURE, CHAT_AT_REST, CHAT_CODE_OF_CONDUCT, CHAT_MIN_AGE, DEPOSIT_CTA;
5104
+ var CHAT_BASE3, GH_SESSION_COOKIE3, HIDE_CURSOR, SHOW_CURSOR, ENTER_ALT, EXIT_ALT, CLEAR, KEY_CTRL_C, KEY_CTRL_S, KEY_ENTER_A, KEY_ENTER_B, KEY_BACKSPACE_A, KEY_BACKSPACE_B, MAX_INPUT_LEN, ANSI_CSI, ANSI_OSC, ANSI_OTHER, C0_C1_DEL, CHAT_DISCLOSURE, CHAT_AT_REST, CHAT_CODE_OF_CONDUCT, CHAT_MIN_AGE, DEPOSIT_CTA;
5105
5105
  var init_jpi_chat = __esm({
5106
5106
  "bin/jpi-chat.js"() {
5107
5107
  init_chat_client();
@@ -5111,6 +5111,8 @@ var init_jpi_chat = __esm({
5111
5111
  GH_SESSION_COOKIE3 = "__jpi_gh_session";
5112
5112
  HIDE_CURSOR = "\x1B[?25l";
5113
5113
  SHOW_CURSOR = "\x1B[?25h";
5114
+ ENTER_ALT = "\x1B[?1049h";
5115
+ EXIT_ALT = "\x1B[?1049l";
5114
5116
  CLEAR = "\x1B[2J\x1B[H";
5115
5117
  KEY_CTRL_C = "";
5116
5118
  KEY_CTRL_S = "";
@@ -10923,7 +10923,7 @@ async function runChatPane(opts = {}) {
10923
10923
  signals.removeListener("exit", onExit);
10924
10924
  } catch {
10925
10925
  }
10926
- output.write(SHOW_CURSOR + "\n");
10926
+ output.write(SHOW_CURSOR + EXIT_ALT);
10927
10927
  }
10928
10928
  function finish(reason) {
10929
10929
  if (cleaned) return;
@@ -11109,7 +11109,7 @@ async function runChatPane(opts = {}) {
11109
11109
  try {
11110
11110
  if (typeof input.setRawMode === "function") input.setRawMode(true);
11111
11111
  if (typeof input.resume === "function") input.resume();
11112
- output.write(HIDE_CURSOR);
11112
+ output.write(ENTER_ALT + HIDE_CURSOR);
11113
11113
  input.on("data", onData);
11114
11114
  signals.on("SIGINT", onSignal);
11115
11115
  signals.on("SIGTERM", onTerm);
@@ -11231,14 +11231,14 @@ async function run9() {
11231
11231
  process.exit(0);
11232
11232
  } catch (err) {
11233
11233
  try {
11234
- process.stdout.write(SHOW_CURSOR);
11234
+ process.stdout.write(SHOW_CURSOR + EXIT_ALT);
11235
11235
  } catch {
11236
11236
  }
11237
11237
  console.error("terminalhire chat error:", err instanceof Error ? err.message : err);
11238
11238
  process.exit(1);
11239
11239
  }
11240
11240
  }
11241
- var CHAT_BASE3, GH_SESSION_COOKIE5, HIDE_CURSOR, SHOW_CURSOR, CLEAR, KEY_CTRL_C, KEY_CTRL_S, KEY_ENTER_A, KEY_ENTER_B, KEY_BACKSPACE_A, KEY_BACKSPACE_B, MAX_INPUT_LEN, ANSI_CSI, ANSI_OSC, ANSI_OTHER, C0_C1_DEL, CHAT_DISCLOSURE, CHAT_AT_REST, CHAT_CODE_OF_CONDUCT, CHAT_MIN_AGE, DEPOSIT_CTA;
11241
+ var CHAT_BASE3, GH_SESSION_COOKIE5, HIDE_CURSOR, SHOW_CURSOR, ENTER_ALT, EXIT_ALT, CLEAR, KEY_CTRL_C, KEY_CTRL_S, KEY_ENTER_A, KEY_ENTER_B, KEY_BACKSPACE_A, KEY_BACKSPACE_B, MAX_INPUT_LEN, ANSI_CSI, ANSI_OSC, ANSI_OTHER, C0_C1_DEL, CHAT_DISCLOSURE, CHAT_AT_REST, CHAT_CODE_OF_CONDUCT, CHAT_MIN_AGE, DEPOSIT_CTA;
11242
11242
  var init_jpi_chat = __esm({
11243
11243
  "bin/jpi-chat.js"() {
11244
11244
  "use strict";
@@ -11249,6 +11249,8 @@ var init_jpi_chat = __esm({
11249
11249
  GH_SESSION_COOKIE5 = "__jpi_gh_session";
11250
11250
  HIDE_CURSOR = "\x1B[?25l";
11251
11251
  SHOW_CURSOR = "\x1B[?25h";
11252
+ ENTER_ALT = "\x1B[?1049h";
11253
+ EXIT_ALT = "\x1B[?1049l";
11252
11254
  CLEAR = "\x1B[2J\x1B[H";
11253
11255
  KEY_CTRL_C = "";
11254
11256
  KEY_CTRL_S = "";
package/dist/bin/jpi.js CHANGED
@@ -180,8 +180,9 @@ try {
180
180
  const unreadChatCount = getCachedUnreadChatCount();
181
181
  const haveRoles = matchCount !== null && matchCount > 0;
182
182
  if (!haveRoles && incomingCount === 0 && unreadChatCount === 0) process.exit(0);
183
+ const hasConnectionSignal = incomingCount > 0 || unreadChatCount > 0;
183
184
  const nudgeMode = getNudgeMode();
184
- if (!shouldNudge(nudgeMode, sessionId)) process.exit(0);
185
+ if (!hasConnectionSignal && !shouldNudge(nudgeMode, sessionId)) process.exit(0);
185
186
  let line;
186
187
  if (haveRoles) {
187
188
  const plural = matchCount === 1 ? "role" : "roles";
@@ -195,7 +196,7 @@ try {
195
196
  line = `\u{1F4AC} ${unreadChatCount} unread \u2014 run: terminalhire chat`;
196
197
  }
197
198
  process.stdout.write(line + "\n");
198
- if (nudgeMode === "session") {
199
+ if (haveRoles && nudgeMode === "session") {
199
200
  markNudged(sessionId);
200
201
  }
201
202
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terminalhire",
3
- "version": "0.10.5",
3
+ "version": "0.10.7",
4
4
  "description": "Local-first job matching for developers — ambient job matches in the Claude Code spinner. Matching runs on your machine; your profile never leaves it.",
5
5
  "repository": {
6
6
  "type": "git",