Repository navigation
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 541653b | Commit Preview URL Branch Preview URL |
Nov 01 2026, 05:07 AM |
|
Fuzz Compile Check is failing, and it isn't this PR's. No fix exists yet. The proposed workaround is to pin the fuzz job to Generated by Claude Code |
Opt-in `markkit` and `fetchkit` features (off by default) register both tools as builtins. Each calls the upstream `run(args, host)` library entry point, so flags, help, errors, output and exit codes match the standalone binaries. Files come from the VFS; every HTTP hop goes through the sandbox HttpClient (allowlist, SSRF precheck, credential injection, signing). Host-only flags (`--ocr`, `--render-rakers`, proxies, bot-auth keys, remote conversion) and `mcp` parse but fail closed. markkit limits can only be lowered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wy7MByPXsW4jHxfLeTfGEc
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wy7MByPXsW4jHxfLeTfGEc
…cargo-vet Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wy7MByPXsW4jHxfLeTfGEc
…odel Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wy7MByPXsW4jHxfLeTfGEc
17efc2d to
faf18d4
Compare
Self-checking example (VFS file, stdin + jq, URL with redirect, fetchkit Markdown and JSON, allowlist denial, refused flag) over an in-process HttpTransport, run in the CI Examples job; LIVE_URL adds a real fetch. The user guide moves to crates/bashkit/docs and is embedded as markkit_fetchkit_guide with a compiled doctest.
What changed
Two new opt-in Cargo features,
markkitandfetchkit(both off by default), makemarkkitandfetchkitavailable as commands inside a bashkit session.run(args, host)library entry point (markkit-cli 0.3, fetchkit-cli 0.7), the same function the real binaries call. Flags,--help,--version, error text, output and exit codes are identical; bashkit parses nothing.cwd), stdin from the pipeline. Every HTTP hop, including redirects, fetchkit API calls and discovery probes, goes through the per-BashHttpClient: allowlist, SSRF precheck, credential injection, bot-auth signing, hooks and hostHttpTransportall apply. No second HTTP/TLS stack is linked (no aws-lc).--ocr,--render-rakers,--allow-env-proxy,--bot-auth-key/-agent,--allow-remote-conversionandmcpstill parse and show in help, then exit 1 withError: <flag> is not available in bashkit.--max-*/--timeoutcan lower the default limits, never raise them, so one tenant can't buy a bigger budget in a shared process.markkit_fetchkit_guide(crates/bashkit/docs/markkit-fetchkit.md, also the site page); runnable exampleexamples/markkit_fetchkit.rs(in the CI Examples job); knowledge:knowledge/runtimes/markkit-fetchkit-builtins.md, TM-NET-030, TM-DOS-139, L-DOC-001.Why
Agents want to turn documents and web pages into LLM-ready Markdown from inside the sandbox, using the exact CLI they already know.
Before / After
Before (any build):
After (
--features markkit,fetchkit):Local results: 24 integration tests (
kit_builtin) and 13 lib tests (limit clamping + TM-INF-022no_leak_*) pass; clippy-D warningsclean formarkkit,markkit,fetchkit,http_client;cargo deny checkok;cargo tree -i aws-lc-sysempty;check-doc-linksandcheck-okfok. A new CI step runs the builtin tests.Live smoke (
LIVE_URL=... cargo run --example markkit_fetchkit --features markkit,fetchkit), all exit 0:https://example.com: fetchkit frontmatter + body; markkit Markdownhttps://docs.rs/tokio/latest/tokio/: full pagedummy.pdf: fetchkitextraction_method: "pdf_inspector", markkit**Dummy PDF file**https://arxiv.org/pdf/1706.03762with onlyarxiv.orgallowed: refused,URL not in allowlist: https://export.arxiv.org/api/query?...(fetchkit's arXiv API subrequest goes through the allowlist too)Risk
Checklist
<source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v3.svg"><img alt="View with [code]smith" src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png" width="162" height="28">''''https://backend.blacksmith.sh/track/enable-autofix?expires=1796095440&installation_model_id=447267&pr_number=2803&ref=codesmith_pr_footer&repository=everruns%2Fbashkit&return_to=https%3A%2F%2Fgithub.com%2Feverruns%2Fbashkit%2Fpull%2F2803&signature=0d67cfb63b786a8948d93a170a9cfdb00f21e0ab10d7da94f4814c8de71f870a"><picture><sourcemedia="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img alt="Autofix with [code]smith" src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png" width="190" height="28">````Need help on this PR? Tag
@codesmith-botwith what you need.Generated by Claude Code