|
35 | 35 | | **Passive intelligence** | `/omv-radar` and `/omv-dedup` track watchlist changes and duplicate advisory risk. | |
36 | 36 | | **Report drafting** | `/omv-report` generates review-friendly advisory drafts from validated findings. | |
37 | 37 | | **Disclosure lifecycle** | `/omv-disclose`, `/omv-critic`, and `omv submissions ...` cover pre-submit review and post-submit tracking. | |
| 38 | +| **Request reliability** | `omv request ...` classifies rate limits, request refusals, source health, and cached metadata fetches. | |
38 | 39 | | **CLI management** | `omv dashboard`, `omv doctor`, and `omv findings ...` keep local state inspectable. | |
39 | 40 |
|
40 | 41 | ## Quick Start |
41 | 42 |
|
42 | 43 | ```sh |
43 | 44 | npx oh-my-vul setup |
44 | 45 | omv doctor |
| 46 | +omv request preflight |
45 | 47 | ``` |
46 | 48 |
|
47 | 49 | If `omv` is not on your `PATH`, use npx: |
@@ -159,6 +161,23 @@ csrf xxe sql ssti sandbox redirect upload crypto infoleak |
159 | 161 |
|
160 | 162 | `/omv-find` should return evidence-backed candidates: repository, registry identity, maintenance signal, code-size estimate, **source -> sink -> guard** notes, and local audit next steps. |
161 | 163 |
|
| 164 | +## Request Reliability |
| 165 | + |
| 166 | +`/omv-find` often needs public registry metadata, GitHub metadata, raw source files, and source archives. Those sources can be rate-limited, bot-blocked, missing, or temporarily unavailable. Use the TypeScript request broker before or during request-heavy research: |
| 167 | + |
| 168 | +```sh |
| 169 | +omv request preflight |
| 170 | +omv request preflight --json --refresh |
| 171 | +omv request fetch https://registry.npmjs.org/markdown-it --json |
| 172 | +omv request fetch https://api.github.com/repos/owner/repo --accept application/json --refresh |
| 173 | +``` |
| 174 | + |
| 175 | +The broker writes cache entries under `.omv/cache/http/`, redacts sensitive response headers, and returns structured `failure.reason`, `rateLimit`, `expiresAt`, and `recommendation` fields. GitHub API requests automatically use `GITHUB_TOKEN` or `GH_TOKEN` when present. |
| 176 | + |
| 177 | +Common failure reasons are `rate_limited`, `auth_required`, `bot_blocked_or_forbidden`, `not_found`, `network_timeout`, `network_error`, `upstream_error`, and `invalid_url`. Treat these as research-state signals: keep affected fields unverified, prefer registry/source archive fallbacks, and avoid repeatedly retrying blocked URLs. |
| 178 | + |
| 179 | +See [docs/request-broker.md](docs/request-broker.md) for the full request broker behavior, JSON contract, cache policy, and Playwright evaluation. |
| 180 | + |
162 | 181 | ## Evidence Ledger |
163 | 182 |
|
164 | 183 | Project-local research state lives in `.omv/findings/`. These files are gitignored by default because they may contain private research notes. |
@@ -268,6 +287,8 @@ omv dedup demo-traversal --confirm --existing-cve none --notes "searched NVD, GH |
268 | 287 | | Document | Purpose | |
269 | 288 | |---|---| |
270 | 289 | | [README.zh-CN.md](README.zh-CN.md) | Chinese project guide. | |
| 290 | +| [docs/request-broker.md](docs/request-broker.md) | Request broker usage, failure classes, cache behavior, and Playwright evaluation. | |
| 291 | +| [docs/request-broker.zh-CN.md](docs/request-broker.zh-CN.md) | Chinese request broker guide. | |
271 | 292 | | [docs/vulnerability-research-best-practices.zh-CN.md](docs/vulnerability-research-best-practices.zh-CN.md) | Chinese best-practices guide for vulnerability research with this project. | |
272 | 293 | | [docs/examples/demo-finding-flow.md](docs/examples/demo-finding-flow.md) | Sanitized end-to-end finding workflow example. | |
273 | 294 | | [docs/roadmap-0.8.md](docs/roadmap-0.8.md) | Planned `v0.8` CLI improvements. | |
|
0 commit comments