Changelog0.8.0

Decisions

Decisions in fragcap 0.8.0.

2026-08-28 - Gate hydrated production accessibility in Chromium

The documentation workflow now exact-pins @playwright/test 1.62.1, installs Chromium after building the static export, and blocks on the generated-heading unit tests and production accessibility browser suite. Static inspection cannot establish Mermaid's hydrated SVG semantics, computed contrast, or keyboard focus transfer.

The development-only lockfile delta is four package records: @playwright/test, playwright, and playwright-core under Apache-2.0, plus Playwright's optional macOS fsevents record under MIT. None enters the production bundle. The existing workflow pins Node.js 24, above Playwright's Node.js 20 minimum, and the Chromium binary remains a CI test artifact rather than a repository dependency.

2026-08-28 - Pin exact retired-command searches to current guidance

The static search index now promotes the stable current command-reference page for the exact retired queries fragcap run and fragcap tap. ZBSearch's is condition already normalizes case and outer whitespace, so two narrow rules cover the required variants without changing ranking for current terminology. Historical results stay in the index and follow the promoted guidance.

zbsearch 3.3.4 is now a direct site dependency because first-party route code imports its public pinning API. The package was already present at that exact version through Fumadocs, so the lockfile gains no package or version. It is Apache-2.0 licensed, requires Node.js 20 or newer, and is built under the site's pinned Node.js 24 workflow.

2026-08-28 Kept compatibility calibration inside the existing Deep Capture command and target-owned fact store, with separate reachability and TLS phases. Final-client routing is the eligibility fact; environment propagation is recorded as confirmed only when independent non-invasive evidence supports it.

2026-08-29 Placed Deep Capture orchestration in the existing fragcap facade rather than adding a ninth crate. Authorization binds to one prepared plan, ordinary Capture remains the packet path, and facts and cleanup precede one immutable terminal snapshot. The facade owns lifecycle and evidence policy; the binary retains effect-only bridges to the existing proxy, trust, Capture, target-store, and v0.7 bundle implementations because moving those implementations would either invert dependencies or duplicate the ordinary Capture pipeline. The facade feature implies targets but does not imply live capture, socket-table attribution, or ETW.

  • #253 records the isolated native proxy spike: hudsucker 0.23.0 passed the controlled protocol, lifecycle, HAR-source, CA-separation, bounded-cache, and client-facing key-log proofs, but no measured dependency resolution was both advisory-clean and parseable by Rust 1.82's Cargo. The shipped mitmdump backend remains unchanged while one smaller native fallback is evaluated.

  • #274 closes the Deep Capture proxy backend research after an isolated http-mitm-proxy 0.18.0 Windows spike. The smaller fallback passed controlled HTTP/1.1, client-facing HTTPS and HTTP/2, handshake, HAR-source, CA-separation, bounded-cache, and ten-run listener shutdown proofs. Its exact graph is not parseable by Cargo 1.82, and its public API provides neither client-facing TLS key logging nor bounded ownership of spawned connection tasks. Deep Capture retains external mitmdump; no further speculative backend path is opened.