repro-surgeon 0.1.0 → 0.2.0

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.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ - Run the bundled rounding demonstration directly from the installed package with `repro-surgeon demo`. It reduces the source, exports a reproduction and verifies it independently.
6
+ - Explore a public walkthrough built from actual reduction evidence, with a downloadable reproduction, checksum and offline report.
7
+ - Compare the syntax pass with treereduce on one frozen, independently authored fixture. Both preserve the failure; the documented size and timing results are deliberately scoped to that case.
8
+ - Read the tool version from package metadata so checkpoint and report identities stay correct across releases.
9
+ - Test the installed demo, immutable bundled source, standalone verifier and public demo build in CI.
10
+
3
11
  ## 0.1.0
4
12
 
5
13
  Initial public release of the complete local application-reduction workflow.
package/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  **Shrink the project. Keep the failure. Hand over something runnable.**
4
4
 
5
5
  [![CI](https://github.com/pavangupta352/repro-surgeon/actions/workflows/ci.yml/badge.svg)](https://github.com/pavangupta352/repro-surgeon/actions/workflows/ci.yml)
6
+ [![npm version](https://img.shields.io/npm/v/repro-surgeon?color=006a62)](https://www.npmjs.com/package/repro-surgeon)
6
7
  [![License: MIT](https://img.shields.io/badge/license-MIT-006a62)](LICENSE)
7
8
 
8
9
  “Can you provide a minimal reproduction?” is often the hardest part of a bug report.
@@ -11,33 +12,30 @@ Repro Surgeon takes a failing npm application, removes source that isn't needed
11
12
 
12
13
  No account. No telemetry. Source and reports stay local.
13
14
 
14
- ![An actual rounding example reduced from 10 files to 5, with three independent verification runs](docs/assets/report.png)
15
+ [![An actual rounding example reduced from 10 files to 5, with three independent verification runs](https://raw.githubusercontent.com/pavangupta352/repro-surgeon/main/docs/assets/report.png)](https://pavangupta352.github.io/repro-surgeon/)
15
16
 
16
- *Actual bundled demonstration: 3,173 → 520 source bytes, 10 → 5 files, 115 evaluations. The assertion remains pinned. This is a small seeded example, not a framework benchmark. [Method and evidence](docs/validation.md).*
17
+ *Actual bundled demonstration: 3,173 → 520 source bytes, 10 → 5 files, 115 evaluations. The assertion remains pinned. This is a small seeded example, not a framework benchmark. [Replay the run and download its verified result](https://pavangupta352.github.io/repro-surgeon/) · [Method and evidence](docs/validation.md).*
17
18
 
18
19
  ## Try it
19
20
 
20
21
  Requires **Node.js 22.18+ and npm 10+**, on Linux or macOS.
21
22
 
22
23
  ```sh
23
- git clone https://github.com/pavangupta352/repro-surgeon.git
24
- cd repro-surgeon
25
- npm ci
26
- npm run build
27
-
28
- node dist/cli.js reduce examples/rounding --out /tmp/rounding-repro
29
- node /tmp/rounding-repro/repro/.repro/verify.mjs
24
+ npx repro-surgeon@0.2.0 demo --out ./rounding-repro
25
+ node ./rounding-repro/repro/.repro/verify.mjs
30
26
  ```
31
27
 
32
- Choose a new output directory for each run. Open `/tmp/rounding-repro/report.html` to inspect the result. The verifier exits successfully when the application's **expected failure** occurs; the original application command still exits with its configured failure code.
28
+ No clone or configuration needed. The first command reduces the bundled example, generates an offline report and verifies the export three times. The second runs the exported verifier independently.
29
+
30
+ Choose a new output directory for each run. Open `./rounding-repro/report.html` to inspect the result. The verifier exits successfully when the application's **expected failure** occurs; the original application command still exits with its configured failure code. You can also [explore the recorded walkthrough in your browser](https://pavangupta352.github.io/repro-surgeon/) before installing anything.
33
31
 
34
32
  Install the packaged release for your own projects:
35
33
 
36
34
  ```sh
37
- npm install --global repro-surgeon@0.1.0
35
+ npm install --global repro-surgeon@0.2.0
38
36
  ```
39
37
 
40
- The same package is available from the [versioned GitHub release](https://github.com/pavangupta352/repro-surgeon/releases/tag/v0.1.0), with a checksum. You can also run `npx repro-surgeon@0.1.0 --help`.
38
+ The same package is available from the [versioned GitHub release](https://github.com/pavangupta352/repro-surgeon/releases/tag/v0.2.0), with a checksum. You can also run `npx repro-surgeon@0.2.0 --help`.
41
39
 
42
40
  ## Reduce your application
43
41
 
@@ -82,8 +80,8 @@ my-app-repro/
82
80
  │ ├── README.md # Runtime, command and verification instructions
83
81
  │ ├── config.json
84
82
  │ ├── LICENSE # License for the generated verifier code
85
- │ ├── manifest.json # Source and metadata integrity records
86
- │ └── verify.mjs # Runs without Repro Surgeon installed
83
+ │ ├── manifest.json # Source and metadata integrity records
84
+ │ └── verify.mjs # Runs without Repro Surgeon installed
87
85
  ├── report.html # Offline, searchable evidence
88
86
  ├── report.json # Machine-readable report
89
87
  └── … private run state # Original snapshots and raw logs; keep private
@@ -132,12 +130,15 @@ Commands execute with your host permissions. This is **not a security sandbox**.
132
130
 
133
131
  ## Run the checks
134
132
 
135
- From the repository root:
133
+ To develop from source:
136
134
 
137
135
  ```sh
136
+ git clone https://github.com/pavangupta352/repro-surgeon.git
137
+ cd repro-surgeon
138
138
  npm ci
139
139
  npm run check
140
140
  npm run test:package
141
+ node dist/cli.js demo --out /tmp/rounding-repro
141
142
  ```
142
143
 
143
144
  The native suite does not fetch framework fixture dependencies. Run these optional integrations separately; they download public pinned packages and the Next.js checks take several minutes:
@@ -154,6 +155,8 @@ Choose new output directories. The scripts check fixed and different-error contr
154
155
 
155
156
  This builds on [delta debugging](https://www.st.cs.uni-saarland.de/papers/tse2002/) and shares the goal of property-preserving reduction with [treereduce](https://github.com/langston-barrett/treereduce). [Replay](https://www.replay.io/debugging) addresses recorded execution. Repro Surgeon focuses on the path from an application source tree to an independently installable, verified reproduction. No comparative superiority is claimed.
156
157
 
158
+ A frozen single-file comparison against treereduce is [published with inputs, controls and query counts](docs/comparison.md). From the same 938-byte authored example, treereduce produced 334 bytes in 2.956 seconds and Repro Surgeon produced 248 bytes in 4.080 seconds. Both passed three fresh checks. That mixed result describes this fixture only; it is not a full-application benchmark.
159
+
157
160
  Have a failure this cannot reduce reliably? A small licensed case with a precise failure check is especially useful. Read [CONTRIBUTING.md](CONTRIBUTING.md), open an [issue](https://github.com/pavangupta352/repro-surgeon/issues), or improve a reducer with a regression test.
158
161
 
159
162
  Maintained by [Pavan](https://github.com/pavangupta352). [MIT licensed](LICENSE).
package/dist/cli.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { mkdir, readFile, writeFile } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
4
5
  import { parseArgs, stripVTControlCharacters } from 'node:util';
5
6
  import { loadConfig, parseConfig } from "./config.js";
6
7
  import { runtimeInfo, validateNpmProject } from "./dependencies.js";
@@ -13,6 +14,7 @@ import { loadCheckpoint } from "./state.js";
13
14
  const help = `Repro Surgeon · smaller source, the failure intact
14
15
 
15
16
  Usage
17
+ repro-surgeon demo [--out <run-directory>] [--json]
16
18
  repro-surgeon init [project] --match "distinctive diagnostic" -- <command> [args]
17
19
  repro-surgeon doctor [project] [--json]
18
20
  repro-surgeon reduce [project] --out <run-directory> [--config <file>]
@@ -33,6 +35,7 @@ Options
33
35
  --version, -v Show the installed version
34
36
 
35
37
  Single-package npm projects · Node 22.18+ · Linux/macOS
38
+ Demo uses the bundled rounding example and saves a timestamped run in the current directory.
36
39
  Commands execute locally with your permissions. Review remaining source before sharing.
37
40
  `;
38
41
  export function createRunReport(state, snapshot) {
@@ -50,6 +53,26 @@ export function createRunReport(state, snapshot) {
50
53
  });
51
54
  }
52
55
  function terminal(message) { process.stderr.write(stripVTControlCharacters(message) + '\n'); }
56
+ async function installedVersion() {
57
+ try {
58
+ const metadata = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8'));
59
+ if (metadata && typeof metadata === 'object' && 'version' in metadata && typeof metadata.version === 'string' && metadata.version.trim())
60
+ return metadata.version;
61
+ }
62
+ catch { /* Report the same actionable error for missing or invalid metadata. */ }
63
+ throw new Error('The installed package version could not be read. Reinstall repro-surgeon or restore its package.json.');
64
+ }
65
+ async function bundledDemo() {
66
+ const sourceRoot = fileURLToPath(new URL('../examples/rounding/', import.meta.url));
67
+ try {
68
+ const config = await loadConfig(path.join(sourceRoot, 'repro-surgeon.json'));
69
+ await Promise.all(['package.json', 'package-lock.json', 'check.mjs', 'src/totals.mjs', 'fixtures/invoice.json'].map(name => readFile(path.join(sourceRoot, name))));
70
+ return { sourceRoot, config };
71
+ }
72
+ catch {
73
+ throw new Error('The bundled rounding demo could not be loaded. Reinstall repro-surgeon or restore examples/rounding in a complete source checkout.');
74
+ }
75
+ }
53
76
  async function main(args) {
54
77
  const separator = args.indexOf('--');
55
78
  const invocation = separator < 0 ? [] : args.slice(separator + 1);
@@ -63,10 +86,13 @@ async function main(args) {
63
86
  return 0;
64
87
  }
65
88
  if (values.version) {
66
- process.stdout.write('0.1.0\n');
89
+ process.stdout.write(await installedVersion() + '\n');
67
90
  return 0;
68
91
  }
69
92
  const [command, target, ...extra] = positionals;
93
+ if (command === 'demo' && (target !== undefined || values.config !== undefined || values.match !== undefined || values.forbid !== undefined || values.exit !== undefined)) {
94
+ throw new Error('demo uses the bundled project and failure configuration. Use reduce for your own project or configuration; demo accepts --out, --json, --max-evaluations and --max-seconds.');
95
+ }
70
96
  if (extra.length)
71
97
  throw new Error('Too many positional arguments. See --help.');
72
98
  if (process.platform === 'win32')
@@ -121,21 +147,21 @@ async function main(args) {
121
147
  print(report, `Report: ${path.join(directory, 'report.html')}`);
122
148
  return 0;
123
149
  }
124
- if (command !== 'reduce' && command !== 'resume')
150
+ if (command !== 'reduce' && command !== 'resume' && command !== 'demo')
125
151
  throw new Error(`Unknown command: ${command ?? '(none)'}. See --help.`);
126
152
  if (command === 'resume' && !target)
127
153
  throw new Error('resume requires a run directory.');
128
154
  const onEvent = (event) => terminal(event.message);
129
155
  let result;
130
156
  let runRoot;
131
- if (command === 'reduce') {
132
- const config = await loadConfig(path.resolve(values.config ?? path.join(directory, 'repro-surgeon.json')));
157
+ if (command === 'reduce' || command === 'demo') {
158
+ const { sourceRoot, config } = command === 'demo' ? await bundledDemo() : { sourceRoot: directory, config: await loadConfig(path.resolve(values.config ?? path.join(directory, 'repro-surgeon.json'))) };
133
159
  if (values['max-evaluations'] !== undefined)
134
160
  config.budget.maxEvaluations = Number(values['max-evaluations']);
135
161
  if (values['max-seconds'] !== undefined)
136
162
  config.budget.maxSeconds = Number(values['max-seconds']);
137
- runRoot = path.resolve(values.out ?? path.join(path.dirname(directory), `${path.basename(directory)}-repro-${Date.now()}`));
138
- result = await reduceProject({ sourceRoot: directory, runRoot, config, signal: controller.signal, onEvent });
163
+ runRoot = path.resolve(values.out ?? (command === 'demo' ? path.join(process.cwd(), `repro-surgeon-demo-${Date.now()}`) : path.join(path.dirname(directory), `${path.basename(directory)}-repro-${Date.now()}`)));
164
+ result = await reduceProject({ sourceRoot, runRoot, config, signal: controller.signal, onEvent });
139
165
  }
140
166
  else {
141
167
  runRoot = directory;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBZ,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAe,EAAE,QAAkB;IACjE,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC7E,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;QAClD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;QAC1G,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1G,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC/I,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACrI,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QAClD,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAE5G,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;YAChJ,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1G,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/G,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9H,EAAE,CAAC,CAAC;IACL,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,KAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/I,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACvN,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC9F,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnN,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,WAAW,WAAW,wDAAwD,CAAC,CAAC;QAC/G,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,UAAU,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAClI,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,MAAuD,CAAC;QAC5D,IAAI,CAAC;YAAC,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC7G,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,MAAM,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;YACrF,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5D,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxN,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,OAAO,CAAC,KAAK,YAAY,OAAO,CAAC,OAAO,CAAC,YAAY,yEAAyE,OAAO,CAAC,QAAQ,CAAC,MAAM,8CAA8C,CAAC,CAAC;QACjQ,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACxF,KAAK,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChD,MAAM,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,IAAI,QAAQ,eAAe,CAAC,CAAC;QAC1H,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,CAAC,KAA0B,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC;QACX,IAAI,OAAe,CAAC;QACpB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAC3G,IAAI,MAAM,CAAC,iBAAiB,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC9G,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAClG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5H,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/G,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,SAAS,CAAC;YACpB,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1R,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACxC,QAAQ,CAAC,oEAAoE,CAAC,CAAC;YAC/E,MAAM,CAAC,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACjH,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,KAAK,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,YAAY,CAAC,MAAM,mBAAmB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,+CAA+C,CAAC,CAAC;QAClP,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACnG,MAAM,OAAO,GAAI,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,wEAAwE,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvM,QAAQ,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -232,6 +232,7 @@ export async function runtimeInfo(cwd, signal) {
232
232
  const npm = result.stdout.trim();
233
233
  if (Number(npm.split('.')[0]) < 10)
234
234
  throw new Error('npm 10 or newer is required.');
235
- return { node: process.version, npm, platform: process.platform, arch: process.arch, tool: '0.1.0' };
235
+ const { version } = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8'));
236
+ return { node: process.version, npm, platform: process.platform, arch: process.arch, tool: version };
236
237
  }
237
238
  //# sourceMappingURL=dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ # Single-file reducer comparison
2
+
3
+ On one independently authored JavaScript fixture, Repro Surgeon produced a smaller result and treereduce finished faster. Both outputs preserved the same precisely checked behavior in three fresh directories. This is a reproducible, narrow comparison, not evidence that either tool is generally better.
4
+
5
+ ## Observed result
6
+
7
+ Measured once per tool on September 6, 2026, with treereduce first. The original editable file was **938 bytes**. Both tools stopped without reaching the 120-second ceiling.
8
+
9
+ | Tool | Result bytes | Bytes removed | Oracle calls during search | Distinct source hashes checked | Observed search time | Fresh checks |
10
+ | --- | ---: | ---: | ---: | ---: | ---: | --- |
11
+ | treereduce-javascript 0.4.1 | 334 | 64.39% | 120 | 82 | 2.956 s | 3/3 |
12
+ | Repro Surgeon 0.2.0, syntax only | 248 | 73.56% | 95 | 78 | 4.080 s | 3/3 |
13
+
14
+ The common fresh checks took a further 0.701 seconds for treereduce's output and 0.530 seconds for Repro Surgeon's output. Search times exclude those checks and tool installation. They include each tool's native setup and checking overhead; they are single observations, not timing averages. The machine was an Apple M4 with 10 logical CPUs, macOS Darwin 25.5.0, Node 24.7.0, and npm 11.5.1. Other development work was not isolated from this machine, so small timing differences should not be treated as stable performance rankings.
15
+
16
+ [Machine-readable evidence](evidence/comparison.json) contains exact elapsed times, output text and SHA-256 hashes, tool/runtime versions, controls, and fresh-check observations. The [frozen protocol](../examples/comparison/freeze.json) records the fixture, driver, and built reducer module hashes before either search began. The measured Repro Surgeon build was the 0.2.0 workspace build identified by those hashes.
17
+
18
+ ## Fixture and oracle
19
+
20
+ The [owned fixture](../examples/comparison/subject.cjs) contains score-reporting helpers and a sorting mistake: `Array.sort()` without a numeric comparator. It was authored for this experiment; it is not a reconstructed public bug or an independently submitted maintainer case. No third-party fixture source was copied.
21
+
22
+ The immutable [checker](../examples/comparison/check.cjs) invokes the exported sorting function on `[2, 10, 3]`, `[4, 12, 11]`, and `[]`. It emits exit code 1 and a distinctive diagnostic only when the serialized results are exactly `[[10,2,3],[11,12,4],[]]`. Other outputs exit 0; parse errors, timeouts inside the VM, and other exceptions exit 2. Candidate execution in the checker has a 500-millisecond VM limit, and each external check has a two-second process limit. This VM is a convenience for the authored fixture, not a security sandbox.
23
+
24
+ Before search, the driver checked four controls. The original reproduced the target. Adding the numeric comparator, throwing a different error, and introducing a syntax error all failed to reproduce it. Thus an arbitrary crash is not a successful reduction.
25
+
26
+ Repro Surgeon requires exit 1 plus the full distinctive diagnostic and rejects the two other checker diagnostics. treereduce is configured with `--interesting-exit-code 1`. These predicates are equivalent for this fixed checker: only the exact target branch emits exit 1. The checker is outside treereduce's editable file and explicitly preserved in Repro Surgeon's snapshot.
27
+
28
+ ## Comparable scope and remaining differences
29
+
30
+ Both tools may change **only `subject.cjs`**. The checker, package metadata, lockfile, and configuration are fixed. Repro Surgeon's file, JSON, and dependency passes are disabled; only its syntax pass is enabled. treereduce uses its native JavaScript syntax-tree reductions. Both tools run serially with a 120-second outer ceiling, and both are allowed to continue until their enabled search finds no further reduction. treereduce uses `--stable --min-reduction 1`; Repro Surgeon's evaluation ceiling is 1,000,000, high enough that time is the effective budget. Neither ceiling was reached here.
31
+
32
+ The transformation sets and native repetition policies differ. Repro Surgeon made three baseline checks and requires two checks for each accepted candidate. Its 95 checker calls comprise three baseline calls and 92 candidate evaluations, with 15 accepted transformations. treereduce made 120 checker calls across its native search. These counts include repeated checks; the separate distinct-hash column exposes that difference. They exclude the shared preliminary controls and the three final checks per tool.
33
+
34
+ After search, the driver copied each result, unchanged checker, and zero-dependency npm metadata into three new OS-temporary directories. Every directory received its own `npm ci --ignore-scripts --no-audit --no-fund`, followed by the exact same checker and Repro Surgeon oracle evaluation. All six final checks reproduced the target. There were no dependency downloads for this fixture. The usual Repro Surgeon export/report stage is outside this comparison; this measures the syntax reducer under a fixed single-file task.
35
+
36
+ Repro Surgeon's result retains the normalizing and sorting functions and exports only `sortScores`. treereduce's result additionally retains empty reporting functions and their exports. Both results contain removable whitespace. Neither result is claimed to be globally minimal.
37
+
38
+ ## Reproduce
39
+
40
+ Use a repository checkout containing this protocol, with supported Node/npm and Rust/Cargo installed. The [official treereduce installation documentation](https://langston-barrett.github.io/treereduce/install.html) supports installing its language-specific crate. This experiment pinned the released [treereduce-javascript 0.4.1 crate](https://crates.io/crates/treereduce-javascript/0.4.1) with locked dependencies; its origin is the [treereduce repository](https://github.com/langston-barrett/treereduce). The crate SHA-256 is recorded in the protocol. Consult the [official usage documentation](https://langston-barrett.github.io/treereduce/usage.html) for its command-line options.
41
+
42
+ ```sh
43
+ npm ci
44
+ npm run build
45
+ cargo install treereduce-javascript --version 0.4.1 --locked
46
+ node scripts/compare-reducers.mjs --out /tmp/repro-comparison-new
47
+ ```
48
+
49
+ The output directory must not already exist. If the binary is not on `PATH`, add `--treereduce /absolute/path/to/treereduce-javascript`. The driver verifies the frozen hashes before and after measurement; a different implementation requires a separately identified experiment rather than overwriting this evidence. Generated logs and candidate state remain in the requested output directory. Tool installation and build time are not part of the search measurement.
50
+
51
+ The fixture, oracle, order, parameters, and implementation hashes were frozen at 13:03:01.862 UTC; both searches and verification finished at 13:03:10.626 UTC. There was one measured run per tool, no fixture or parameter tuning after seeing the results, and no selected best-of-many timing.
52
+
53
+ ## What this does not establish
54
+
55
+ One seeded file cannot establish typical reduction quality, performance across machines, handling of real application dependencies, success on Next.js failures, maintainer adoption, or superiority over reducers generally. This comparison does not evaluate another tool's whole-application capabilities. A broader claim needs a preregistered corpus of independent failures, repeated measurements, and the appropriate task-specific configuration for each tool.
@@ -0,0 +1,208 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "measuredAt": "2026-09-06T13:03:10.626Z",
4
+ "protocol": {
5
+ "schemaVersion": 1,
6
+ "frozenAt": "2026-09-06T13:03:01.862Z",
7
+ "fixture": "Independently authored seeded CommonJS numeric-sort example; not a third-party bug",
8
+ "editableFiles": [
9
+ "subject.cjs"
10
+ ],
11
+ "oracle": "Immutable checker exits 1 only when the three observed results exactly equal [[10,2,3],[11,12,4],[]]; other results exit 0, invalid programs and other failures exit 2",
12
+ "searchSeconds": 120,
13
+ "perOracleTimeoutSeconds": 2,
14
+ "finalRuns": 3,
15
+ "jobs": 1,
16
+ "order": [
17
+ "treereduce-javascript",
18
+ "Repro Surgeon"
19
+ ],
20
+ "reproSurgeonVersion": "0.2.0",
21
+ "treereduceVersion": "0.4.1",
22
+ "treereduceOrigin": "https://github.com/langston-barrett/treereduce",
23
+ "treereduceRegistry": "https://crates.io/crates/treereduce-javascript/0.4.1",
24
+ "treereduceCrateSha256": "6b0dadb6a9467ee639d1b5109e4a175e885180f89977487fe199b8d7171a330d",
25
+ "treereduceInstall": "cargo install treereduce-javascript --version 0.4.1 --locked",
26
+ "treereduceSettings": {
27
+ "stable": true,
28
+ "minReduction": 1,
29
+ "onParseError": "error",
30
+ "interestingExitCode": 1
31
+ },
32
+ "reproSurgeonSettings": {
33
+ "files": false,
34
+ "syntax": true,
35
+ "json": false,
36
+ "dependencies": false,
37
+ "maxEvaluations": 1000000,
38
+ "baselineRuns": 3,
39
+ "candidateRuns": 2
40
+ },
41
+ "measurement": "One measured run per tool; native oracle calls including repeated checks; fresh terminal checks timed separately. No normal export stage. Only editable source bytes count toward size.",
42
+ "sha256": {
43
+ "scripts/compare-reducers.mjs": "3df37ff7c5ec17c080d2d30bd30b96b5a0c0f006ec1a51832cc9db188edef861",
44
+ "examples/comparison/subject.cjs": "dc27a2d5a19b5587ec506afebff965e7d430e49198e3d239c2b626a381d23c97",
45
+ "examples/comparison/check.cjs": "41f8e145568095753bdc9674f827dfaa82eeedf8c41731fb81a07c89c0bdc86e",
46
+ "examples/comparison/package.json": "7d10cf0b8bce7e51c3c75b348a825d41d93d22173b3219511da6ee58dd365780",
47
+ "examples/comparison/package-lock.json": "c643d3e47ed45ed3624eb37e1d32050eb0cbab3959c5f79a9dded25f74ffd318",
48
+ "examples/comparison/repro-surgeon.json": "51de08aed02bccf72acd31e2ec43df0c9d1452cbcdf84d1315a21781ddf2a5de",
49
+ "examples/comparison/README.md": "491b597b69e41baa2997efab34f7aa08359f9ed0310e0a2719e0833fb3dfa576",
50
+ "dist/config.js": "d3ac57c01e2846460d8414fa2ccf1f61484a94c810560380ce7ca5b95ee27058",
51
+ "dist/dependencies.js": "be5fd585720fe44ae7a3ddd20ff7254467e6123eafe80d46191a62b7a6a32147",
52
+ "dist/engine.js": "fc7f18c51446bb41ac87856f26bae7033e370d9f822fb8f4676d0a153a110c4e",
53
+ "dist/graph.js": "2dc1f20950c30a7f52eb52e0e18f2ceaf34e416d943411c4762cd8c3051cad3d",
54
+ "dist/oracle.js": "a6cd95ce095e9eac6a181fed0143843399ad5bbaf1db188b43c7506bfd5636d8",
55
+ "dist/protection.js": "6b1ab323f0416761f52857a4ac4f0b08b53510d5cc2dc97784aaf80cd5447113",
56
+ "dist/runner.js": "d4ad42e31ce0d3ff77ae6afeeb9841b3e629fa10ed305875af752d26e72343f3",
57
+ "dist/snapshot.js": "9194a5b9e627b0c615b1e7193b085970e81e90dc034527dd1d937cb6f5c1400d",
58
+ "dist/state.js": "e41f07fb3915cb80580728ef613580b1ddf8a1db93163fc606d51408baa89964",
59
+ "dist/transforms.js": "db1e44e20399b1d709601eac0bf7036dfbc916dc8c7442c01a5d5ed6e8a423b2",
60
+ "dist/types.js": "01ae2a5b120382f9a648ced7ee8507493a134f216d100fc61600c6c9738235d2"
61
+ }
62
+ },
63
+ "runtime": {
64
+ "node": "v24.7.0",
65
+ "npm": "11.5.1",
66
+ "platform": "darwin",
67
+ "arch": "arm64",
68
+ "osRelease": "25.5.0",
69
+ "cpuModel": "Apple M4",
70
+ "logicalCpus": 10
71
+ },
72
+ "implementationHashes": {
73
+ "engine": "fc7f18c51446bb41ac87856f26bae7033e370d9f822fb8f4676d0a153a110c4e",
74
+ "transforms": "db1e44e20399b1d709601eac0bf7036dfbc916dc8c7442c01a5d5ed6e8a423b2",
75
+ "runner": "d4ad42e31ce0d3ff77ae6afeeb9841b3e629fa10ed305875af752d26e72343f3",
76
+ "oracle": "a6cd95ce095e9eac6a181fed0143843399ad5bbaf1db188b43c7506bfd5636d8",
77
+ "dependencies": "be5fd585720fe44ae7a3ddd20ff7254467e6123eafe80d46191a62b7a6a32147",
78
+ "snapshot": "9194a5b9e627b0c615b1e7193b085970e81e90dc034527dd1d937cb6f5c1400d"
79
+ },
80
+ "originalBytes": 938,
81
+ "controls": [
82
+ {
83
+ "label": "original",
84
+ "exitCode": 1,
85
+ "oracle": "reproduced",
86
+ "timedOut": false,
87
+ "aborted": false,
88
+ "diagnostics": [
89
+ "COMPARISON_NUMERIC_SORT: observed [[10,2,3],[11,12,4],[]]"
90
+ ]
91
+ },
92
+ {
93
+ "label": "fixed-numeric-comparator",
94
+ "exitCode": 0,
95
+ "oracle": "absent",
96
+ "timedOut": false,
97
+ "aborted": false,
98
+ "diagnostics": [
99
+ "COMPARISON_TARGET_ABSENT"
100
+ ]
101
+ },
102
+ {
103
+ "label": "different-failure",
104
+ "exitCode": 2,
105
+ "oracle": "absent",
106
+ "timedOut": false,
107
+ "aborted": false,
108
+ "diagnostics": [
109
+ "COMPARISON_OTHER_FAILURE"
110
+ ]
111
+ },
112
+ {
113
+ "label": "syntax-error",
114
+ "exitCode": 2,
115
+ "oracle": "absent",
116
+ "timedOut": false,
117
+ "aborted": false,
118
+ "diagnostics": [
119
+ "COMPARISON_OTHER_FAILURE"
120
+ ]
121
+ }
122
+ ],
123
+ "results": [
124
+ {
125
+ "tool": "treereduce-javascript",
126
+ "version": "0.4.1",
127
+ "searchMs": 2955.568625,
128
+ "processExitCode": 0,
129
+ "budgetExpired": false,
130
+ "usedOriginalAfterDeadline": false,
131
+ "stop": "stable search completed",
132
+ "queries": {
133
+ "calls": 120,
134
+ "uniqueSubjectHashes": 82,
135
+ "target": 10,
136
+ "absent": 12,
137
+ "other": 98
138
+ },
139
+ "reducedBytes": 334,
140
+ "sha256": "3707b7f25cd1e2029561baccfe8bfabfd543b48390227e76da71df3ecc290326",
141
+ "reducedSource": "\n\n\n\n\n\nfunction normalizeScores(scores) {\n return scores.map(Number).filter(Number.isFinite);\n}\n\nfunction sortScores(scores) {\n const numeric = normalizeScores(scores);\n return numeric.sort();\n}\n\nfunction scoreSummary() {\n \n \n \n}\n\nfunction formatReport() {\n \n \n}\n\nmodule.exports = { sortScores, scoreSummary, formatReport, };\n",
142
+ "finalVerification": {
143
+ "runs": [
144
+ {
145
+ "exitCode": 1,
146
+ "oracle": "reproduced"
147
+ },
148
+ {
149
+ "exitCode": 1,
150
+ "oracle": "reproduced"
151
+ },
152
+ {
153
+ "exitCode": 1,
154
+ "oracle": "reproduced"
155
+ }
156
+ ],
157
+ "elapsedMs": 700.5920830000005,
158
+ "freshInstallationPerRun": true
159
+ }
160
+ },
161
+ {
162
+ "tool": "Repro Surgeon",
163
+ "version": "0.2.0",
164
+ "searchMs": 4079.862,
165
+ "engineRecordedMs": 3966.120166999999,
166
+ "budgetExpired": false,
167
+ "stop": "No further reduction found by the enabled passes",
168
+ "candidateEvaluations": 92,
169
+ "baselineCalls": 3,
170
+ "acceptedTrials": 15,
171
+ "queries": {
172
+ "calls": 95,
173
+ "uniqueSubjectHashes": 78,
174
+ "target": 33,
175
+ "absent": 11,
176
+ "other": 51
177
+ },
178
+ "reducedBytes": 248,
179
+ "sha256": "972dae1de94c1da33be0dbc8657926556c2d649df6cc4af673afacc0379275cc",
180
+ "reducedSource": "'use strict';\n\n\n\n\n\nfunction normalizeScores(scores) {\n return scores.map(Number).filter(Number.isFinite);\n}\n\nfunction sortScores(scores) {\n const numeric = normalizeScores(scores);\n return numeric.sort();\n}\n\n\n\n\n\nmodule.exports = { sortScores };\n",
181
+ "finalVerification": {
182
+ "runs": [
183
+ {
184
+ "exitCode": 1,
185
+ "oracle": "reproduced"
186
+ },
187
+ {
188
+ "exitCode": 1,
189
+ "oracle": "reproduced"
190
+ },
191
+ {
192
+ "exitCode": 1,
193
+ "oracle": "reproduced"
194
+ }
195
+ ],
196
+ "elapsedMs": 529.5023339999989,
197
+ "freshInstallationPerRun": true
198
+ }
199
+ }
200
+ ],
201
+ "limitations": [
202
+ "One seeded, independently authored single-file fixture; one measured run per tool, treereduce first.",
203
+ "Same editable subject and precise property, different native transformation sets and repeated-check policies.",
204
+ "Repro Surgeon includes three baseline runs and two confirmations per accepted candidate; treereduce uses its native checks. Query counts include all native checks during search.",
205
+ "Search times are end-to-end observed tool calls under equal 120-second ceilings. Separate common fresh checks are reported separately; normal Repro Surgeon export generation is not timed.",
206
+ "No whole-application, typical-case, independent-maintainer, or general superiority claim."
207
+ ]
208
+ }
@@ -0,0 +1,18 @@
1
+ # Public walkthrough
2
+
3
+ The [public walkthrough](https://pavangupta352.github.io/repro-surgeon/) is generated from the installed CLI's bundled rounding example. Its replay is a condensed sequence of recorded accepted changes, not a browser execution or a simulated reduction. The full report preserves rejected and invalid trials.
4
+
5
+ Build it from a repository checkout:
6
+
7
+ ```sh
8
+ npm ci
9
+ npm run build:site
10
+ ```
11
+
12
+ This runs `demo` in a temporary directory, requires three successful fresh export checks, and writes `site/dist/`. Serve that directory with any static HTTP server. No account, external fonts, analytics or browser source upload is involved.
13
+
14
+ The build copies an allowlisted evidence record, the sanitized HTML/JSON reports, and the verified reproduction. The downloadable archive excludes macOS metadata and includes its own verifier, license and integrity manifest. `SHA256SUMS` identifies the exact downloadable bytes. Private snapshots and raw logs are not published. Because recording timestamps vary, rebuilding produces a new archive and checksum.
15
+
16
+ GitHub Actions builds and deploys the site to GitHub Pages when a release is published, or when the Public demo workflow is run manually. The workflow uses Node 22.18 and pinned action revisions. The CI matrix also builds the site once on Linux before a release.
17
+
18
+ The page uses the same paper, ink and signal colors as the offline report. Stage controls, replay and copy actions support keyboard input; reduced-motion preferences disable smooth scrolling. Without a recording, the source download and report links remain available. With JavaScript disabled, the page explains that the walkthrough cannot play.
@@ -4,10 +4,12 @@ These are executed checks of a specific release and environment, not promises of
4
4
 
5
5
  ## Automated and packaged checks
6
6
 
7
- The native suite covers configuration, actual child processes, failure discrimination, bounded output, descendant cleanup, cancellation, source inventory, ignore precedence, dependency isolation, lock integrity, structural reductions, checkpoint corruption, resume, export ownership, standalone verification, and report escaping/privacy/evidence. The release candidate passed **107 tests**, type checking and the JavaScript build on macOS ARM64 with Node **24.7.0**, npm **11.5.1**.
7
+ The native suite covers configuration, actual child processes, failure discrimination, bounded output, descendant cleanup, cancellation, source inventory, ignore precedence, dependency isolation, lock integrity, structural reductions, checkpoint corruption, resume, export ownership, standalone verification, and report escaping/privacy/evidence. The **0.1.0** release candidate passed **107 tests**, type checking and the JavaScript build on macOS ARM64 with Node **24.7.0**, npm **11.5.1**.
8
8
 
9
9
  The same 107-test suite, build and packaged-install workflow passed in a Linux ARM64 container with Node **22.18.0**. The container used the official `node:22.18.0-bookworm-slim` image, digest `sha256:752ea8a2f758c34002a0461bd9f1cee4f9a3c36d48494586f60ffce1fc708e0e`, with an init process for child reaping. GitHub CI additionally checks Ubuntu/macOS on Node 22.18 and 24; use the linked [workflow history](https://github.com/pavangupta352/repro-surgeon/actions/workflows/ci.yml) for the exact commit's outcome.
10
10
 
11
+ The **0.2.0** update passed **112 tests**, type checking and the build on the same macOS runtime. Its installed-package smoke runs the new `demo` command, checks that bundled source remains byte-identical, removes the installed tool and verifies the exported reproduction. The [public walkthrough build](public-demo.md) also runs a real demo and requires three fresh export checks. Its downloadable archive was extracted outside the checkout and independently verified; macOS metadata is stripped for portable extraction. The earlier framework records below retain their original versions and timestamps. A separate [frozen comparison with treereduce](comparison.md) records the new version's single-file experiment.
12
+
11
13
  `npm run test:package` builds a tarball, installs it in a fresh prefix, invokes the installed executable, reduces the installed rounding example, checks that the original source is unchanged, and runs the generated verifier without installing Repro Surgeon in the exported project. It also checks that private build records are absent from the package.
12
14
 
13
15
  ## Seeded example and file-only comparison
@@ -0,0 +1,9 @@
1
+ # Owned single-file comparison fixture
2
+
3
+ This is an independently authored, seeded JavaScript example for a narrow reducer comparison. It is not a public bug report, a Next.js benchmark, or evidence of typical maintainer work.
4
+
5
+ The score-sorting function mistakenly uses JavaScript's default lexicographic sort. The fixed checker requires exact outputs on two numeric inputs and an empty input. It emits exit 1 and a distinctive diagnostic only for that configured behavior; different outputs exit 0 and invalid programs or other failures exit 2. The checker executes authored candidates in a bounded Node VM; this is a test convenience, not a security sandbox.
6
+
7
+ Only `subject.cjs` is editable. Package metadata, the checker, and the experiment protocol are held fixed for both tools. Repro Surgeon's file, JSON, and dependency passes are disabled. treereduce uses its JavaScript tree transformations. The transformation sets are not identical; they share the same editable input and observable property.
8
+
9
+ `freeze.json` records the input/checker/config hashes and parameters before measurement. See [the comparison method](../../docs/comparison.md) and run `node scripts/compare-reducers.mjs --help` from the repository root for the experiment entry point. Do not edit the frozen fixture to improve either tool's result.
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ const { readFileSync, appendFileSync } = require('node:fs');
4
+ const { resolve } = require('node:path');
5
+ const { createHash } = require('node:crypto');
6
+ const vm = require('node:vm');
7
+
8
+ const target = 'COMPARISON_NUMERIC_SORT: observed [[10,2,3],[11,12,4],[]]';
9
+ let status = 'other';
10
+ let exitCode = 2;
11
+ let sourceHash = '';
12
+ try {
13
+ const source = readFileSync(resolve(process.argv[2] || 'subject.cjs'), 'utf8');
14
+ sourceHash = createHash('sha256').update(source).digest('hex');
15
+ const context = vm.createContext({ module: { exports: {} } });
16
+ const program = new vm.Script(source + `
17
+ ;globalThis.__comparisonResult = JSON.stringify([
18
+ module.exports.sortScores([2, 10, 3]),
19
+ module.exports.sortScores([4, 12, 11]),
20
+ module.exports.sortScores([]),
21
+ ]);`, { filename: 'subject.cjs' });
22
+ program.runInContext(context, { timeout: 500 });
23
+ if (context.__comparisonResult === '[[10,2,3],[11,12,4],[]]') {
24
+ status = 'target';
25
+ exitCode = 1;
26
+ process.stderr.write(target + '\n');
27
+ } else {
28
+ status = 'absent';
29
+ exitCode = 0;
30
+ process.stderr.write('COMPARISON_TARGET_ABSENT\n');
31
+ }
32
+ } catch {
33
+ process.stderr.write('COMPARISON_OTHER_FAILURE\n');
34
+ }
35
+
36
+ if (process.env.COMPARISON_LOG) {
37
+ appendFileSync(process.env.COMPARISON_LOG, JSON.stringify({ sourceHash, status, exitCode }) + '\n');
38
+ }
39
+ process.exitCode = exitCode;
@@ -0,0 +1,59 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "frozenAt": "2026-09-06T13:03:01.862Z",
4
+ "fixture": "Independently authored seeded CommonJS numeric-sort example; not a third-party bug",
5
+ "editableFiles": [
6
+ "subject.cjs"
7
+ ],
8
+ "oracle": "Immutable checker exits 1 only when the three observed results exactly equal [[10,2,3],[11,12,4],[]]; other results exit 0, invalid programs and other failures exit 2",
9
+ "searchSeconds": 120,
10
+ "perOracleTimeoutSeconds": 2,
11
+ "finalRuns": 3,
12
+ "jobs": 1,
13
+ "order": [
14
+ "treereduce-javascript",
15
+ "Repro Surgeon"
16
+ ],
17
+ "reproSurgeonVersion": "0.2.0",
18
+ "treereduceVersion": "0.4.1",
19
+ "treereduceOrigin": "https://github.com/langston-barrett/treereduce",
20
+ "treereduceRegistry": "https://crates.io/crates/treereduce-javascript/0.4.1",
21
+ "treereduceCrateSha256": "6b0dadb6a9467ee639d1b5109e4a175e885180f89977487fe199b8d7171a330d",
22
+ "treereduceInstall": "cargo install treereduce-javascript --version 0.4.1 --locked",
23
+ "treereduceSettings": {
24
+ "stable": true,
25
+ "minReduction": 1,
26
+ "onParseError": "error",
27
+ "interestingExitCode": 1
28
+ },
29
+ "reproSurgeonSettings": {
30
+ "files": false,
31
+ "syntax": true,
32
+ "json": false,
33
+ "dependencies": false,
34
+ "maxEvaluations": 1000000,
35
+ "baselineRuns": 3,
36
+ "candidateRuns": 2
37
+ },
38
+ "measurement": "One measured run per tool; native oracle calls including repeated checks; fresh terminal checks timed separately. No normal export stage. Only editable source bytes count toward size.",
39
+ "sha256": {
40
+ "scripts/compare-reducers.mjs": "3df37ff7c5ec17c080d2d30bd30b96b5a0c0f006ec1a51832cc9db188edef861",
41
+ "examples/comparison/subject.cjs": "dc27a2d5a19b5587ec506afebff965e7d430e49198e3d239c2b626a381d23c97",
42
+ "examples/comparison/check.cjs": "41f8e145568095753bdc9674f827dfaa82eeedf8c41731fb81a07c89c0bdc86e",
43
+ "examples/comparison/package.json": "7d10cf0b8bce7e51c3c75b348a825d41d93d22173b3219511da6ee58dd365780",
44
+ "examples/comparison/package-lock.json": "c643d3e47ed45ed3624eb37e1d32050eb0cbab3959c5f79a9dded25f74ffd318",
45
+ "examples/comparison/repro-surgeon.json": "51de08aed02bccf72acd31e2ec43df0c9d1452cbcdf84d1315a21781ddf2a5de",
46
+ "examples/comparison/README.md": "491b597b69e41baa2997efab34f7aa08359f9ed0310e0a2719e0833fb3dfa576",
47
+ "dist/config.js": "d3ac57c01e2846460d8414fa2ccf1f61484a94c810560380ce7ca5b95ee27058",
48
+ "dist/dependencies.js": "be5fd585720fe44ae7a3ddd20ff7254467e6123eafe80d46191a62b7a6a32147",
49
+ "dist/engine.js": "fc7f18c51446bb41ac87856f26bae7033e370d9f822fb8f4676d0a153a110c4e",
50
+ "dist/graph.js": "2dc1f20950c30a7f52eb52e0e18f2ceaf34e416d943411c4762cd8c3051cad3d",
51
+ "dist/oracle.js": "a6cd95ce095e9eac6a181fed0143843399ad5bbaf1db188b43c7506bfd5636d8",
52
+ "dist/protection.js": "6b1ab323f0416761f52857a4ac4f0b08b53510d5cc2dc97784aaf80cd5447113",
53
+ "dist/runner.js": "d4ad42e31ce0d3ff77ae6afeeb9841b3e629fa10ed305875af752d26e72343f3",
54
+ "dist/snapshot.js": "9194a5b9e627b0c615b1e7193b085970e81e90dc034527dd1d937cb6f5c1400d",
55
+ "dist/state.js": "e41f07fb3915cb80580728ef613580b1ddf8a1db93163fc606d51408baa89964",
56
+ "dist/transforms.js": "db1e44e20399b1d709601eac0bf7036dfbc916dc8c7442c01a5d5ed6e8a423b2",
57
+ "dist/types.js": "01ae2a5b120382f9a648ced7ee8507493a134f216d100fc61600c6c9738235d2"
58
+ }
59
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "repro-surgeon-owned-comparison",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "repro-surgeon-owned-comparison",
9
+ "version": "1.0.0",
10
+ "license": "MIT"
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "repro-surgeon-owned-comparison",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "license": "MIT"
6
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": 1,
3
+ "name": "Single-file numeric-sort comparison",
4
+ "command": ["node", "check.cjs"],
5
+ "oracle": {
6
+ "exitCode": 1,
7
+ "allOf": ["COMPARISON_NUMERIC_SORT: observed [[10,2,3],[11,12,4],[]]"],
8
+ "noneOf": ["COMPARISON_OTHER_FAILURE", "COMPARISON_TARGET_ABSENT"]
9
+ },
10
+ "adapter": "generic",
11
+ "preserve": ["check.cjs", "package.json", "package-lock.json", "repro-surgeon.json", "README.md", "freeze.json"],
12
+ "reduce": { "files": false, "syntax": true, "json": false, "dependencies": false },
13
+ "budget": { "maxEvaluations": 1000000, "maxSeconds": 120 },
14
+ "execution": { "timeoutMs": 2000, "maxOutputBytes": 65536, "env": ["COMPARISON_LOG"] }
15
+ }
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ const displayOptions = {
4
+ heading: 'Weekly score report',
5
+ separator: ' | ',
6
+ decimals: 2,
7
+ };
8
+
9
+ const limits = { minimum: 0, maximum: 1000, pageSize: 25 };
10
+
11
+ function normalizeScores(scores) {
12
+ return scores.map(Number).filter(Number.isFinite);
13
+ }
14
+
15
+ function sortScores(scores) {
16
+ const numeric = normalizeScores(scores);
17
+ return numeric.sort();
18
+ }
19
+
20
+ function scoreSummary(scores) {
21
+ const numeric = normalizeScores(scores);
22
+ const total = numeric.reduce((sum, score) => sum + score, 0);
23
+ return {
24
+ count: numeric.length,
25
+ total,
26
+ average: numeric.length ? total / numeric.length : 0,
27
+ };
28
+ }
29
+
30
+ function formatReport(scores) {
31
+ const summary = scoreSummary(scores);
32
+ return [
33
+ displayOptions.heading,
34
+ `Count: ${summary.count}`,
35
+ `Average: ${summary.average.toFixed(displayOptions.decimals)}`,
36
+ ].join(displayOptions.separator);
37
+ }
38
+
39
+ module.exports = { sortScores, scoreSummary, formatReport, limits };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "repro-surgeon",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Shrink a failing application into an independently verified reproduction.",
5
5
  "type": "module",
6
6
  "bin": { "repro-surgeon": "dist/cli.js" },
@@ -11,6 +11,7 @@
11
11
  "engines": { "node": ">=22.18.0", "npm": ">=10" },
12
12
  "scripts": {
13
13
  "build": "tsc -p tsconfig.json",
14
+ "build:site": "npm run build && node scripts/build-site.mjs",
14
15
  "typecheck": "tsc -p tsconfig.json --noEmit",
15
16
  "test": "node --test tests/*.test.ts",
16
17
  "check": "npm run typecheck && npm test && npm run build",
@@ -24,6 +25,6 @@
24
25
  "author": "Pavan <pavan.gupta.352@gmail.com>",
25
26
  "repository": { "type": "git", "url": "https://github.com/pavangupta352/repro-surgeon.git" },
26
27
  "bugs": { "url": "https://github.com/pavangupta352/repro-surgeon/issues" },
27
- "homepage": "https://github.com/pavangupta352/repro-surgeon#readme",
28
+ "homepage": "https://pavangupta352.github.io/repro-surgeon/",
28
29
  "keywords": ["reproduction", "delta-debugging", "nextjs", "debugging", "test-case-reduction", "typescript"]
29
30
  }