Skip to content

v0.2.0

@srinitude srinitude tagged this 02 Jul 18:20
Determinism: byte-identical scrape output (fetchedAt removed); level-synchronized
BFS crawl with normalized dedup and index-ordered folds (order AND membership
stable under concurrency); bounded ordered fan-out everywhere; deterministic
runIds; pinned dependency tree (bun.lock ships, no more 'latest').

Correctness: --timeout wired end-to-end; per-command human rendering (--json
meaningful for all 18 commands, -o writes what stdout carries); charset-aware
decoding + binary content-type guard; deterministic bounded retry (429/5xx +
network throws only); origin-root sitemap with index recursion; root apex→www
redirects re-anchor crawl/map; attempt-ordered errors[] with a documented exit
code contract (0/1/2, 3 batch partial, 127 toolchain missing); subprocess pipe
deadlocks fixed via a shared drained runner.

Fresh env: bundled pinned mise npm binary + trust bootstrap + package-root cwd
with WEBULAR_INVOKE_DIR path resolution; audit uses the local deepsec bin (no
npx registry installs); frozen-lockfile setup; offline-deterministic test suite
(live cases opt-in via WEBULAR_TEST_LIVE=1).

BREAKING: fetchedAt removed from scrape output; --format/--quiet removed (now
warned deprecation shims), --plan and --op removed; media requires -o; diagram
is list-only; monitor default DB moved to XDG state (per user+project); output
schemas gained errors[]; batch output dropped op.

Quality: ~66 orphaned exports removed with a new AST unused-exports gate;
11 duplicated command blocks collapsed onto one typed runner; 200/30/3 limits
hold; docs/claims aligned (README, help, mise.toml descriptions).
Assets 2
Loading