bugproof 0.2.12 → 0.2.13
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/README.md +22 -101
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -117,7 +117,7 @@ Examples:
|
|
|
117
117
|
bugproof capture -- npm test
|
|
118
118
|
bugproof capture -n auth-crash -d "Login fails on expired session" -- node server.js
|
|
119
119
|
bugproof capture --include-untracked -- python app.py
|
|
120
|
-
bugproof capture -
|
|
120
|
+
bugproof capture -x "*.log" -x "*.tmp" -- go test ./...
|
|
121
121
|
bugproof capture --timeout 600000 -- java -cp . Main
|
|
122
122
|
bugproof capture --json -- node script.js
|
|
123
123
|
```
|
|
@@ -128,7 +128,7 @@ Options:
|
|
|
128
128
|
- `--timeout <ms>` Command timeout in milliseconds (default: `300000`)
|
|
129
129
|
- `-n, --name <name>` Human-readable artifact name
|
|
130
130
|
- `-d, --description <desc>` Bug description
|
|
131
|
-
- `-
|
|
131
|
+
- `-x, --exclude <pattern>` Exclude files matching pattern (repeatable)
|
|
132
132
|
- `--json` Structured JSON output
|
|
133
133
|
|
|
134
134
|
### `bugproof replay <artifact>`
|
|
@@ -359,31 +359,12 @@ Notes:
|
|
|
359
359
|
- Exit codes may differ by OS for signals/crashes.
|
|
360
360
|
- Fingerprint/error-pattern matching is used for reproduction verdict.
|
|
361
361
|
|
|
362
|
-
##
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
-
|
|
366
|
-
-
|
|
367
|
-
-
|
|
368
|
-
- Reproducibility over screenshots/log snippets
|
|
369
|
-
|
|
370
|
-
## Roadmap
|
|
371
|
-
|
|
372
|
-
- [x] v0.1: CLI core (capture/replay/inspect/diff)
|
|
373
|
-
- [x] v0.1: Cross-platform replay support
|
|
374
|
-
- [x] v0.1: Secret redaction and sandbox layers
|
|
375
|
-
- [x] v0.2: Watch command (auto-capture on failure)
|
|
376
|
-
- [x] v0.2: Project config (`.bugproofrc`)
|
|
377
|
-
- [x] v0.2: Dependency detection (Node/Python/Ruby/Go/Rust)
|
|
378
|
-
- [x] v0.2: Smart hints on replay failure
|
|
379
|
-
- [x] v0.2: Share via GitHub Gist
|
|
380
|
-
- [x] v0.2.1: Smart source strategy (git-full/git-patch/stacktrace/minimal)
|
|
381
|
-
- [x] v0.2.1: BugBox Container (lightweight Docker-like isolation)
|
|
382
|
-
- [x] v0.2.1: Environment snapshot + mismatch warnings
|
|
383
|
-
- [ ] v0.3: Web UI for artifact inspection
|
|
384
|
-
- [ ] v0.3: Artifact signing and verification
|
|
385
|
-
- [ ] v0.4: GitHub issue integration and richer diff visualization
|
|
386
|
-
- [ ] v0.4: CI/CD plugins (GitHub Actions, GitLab CI)
|
|
362
|
+
## Design Principles
|
|
363
|
+
|
|
364
|
+
- Security-first default behavior (secrets redacted by default)
|
|
365
|
+
- Language-agnostic command capture (works with any CLI tool)
|
|
366
|
+
- Minimal runtime dependencies (Node.js + Git only)
|
|
367
|
+
- Reproducibility over screenshots or log snippets
|
|
387
368
|
|
|
388
369
|
## Development
|
|
389
370
|
|
|
@@ -393,87 +374,27 @@ npm run build
|
|
|
393
374
|
npm test
|
|
394
375
|
```
|
|
395
376
|
|
|
396
|
-
##
|
|
397
|
-
|
|
398
|
-
This section helps maintainers and integrators understand the architecture, testing, and shipping process for BugProof.
|
|
399
|
-
|
|
400
|
-
- Architecture: modular pipeline (Capture → Packager → Replay → Verdict). Key modules:
|
|
401
|
-
- `src/capture/*` — execution capture and environment snapshot
|
|
402
|
-
- `src/capture/language-support.ts` — multi-language detection and language-context.json generation
|
|
403
|
-
- `src/replay/*` — artifact restore, sandboxing, and verdict generation
|
|
404
|
-
- `src/replay/verdict.ts` — fingerprint and normalized-pattern matching logic
|
|
405
|
-
|
|
406
|
-
- Testing: unit tests (Jest) live under `tests/`; integration tests under `tests/integration/`.
|
|
407
|
-
- Run `npm test` for full suite. Use `npm run test:e2e` for cross-platform orchestrator (requires SSH hosts configured).
|
|
408
|
-
|
|
409
|
-
- Cross-platform QA: use `scripts/e2e-matrix.js` to run Windows↔Linux scenarios. Configure SSH in `scripts/e2e-matrix.js` or provide `E2E_TARGET` env.
|
|
410
|
-
|
|
411
|
-
- Shipping checklist (short):
|
|
412
|
-
1. Ensure `npm run build` passes and `npm test` is green locally on both Windows and Linux runners.
|
|
413
|
-
2. Update `CHANGELOG.md` and bump `package.json` version.
|
|
414
|
-
3. Tag a release `git tag -a vX.Y.Z -m "Release vX.Y.Z"` and push tags.
|
|
415
|
-
4. CI will run `prepublishOnly` and publish on tag events.
|
|
416
|
-
|
|
417
|
-
If you are integrating BugProof into a CI pipeline, prefer running `bugproof inspect` in a hermetic container to validate artifact contents before attempting replay.
|
|
418
|
-
|
|
419
|
-
## CI/CD Pipeline
|
|
420
|
-
|
|
421
|
-
BugProof uses an automated, production-grade GitHub Actions pipeline for testing and publishing.
|
|
422
|
-
|
|
423
|
-
### Pipeline Overview
|
|
424
|
-
|
|
425
|
-
**Every push to `main` automatically:**
|
|
426
|
-
1. ✅ Runs tests on 6 combinations (Ubuntu/Windows/macOS × Node 18+20)
|
|
427
|
-
2. ✅ Runs security audit (npm audit)
|
|
428
|
-
3. ✅ Validates installation on all platforms
|
|
429
|
-
4. ✅ Auto-bumps patch version
|
|
430
|
-
5. ✅ Publishes to npm registry
|
|
431
|
-
6. ✅ Creates GitHub Release
|
|
377
|
+
## Architecture
|
|
432
378
|
|
|
433
|
-
|
|
379
|
+
BugProof follows a modular pipeline: **Capture → Package → Replay → Verdict**.
|
|
434
380
|
|
|
435
|
-
|
|
381
|
+
| Module | Purpose |
|
|
382
|
+
|--------|---------|
|
|
383
|
+
| `src/capture/` | Execution capture, environment snapshot, source strategy |
|
|
384
|
+
| `src/replay/` | Artifact restore, sandboxing, verdict generation |
|
|
385
|
+
| `src/replay/verdict.ts` | Fingerprint and normalized-pattern matching |
|
|
386
|
+
| `src/capture/language-support.ts` | Multi-language detection |
|
|
436
387
|
|
|
437
|
-
|
|
388
|
+
Tests use Jest and live under `tests/`. Run `npm test` for the full suite. Cross-platform QA uses `scripts/e2e-matrix.js` with SSH-configured Linux hosts.
|
|
438
389
|
|
|
439
|
-
|
|
440
|
-
2. Add to GitHub: Settings → Secrets → `NPM_TOKEN` → Save
|
|
441
|
-
|
|
442
|
-
See [CI_CD_QUICKSTART.md](./CI_CD_QUICKSTART.md) for step-by-step instructions.
|
|
443
|
-
|
|
444
|
-
### Test Matrix
|
|
445
|
-
|
|
446
|
-
| OS | Node 18 | Node 20 | Status |
|
|
447
|
-
|-----------|---------|---------|--------|
|
|
448
|
-
| Ubuntu | ✅ | ✅ | 2 runs |
|
|
449
|
-
| Windows | ✅ | ✅ | 2 runs |
|
|
450
|
-
| macOS | ✅ | ✅ | 2 runs |
|
|
451
|
-
|
|
452
|
-
**Per run:** 276 Jest tests + ESLint checks
|
|
453
|
-
|
|
454
|
-
### Documentation
|
|
455
|
-
|
|
456
|
-
- **Quick setup:** [CI_CD_QUICKSTART.md](./CI_CD_QUICKSTART.md) (5 min)
|
|
457
|
-
- **Full guide:** [CI_CD_GUIDE.md](./CI_CD_GUIDE.md) (detailed reference)
|
|
458
|
-
- **Implementation:** [CI_CD_IMPLEMENTATION_SUMMARY.md](./CI_CD_IMPLEMENTATION_SUMMARY.md)
|
|
459
|
-
- **Workflow file:** [`.github/workflows/release.yml`](.github/workflows/release.yml)
|
|
460
|
-
|
|
461
|
-
### Local Validation
|
|
462
|
-
|
|
463
|
-
Before pushing, run the CI health check locally:
|
|
464
|
-
|
|
465
|
-
```bash
|
|
466
|
-
node scripts/ci-health-check.js
|
|
467
|
-
```
|
|
390
|
+
## CI/CD
|
|
468
391
|
|
|
469
|
-
|
|
392
|
+
Every push to `main` triggers automated testing across Ubuntu, Windows, and macOS via GitHub Actions. On success, the pipeline auto-bumps the version, publishes to npm, and creates a GitHub Release. The workflow file is at `.github/workflows/ci.yml`.
|
|
470
393
|
|
|
471
|
-
###
|
|
394
|
+
### One-time setup
|
|
472
395
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
- Publishing to npmjs.com runs automatically on `main` push (after all tests pass).
|
|
476
|
-
- GitHub Releases are created automatically with generated release notes.
|
|
396
|
+
1. Generate an npm automation token at https://www.npmjs.com/settings/~/tokens
|
|
397
|
+
2. Add it as `NPM_TOKEN` in GitHub: Settings → Secrets and variables → Actions
|
|
477
398
|
|
|
478
399
|
## License
|
|
479
400
|
|