terminalhire 0.10.3 → 0.10.4

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.
@@ -4699,9 +4699,9 @@ async function runChatPane(opts = {}) {
4699
4699
  output.write(
4700
4700
  `
4701
4701
  @${peerLogin} isn't reachable for chat yet.
4702
- They may not have opened chat (no encryption key published), or the
4703
- connection is no longer active. Once they run
4704
- terminalhire chat ${target}
4702
+ Chat is end-to-end encrypted, so they need to open chat once to
4703
+ publish their key. As soon as they run
4704
+ terminalhire chat
4705
4705
  on their side, messages will flow.
4706
4706
 
4707
4707
  `
@@ -9634,7 +9634,7 @@ function defaultIntroDeps() {
9634
9634
  try {
9635
9635
  const { readProfile: readProfile2 } = await Promise.resolve().then(() => (init_profile(), profile_exports));
9636
9636
  const profile = await readProfile2();
9637
- return { displayName: profile?.displayName, contactEmail: profile?.contactEmail };
9637
+ return { displayName: profile?.displayName };
9638
9638
  } catch {
9639
9639
  return {};
9640
9640
  }
@@ -9704,7 +9704,7 @@ async function runIntroRequest(args5, overrides) {
9704
9704
  }
9705
9705
  const profile = await deps.readProfileContact();
9706
9706
  const displayName = (args5.name ?? profile.displayName ?? requesterLogin).trim();
9707
- const explicitContact = (args5.contact ?? profile.contactEmail ?? "").trim();
9707
+ const explicitContact = (args5.contact ?? "").trim();
9708
9708
  const contact = explicitContact || `@${requesterLogin}`;
9709
9709
  const payload = buildIntroPayload({
9710
9710
  requesterLogin,
@@ -9835,8 +9835,7 @@ async function runIntroDecision(args5, overrides) {
9835
9835
  let contact = "";
9836
9836
  let shareHandle = false;
9837
9837
  if (args5.action === "accept") {
9838
- const profile = await deps.readProfileContact();
9839
- contact = (args5.contact ?? profile.contactEmail ?? "").trim();
9838
+ contact = (args5.contact ?? "").trim();
9840
9839
  shareHandle = contact.length === 0;
9841
9840
  let shareLabel = contact;
9842
9841
  if (shareHandle) {
@@ -9906,8 +9905,11 @@ async function runIntroDecision(args5, overrides) {
9906
9905
  deps.log("\n Declined \u2014 no contact was shared.\n");
9907
9906
  return;
9908
9907
  }
9909
- deps.log("\n Accepted. Your contact was shared with the requester.");
9910
- if (data.contact) deps.log(` You can reach them at: ${data.contact}`);
9908
+ const peer = data.counterpartyLogin;
9909
+ deps.log(`
9910
+ \u2713 Connected${peer ? ` with @${peer}` : ""}.`);
9911
+ if (peer) deps.log(` Message them any time: terminalhire chat @${peer}`);
9912
+ if (data.contact) deps.log(` They also shared: ${data.contact}`);
9911
9913
  deps.log("");
9912
9914
  }
9913
9915
  async function runIntroList(overrides) {
@@ -10834,9 +10836,9 @@ async function runChatPane(opts = {}) {
10834
10836
  output.write(
10835
10837
  `
10836
10838
  @${peerLogin} isn't reachable for chat yet.
10837
- They may not have opened chat (no encryption key published), or the
10838
- connection is no longer active. Once they run
10839
- terminalhire chat ${target}
10839
+ Chat is end-to-end encrypted, so they need to open chat once to
10840
+ publish their key. As soon as they run
10841
+ terminalhire chat
10840
10842
  on their side, messages will flow.
10841
10843
 
10842
10844
  `
@@ -1108,7 +1108,7 @@ function defaultIntroDeps() {
1108
1108
  try {
1109
1109
  const { readProfile: readProfile2 } = await Promise.resolve().then(() => (init_profile(), profile_exports));
1110
1110
  const profile = await readProfile2();
1111
- return { displayName: profile?.displayName, contactEmail: profile?.contactEmail };
1111
+ return { displayName: profile?.displayName };
1112
1112
  } catch {
1113
1113
  return {};
1114
1114
  }
@@ -1178,7 +1178,7 @@ async function runIntroRequest(args, overrides) {
1178
1178
  }
1179
1179
  const profile = await deps.readProfileContact();
1180
1180
  const displayName = (args.name ?? profile.displayName ?? requesterLogin).trim();
1181
- const explicitContact = (args.contact ?? profile.contactEmail ?? "").trim();
1181
+ const explicitContact = (args.contact ?? "").trim();
1182
1182
  const contact = explicitContact || `@${requesterLogin}`;
1183
1183
  const payload = buildIntroPayload({
1184
1184
  requesterLogin,
@@ -1309,8 +1309,7 @@ async function runIntroDecision(args, overrides) {
1309
1309
  let contact = "";
1310
1310
  let shareHandle = false;
1311
1311
  if (args.action === "accept") {
1312
- const profile = await deps.readProfileContact();
1313
- contact = (args.contact ?? profile.contactEmail ?? "").trim();
1312
+ contact = (args.contact ?? "").trim();
1314
1313
  shareHandle = contact.length === 0;
1315
1314
  let shareLabel = contact;
1316
1315
  if (shareHandle) {
@@ -1380,8 +1379,11 @@ async function runIntroDecision(args, overrides) {
1380
1379
  deps.log("\n Declined \u2014 no contact was shared.\n");
1381
1380
  return;
1382
1381
  }
1383
- deps.log("\n Accepted. Your contact was shared with the requester.");
1384
- if (data.contact) deps.log(` You can reach them at: ${data.contact}`);
1382
+ const peer = data.counterpartyLogin;
1383
+ deps.log(`
1384
+ \u2713 Connected${peer ? ` with @${peer}` : ""}.`);
1385
+ if (peer) deps.log(` Message them any time: terminalhire chat @${peer}`);
1386
+ if (data.contact) deps.log(` They also shared: ${data.contact}`);
1385
1387
  deps.log("");
1386
1388
  }
1387
1389
  async function runIntroList(overrides) {
package/dist/src/intro.js CHANGED
@@ -1101,7 +1101,7 @@ function defaultIntroDeps() {
1101
1101
  try {
1102
1102
  const { readProfile: readProfile2 } = await Promise.resolve().then(() => (init_profile(), profile_exports));
1103
1103
  const profile = await readProfile2();
1104
- return { displayName: profile?.displayName, contactEmail: profile?.contactEmail };
1104
+ return { displayName: profile?.displayName };
1105
1105
  } catch {
1106
1106
  return {};
1107
1107
  }
@@ -1171,7 +1171,7 @@ async function runIntroRequest(args, overrides) {
1171
1171
  }
1172
1172
  const profile = await deps.readProfileContact();
1173
1173
  const displayName = (args.name ?? profile.displayName ?? requesterLogin).trim();
1174
- const explicitContact = (args.contact ?? profile.contactEmail ?? "").trim();
1174
+ const explicitContact = (args.contact ?? "").trim();
1175
1175
  const contact = explicitContact || `@${requesterLogin}`;
1176
1176
  const payload = buildIntroPayload({
1177
1177
  requesterLogin,
@@ -1303,8 +1303,7 @@ async function runIntroDecision(args, overrides) {
1303
1303
  let contact = "";
1304
1304
  let shareHandle = false;
1305
1305
  if (args.action === "accept") {
1306
- const profile = await deps.readProfileContact();
1307
- contact = (args.contact ?? profile.contactEmail ?? "").trim();
1306
+ contact = (args.contact ?? "").trim();
1308
1307
  shareHandle = contact.length === 0;
1309
1308
  let shareLabel = contact;
1310
1309
  if (shareHandle) {
@@ -1374,8 +1373,11 @@ async function runIntroDecision(args, overrides) {
1374
1373
  deps.log("\n Declined \u2014 no contact was shared.\n");
1375
1374
  return;
1376
1375
  }
1377
- deps.log("\n Accepted. Your contact was shared with the requester.");
1378
- if (data.contact) deps.log(` You can reach them at: ${data.contact}`);
1376
+ const peer = data.counterpartyLogin;
1377
+ deps.log(`
1378
+ \u2713 Connected${peer ? ` with @${peer}` : ""}.`);
1379
+ if (peer) deps.log(` Message them any time: terminalhire chat @${peer}`);
1380
+ if (data.contact) deps.log(` They also shared: ${data.contact}`);
1379
1381
  deps.log("");
1380
1382
  }
1381
1383
  async function runIntroList(overrides) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terminalhire",
3
- "version": "0.10.3",
3
+ "version": "0.10.4",
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",