Skip to content

feat(features)!: make http_client opt-in - #29

Merged
chaliy merged 9 commits into
mainfrom
claude/project-thread-jep8ae
Oct 27, 2026
Merged

chaliy merged 9 commits into
mainfrom
claude/project-thread-jep8ae

Conversation

@chaliy

@chaliy chaliy commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Михайло · project thread

What changed

http_client is no longer a default feature of markkit. Default build = html only, with no HTTP/TLS stack. Library users who call extract_url add features = ["http_client"]. The CLI and Python/Node bindings already enable it explicitly, so their extract_url is unchanged. CI now also asserts the default markkit dependency tree has no reqwest/hyper.

Docs updated: README feature table, crate docs, SECURITY.md, threat model T3 likelihood, maintenance checklist, AGENTS.md, CHANGELOG (breaking), knowledge log.

Why

URL fetching is the SSRF surface (T3); embedders should opt in to it rather than get a network stack by default.

Before / After

Before: cargo tree -p markkit -e normal | grep -E 'reqwest|hyper' → reqwest, hyper, ...
After: no match (exit 1). cargo test -p markkit (default), --features http_client, --all-features, cargo test --workspace, clippy -D warnings (default/no-default/all-features), check_okf.py all pass.

Risk

  • Low
  • Downstream crates relying on default extract_url must enable http_client (compile error, not silent change). MarkkitTool (tool feature) already gates url input on cfg!(feature = "http_client").

Checklist

  • Tests added or updated (CI assertion for default tree)
  • Backward compatibility considered (CHANGELOG breaking note)

🤖 Generated with Claude Code

Default markkit build no longer links reqwest/hyper. CLI and Python/Node
bindings already enable http_client explicitly. CI asserts the default
dependency tree stays network-free.
@chaliy chaliy self-assigned this Oct 26, 2026
…-jep8ae

# Conflicts:
#	crates/markkit/src/lib.rs
#	knowledge/log.md
…-jep8ae

# Conflicts:
#	crates/markkit/Cargo.toml
#	knowledge/log.md
…-jep8ae

# Conflicts:
#	crates/markkit/Cargo.toml
@chaliy
chaliy merged commit 4b19458 into main Oct 27, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant