@haystackeditor/cli 0.15.8 → 0.15.9

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.
@@ -1032,9 +1032,10 @@ async function stepConfirm(byRepo, token) {
1032
1032
  // waits for the user. Step 7 ensures .entire/settings.json rode along in
1033
1033
  // the same commit.
1034
1034
  bootstrapPRs.set(repoFullName, writeResult.bootstrapPR);
1035
- const note = autoMerge ? ' (opened a PR)' : ' (opened a PR for you to review and merge)';
1036
- console.log(chalk.green(` ✓ ${repoFullName}`) + chalk.dim(note));
1037
- console.log(chalk.dim(` ${writeResult.bootstrapPR.prUrl}`));
1035
+ // Don't print the GitHub PR URL: the user reviews and merges from their
1036
+ // Haystack feed, not the GitHub PR page. The feed link is the single CTA
1037
+ // in the Next steps block below.
1038
+ console.log(chalk.green(` ✓ ${repoFullName}`) + chalk.dim(' (configured)'));
1038
1039
  }
1039
1040
  catch (err) {
1040
1041
  ui.clearProgress();
@@ -1124,37 +1125,21 @@ async function runSetupFlow(options) {
1124
1125
  else {
1125
1126
  await stepInstallEntire(selectedRepos, token, bootstrapPRs);
1126
1127
  }
1127
- // Close the loop with ONE prominent "Next steps" block. The two things that
1128
- // actually matter next (merge the config PR, then open the feed) land here
1129
- // together, not dimmed and not scattered mid-run, so a human scanning the
1130
- // terminal can't miss them. In JSON mode these console writes go to stderr,
1131
- // so a driving agent instead gets the same content as `summary` in the
1132
- // `result` event to relay verbatim.
1128
+ // Close the loop with ONE prominent CTA: the Haystack feed. The Configure
1129
+ // Haystack PR (and every PR after it) is reviewed and merged from the feed,
1130
+ // NOT the GitHub PR page, so the feed is the only link we surface. In JSON
1131
+ // mode these console writes go to stderr, so a driving agent instead gets the
1132
+ // same content as `summary` in the `result` event to relay verbatim.
1133
1133
  const feedUrl = `${HAYSTACK_API}/inbox`;
1134
1134
  const prs = [...bootstrapPRs.entries()].map(([repo, pr]) => ({ repo, url: pr.prUrl }));
1135
- const prLabel = prs.length === 1
1136
- ? 'Review and merge your Configure Haystack PR:'
1137
- : 'Review and merge your Configure Haystack PRs:';
1138
1135
  // Plain-text summary an agent can print as-is (no ANSI codes).
1139
- const summaryLines = [];
1140
- if (prs.length > 0) {
1141
- summaryLines.push(prLabel);
1142
- for (const { repo, url } of prs)
1143
- summaryLines.push(` ${repo}: ${url}`);
1144
- summaryLines.push('');
1145
- }
1146
- summaryLines.push('Then open your Haystack feed (where your PRs surface for review):');
1147
- summaryLines.push(` ${feedUrl}`);
1148
- const summary = summaryLines.join('\n');
1136
+ const summary = [
1137
+ 'Open your Haystack feed to review and merge your Configure Haystack PR:',
1138
+ ` ${feedUrl}`,
1139
+ ].join('\n');
1149
1140
  // Styled version for the human at a TTY.
1150
1141
  console.log(chalk.green.bold('\n Next steps\n'));
1151
- if (prs.length > 0) {
1152
- console.log(` ${prLabel}`);
1153
- for (const { repo, url } of prs)
1154
- console.log(` ${chalk.bold(repo)} ${chalk.cyan(url)}`);
1155
- console.log('');
1156
- }
1157
- console.log(' Then open your Haystack feed (where your PRs surface for review):');
1142
+ console.log(' Open your Haystack feed to review and merge your Configure Haystack PR:');
1158
1143
  console.log(` ${chalk.cyan(feedUrl)}\n`);
1159
1144
  if (ui.interactive) {
1160
1145
  const openFeed = await ui.confirm({ id: 'open_feed', message: 'Open your Haystack feed now?', default: true });
@@ -1163,6 +1148,8 @@ async function runSetupFlow(options) {
1163
1148
  }
1164
1149
  // Final structured outcome for non-interactive/agent callers. `summary` is the
1165
1150
  // ready-to-print Next steps text so a driving agent can surface it verbatim.
1151
+ // `pullRequests` stays as structured metadata (programmatic use), but the
1152
+ // human-facing copy points only to the feed.
1166
1153
  ui.result({
1167
1154
  status: 'complete',
1168
1155
  repos: selectedRepos,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haystackeditor/cli",
3
- "version": "0.15.8",
3
+ "version": "0.15.9",
4
4
  "description": "Set up Haystack for your project — automated PR review, triage, and merge queue",
5
5
  "type": "module",
6
6
  "bin": {