Skip to content

Commit 82e092c

Browse files
committed
docs: add research citations, update roadmap with shipped features
- Add Monce et al. (2025) and MINES (2025) citations to the 'What etch is' section, establishing academic backing for the snapshot and noise detection approaches. - Move approve --pattern and array reordering to shipped list. - Add etch verify (metamorphic relations) and HTML diff reports to the planned roadmap as the next high-value features.
1 parent e248b07 commit 82e092c

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ Keploy records API calls and database queries using eBPF kernel hooks or languag
113113

114114
Etch catches regression — unintended changes in API responses. It's not a correctness testing tool. For verifying business logic, combine etch with your existing unit tests. They're complementary, not competing.
115115

116+
Etch's approach is backed by recent research: Monce et al. (2025) proposed API Interaction Snapshots for detecting behavioral breaking changes that only surface at runtime — essentially the same problem etch solves for HTTP APIs. The noise detection and normalization system aligns with work on API invariant mining (MINES, 2025), which separates signal from noise in runtime API behavior.
117+
116118
## How it works
117119

118120
```
@@ -367,16 +369,18 @@ go test -race ./... # race detector
367369
- [x] CI/CD templates (GitHub Actions + GitLab CI)
368370
- [x] Cross-platform builds (Linux, macOS, Windows)
369371
- [x] OpenAPI 3.0 spec generation from traffic
372+
- [x] Array reordering treated as non-breaking (order-insensitive comparison)
373+
- [x] Pattern-based bulk approvals (`etch approve --pattern <field>`)
370374

371375
### Planned
372376

373-
- [ ] `etch approve --pattern` — bulk approve changes matching a field name
377+
- [ ] `etch verify` — metamorphic relation checks (e.g. "pagination total matches count endpoint")
378+
- [ ] HTML diff reports — shareable before/after view without the CLI
374379
- [ ] Noise presets (`etch noise --preset stripe|github|aws`)
375380
- [ ] Environment variable support in snapshots (`{{BASE_URL}}`)
376381
- [ ] GitHub PR comments with diff summaries
377382
- [ ] Watch mode (continuous recording)
378383
- [ ] gRPC / GraphQL support
379-
- [ ] Metamorphic testing for relationship checks between endpoints
380384

381385
## Contributing
382386

0 commit comments

Comments
 (0)