Things to work on:

  1.  Automated self-test

  2.  Add a diff option similar to --tk that shows the graphical diff in
      a web-browser instead of a Tk window.

  3.  Improvements to the "grep" command:
      <ul>
      <li> Search filenames given on the command-line or all managed files if
           no filesnames are supplied
      <li> Search the check-in named on the command-line or the
           current check-out if no check-in is named
      <li> --from VERSION and --to VERSION
           options to search a range of check-ins
      <li> --timeline, --tickets, or --wiki PATTERN to search things other
           than check-ins
      <li> --before DATE and --after DATE to limit the timespan of a search.
      <li> Always output filename and line number
      <li> Only show matches not found in adjacent check-ins, unless --all
           is used.
      <li> --earliest shows only the first match and --latest shows only the
           most recent match when grepping a range of check-ins.
      <li> -l just lists matching files
      <li> --diff-only only search the difference between check-ins
      </ul>

  4.  Change the PHANTOM table into a view on BLOB using a
      partial index where BLOB.SIZE&lt;0.

  5.  Prohibit database writes if any query parameters have been decoded
      but the request is not from the same origin.

  6.  Implement a "`fossil backup`" command using VACUUM INTO.
     <ul>
     <li> <s>Destination can be a file or a directory</s>
          Check-in
     <li> Destination can be an SCP target
     <li> <s>"`fossil all backup E:/`" when a thumb-drive is mounted on E:</s>
          Check-in
     </ul>

  7.  Multiple remote repositories.  Running "`fossil push`" pushes
      to them all, as does autosync.
      <ul>
      <li> Partial implementation as of 2020-08-12:  Multiple remotes remembered
           but can only sync to one at a time.
      </ul>

  8.   Sync relay &rarr;  On a server, when another repository pushes to
       the server (or edits a wiki page on the server) the server
       automatically schedules a push to peer repos.
       <ul>
       <li> Should be able to do this with hooks.  Untested.  Needs better UX.
       </ul>

  9.   <s>Backoffice daemon &rarr; Instead of backoffice running in response
       to a web request, have a separate process that monitors multiple
       repositories and runs backoffice after "mtime" changes on the repository
       file, or periodically (every hour? every day?) in the absence of
       "mtime" changes.</s> Implemented in 2.12

  10.  Update preview using XMLHttpRequest instead of reloading the entire
       page. Implemented in /wikiedit and /fileedit as of 2.12 and
       is pending.

  11.  <s>Allow help text to be in markup, either Fossil-Wiki or Markdown.</s>
       Implemented in 2.12

  12.  Search on help-text and/or on unversioned files
       <ul>
       <li> The "helptext" virtual table added by check-in

       is a step toward providing search on built-in help text, but has not
       yet been integrated into the search subsystem.
       </ul>

  13.  Documentation on sync-via-sneaker-net.

  14.  Macros or other mechanisms for embedding a last-update timestamp
       in the middle of text for wiki pages and/or embedded documentation.

  *  Add a command-line variant of the /secaudit0 page and make that command
     accessible using "fossil all".