@haystackeditor/cli 0.28.0 → 0.28.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.
@@ -859,7 +859,7 @@ function planSettings(gitRoot, notices) {
859
859
  + `everything else is recorded only as its shape and size. A proposal records nothing: your user approves it with \`haystack telemetry `
860
860
  + `settings --approve\`, which writes ${SETTINGS_FILE}.`,
861
861
  diff: ['+ (the proposal `haystack telemetry settings --propose` writes; shown after it runs)'],
862
- run: { argv: [node, cli, 'telemetry', 'settings', '--propose'], cwd: gitRoot, touches: [] },
862
+ run: { argv: [node, cli, 'telemetry', 'settings', '--propose', '--summary'], cwd: gitRoot, touches: [] },
863
863
  }] };
864
864
  }
865
865
  /* --------------------------------------------------------------- capture */
@@ -303,5 +303,6 @@ export declare function telemetrySettingsCommand(options: {
303
303
  approve?: boolean;
304
304
  json?: boolean;
305
305
  dryRun?: boolean;
306
+ summary?: boolean;
306
307
  }): Promise<void>;
307
308
  export {};
@@ -1789,6 +1789,16 @@ export async function telemetrySettingsCommand(options) {
1789
1789
  if (!proposal.typedSource) {
1790
1790
  console.log(chalk.yellow('No typed source (TypeScript) was found: server telemetry records shapes and sizes only, no setting literals.'));
1791
1791
  }
1792
+ // --summary (what init runs): one line, not one per candidate. Dify's 648 candidates printed 648 lines into a coding agent's
1793
+ // context, which no person or agent reviews line by line; the proposal file holds them all (2026-10-07).
1794
+ if (options.summary) {
1795
+ if (proposal.typedSource) {
1796
+ console.log(`Telemetry: found ${proposal.added.length} app setting(s) it could record by value`
1797
+ + `${proposal.refused.length ? ` (${proposal.refused.length} held back as personal or secret)` : ''}. Nothing is recorded until they are approved: `
1798
+ + `review ${SETTINGS_PROPOSAL_PATH}, then run \`haystack telemetry settings --approve\`.`);
1799
+ }
1800
+ return;
1801
+ }
1792
1802
  console.log(`${options.dryRun ? 'Would propose' : 'Proposed'} ${proposal.added.length} new setting candidate(s) in ${SETTINGS_PROPOSAL_PATH}; ` +
1793
1803
  `${proposal.refused.length} refused. Nothing is approved yet.`);
1794
1804
  for (const entry of proposal.added)
package/dist/index.js CHANGED
@@ -735,6 +735,7 @@ telemetry
735
735
  .option('--approve', 'Show the reviewed proposal\'s change to .haystack/telemetry-settings.json and make it the allowlist')
736
736
  .option('--dry-run', 'Print what would be written without writing')
737
737
  .option('--json', 'Machine-readable proposal')
738
+ .option('--summary', 'With --propose: one line (how many candidates, where they are, how to approve them) instead of one per candidate')
738
739
  .addHelpText('after', `
739
740
  Server telemetry records every value as its shape and size only. A setting
740
741
  (a parameter or binding whose TypeScript type is a closed set of literals:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haystackeditor/cli",
3
- "version": "0.28.0",
3
+ "version": "0.28.1",
4
4
  "description": "haystack verify: run your app with and without a change, and see what the change broke",
5
5
  "type": "module",
6
6
  "bin": {