• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jhheider / mdtask / 29821311465
85%

Build:
DEFAULT BRANCH: main
Ran 21 Jul 2026 10:12AM UTC
Jobs 1
Files 3
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Jul 2026 10:12AM UTC coverage: 80.205% (+8.9%) from 71.353%
29821311465

push

github

web-flow
Encapsulate execution behind run/run_captured/run_agent (0.3) (#11)

Narrow mdtask-core's public API so consumers deal only in jobs, their
metadata, and running them, never in execution mechanics. The Task struct
is renamed Job; its script, lang, opts, and env fields become internal, as
do Invocation, TaskFile::invocation, interpreter, dependency_order, bind,
substitute, parse_args, and Job::inherits_cwd/script_arg_templates. No
consumer sees a program, argv, interpreter, or temp file.

Three entry points run a job and its Requires: chain:

  run           inherits stdio (the CLI, streaming)
  run_captured  aggregates stdout/stderr across the chain (embedders)
  run_agent     the agent gate: allowlist, within-file dependency
                resolution, and the {{ arg }} injection guard, captured

The two previously found RCEs stay fixed: run_agent resolves the Requires:
chain within the allowed target's own file (so a nearer untrusted task file
cannot shadow a dependency), and refuses a target that raw-templates a
declared arg. Both are covered by regression tests in lib.rs and, through
the tool path, in mcp.rs.

The CLI run loop collapses to mdtask_core::run; mcp.rs run_task delegates to
run_agent and list_tasks to agent_jobs, with all security logic moved to
core. The lint subcommand (shellcheck) is removed entirely. The fixture test
now drives the public surface (parse, jobs(), run_captured, run_agent). Both
crates bump to 0.3.0.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

298 of 369 new or added lines in 3 files covered. (80.76%)

4 existing lines in 2 files now uncovered.

940 of 1172 relevant lines covered (80.2%)

6678.02 hits per line

Uncovered Changes

Lines Coverage ∆ File
38
92.42
-1.68% mdtask-core/src/lib.rs
27
21.05
4.66% mdtask/src/main.rs
6
47.31
-4.03% mdtask/src/mcp.rs

Coverage Regressions

Lines Coverage ∆ File
3
21.05
4.66% mdtask/src/main.rs
1
47.31
-4.03% mdtask/src/mcp.rs
Jobs
ID Job ID Ran Files Coverage
1 29821311465.1 21 Jul 2026 10:12AM UTC 3
80.2
GitHub Action Run
Source Files on build 29821311465
  • Tree
  • List 3
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29821311465
  • 4f8a03d5 on github
  • Prev Build on main (#29814470235)
  • Next Build on main (#30134709098)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc