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

jhheider / mdtask / 30228695337

27 Jul 2026 12:58AM UTC coverage: 84.14% (+2.5%) from 81.673%
30228695337

push

github

web-flow
0.5.0: audit fixes, opt-in inheritance, working MCP cancellation (#13)

* fix: one language table, so the sh fallback is strict

A block tagged ```console ran as a shell with no `set -e`, so a failing
step reported success:

    ## ci
    ```console
    echo "step 1"
    false
    echo "ALL GREEN"
    ```

    $ mdtask ci; echo $?
    step 1
    ALL GREEN
    0

That is the failure #12 exists to prevent, reachable by one wrong word in
a fence, and `console` is among the commonest fence tags in a README.

The cause was three tables answering one question. `interpreter`,
`strict_prelude` and `is_known_lang` each matched the same input
separately, and the first two disagreed on the fallback arm: an
unrecognized language resolved to `sh` for the program but to `None` for
the prelude. There is now one table returning program, flag, prelude and
whether the language was named at all, so they cannot drift again.

The fallback to `sh` stays, deliberately. It was never the bug, and it is
right for the tags people actually write (`shell-session`, `bash5`).
Adding the prelude to it also fixes the neighbouring hazard for free: a
fence that is not a shell script at all now fails on its first line
(a ```toml block exits 127 on `key: command not found`) instead of
running halfway and exiting 0.

README: the strictness section claimed `just` avoids this structurally,
which is only true of its default line-per-command mode. Its shebang
recipes, like xc and a multi-line Taskfile `cmd:`, run the whole body as
one script and add no strictness at all. The section now says which fence
tags get a prelude, states plainly that `fish` gets none and why, and
describes the fallback as the guess it is.

Tests: one asserting an unknown tag is still a task and still warns, one
asserting the fallback carries failure detection across seven tags, and
one asserting the general invariant that anything resolving to a shell
carries a prelude. That last is the test that would have caught th... (continued)

1841 of 2111 new or added lines in 8 files covered. (87.21%)

4 existing lines in 2 files now uncovered.

1947 of 2314 relevant lines covered (84.14%)

4431.66 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

99.24
/mdtask-core/src/parse.rs


Source Not Available

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