A repository that takes commits from people it cannot list has no way to freeze a range today: a null `authors` falls back to `git config user.email`, so every foreign author or committer fails. Null, or no key, now means neither is checked; the freeze warns that it did not check them and records `authors` as null. A list is checked as before. An empty list, which no commit could pass, is a config error that points at null. Released as 1.1.0.
61 lines
3.3 KiB
XML
61 lines
3.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- SPDX-License-Identifier: CC0-1.0 -->
|
|
<component type="console-application">
|
|
<id>net.catcrafts.CrafterReview</id>
|
|
<name>Crafter Review</name>
|
|
<summary>Adversarial pre-push review of a frozen commit range</summary>
|
|
<metadata_license>CC0-1.0</metadata_license>
|
|
<project_license>AGPL-3.0-only</project_license>
|
|
<developer id="net.catcrafts">
|
|
<name>Catcrafts</name>
|
|
</developer>
|
|
<description>
|
|
<p>
|
|
The pre-push review pipeline: crafter-review freezes a commit range,
|
|
partitions it into units, and runs adversarial lenses over it — the
|
|
approach, the running application through the Playwright MCP server,
|
|
a bug proof and a security review — one claude process per unit, on the
|
|
seats the repository or the machine provides. A range is send-ready
|
|
only when every gate passes on the exact frozen hash.
|
|
</p>
|
|
</description>
|
|
<url type="homepage">https://forgejo.catcrafts.net/Catcrafts/Crafter.Review</url>
|
|
<url type="bugtracker">https://forgejo.catcrafts.net/Catcrafts/Crafter.Review/issues</url>
|
|
<url type="vcs-browser">https://forgejo.catcrafts.net/Catcrafts/Crafter.Review</url>
|
|
<provides>
|
|
<binary>crafter-review</binary>
|
|
</provides>
|
|
<content_rating type="oars-1.1"/>
|
|
<releases>
|
|
<release version="1.1.0" date="2026-11-02">
|
|
<description>
|
|
<p>New</p>
|
|
<ul>
|
|
<li>Leaving <code>authors</code> out of the config turns the freeze's author and committer check off, where it used to check <code>git config user.email</code>. An empty list is a config error.</li>
|
|
</ul>
|
|
</description>
|
|
</release>
|
|
<release version="1.0.1" date="2026-11-02">
|
|
<description>
|
|
<p>Fixes</p>
|
|
<ul>
|
|
<li>The <code>.flatpakref</code> attached to a release carries the Catcrafts repository's key, so installing from that file works; 1.0.0's had a placeholder.</li>
|
|
</ul>
|
|
</description>
|
|
</release>
|
|
<release version="1.0.0" date="2026-11-02">
|
|
<description>
|
|
<p>New</p>
|
|
<ul>
|
|
<li>Pre-push review gates for a commit range: Claude processes review the approach, the running application, a bug proof, security and the commit messages, and a range is send-ready only when every gate passes on its exact frozen hash.</li>
|
|
<li><code>crafter-review init</code> sets a repository up: its config and the <code>/prepush</code> skill.</li>
|
|
<li>Modes in the repository's config (<code>modes.<name></code>): the kind of artifact, the lenses it runs and their effort. Every lens is off until a mode lists it.</li>
|
|
<li>Seats from a dotenv file - <code>--env-file</code>, <code>$SEATS_ENV_FILE</code>, the working directory's <code>.env</code> or the machine's own <code>~/.config/crafter-review/env</code> - over the environment's, on one seat board for every driver on a machine.</li>
|
|
<li>A repository's own section appended to a lens's charter (<code>lenses.<name>.section</code>).</li>
|
|
<li>Pre-send review of a kernel patch series or a mailing-list reply (<code>--mode series</code>, <code>--mode reply</code>).</li>
|
|
<li>Shipped as a Flatpak with its own git, Node and ripgrep.</li>
|
|
</ul>
|
|
</description>
|
|
</release>
|
|
</releases>
|
|
</component>
|