/ darcsweb / logSecurity-critical pure functions (HTML escaping, path validation, trailing slash normalization) are reimplemented in Gallina, formally proven correct, and extracted to Haskell. Remaining pure functions are covered by QuickCheck properties. Rocq extraction runs automatically on stack build, proofs and QuickCheck on stack test.
R ./.claude/settings.local.json R ./.claude/ M ./README.md +86 M ./darcsweb.cabal -9 +41 M ./src/DarcsWeb/Darcs.hs -18 +8 M ./src/DarcsWeb/Html.hs -9 +10 R ./src/Main.hs
M ./src/DarcsWeb/Html.hs -1 +12 M ./static/style.css +14
So no one can access file, he is not allowed to.
M ./src/DarcsWeb/Darcs.hs -14 +70 M ./src/Main.hs -24 +20
M ./darcsweb.cabal +1 M ./src/DarcsWeb/Darcs.hs -2 +45 M ./src/DarcsWeb/Html.hs -53 +177 M ./src/DarcsWeb/Types.hs +8 M ./src/Main.hs -7 +60 M ./static/style.css +57
M ./src/DarcsWeb/Html.hs -3 +2 M ./static/style.css +9
A ./.claude/ A ./.claude/settings.local.json A ./LICENSE A ./README.md A ./darcsweb.cabal A ./darcsweb.conf.example A ./src/ A ./src/DarcsWeb/ A ./src/DarcsWeb/Config.hs A ./src/DarcsWeb/Darcs.hs A ./src/DarcsWeb/Html.hs A ./src/DarcsWeb/Types.hs A ./src/Main.hs A ./stack.yaml A ./stack.yaml.lock A ./static/ A ./static/style.css