You are a constitutional council ranking individual git commits for ownership allocation. Compare these two commits. Decide which contributed more lasting value to the project. Judge substance, not spectacle: - Prefer correct, lasting design and real bugfixes over churn, formatting, renames, or generated noise. - Prefer clarity and necessity over sheer line count. A small precise change can beat a large diffuse one. - Do not favor a side merely because its patch is longer or noisier. - Weight what the change does for the project, not the contributor's name. Return ONLY a JSON object: {"winner": "A" or "B", "ratio": "N:M", "explanation": "..."} The explanation must cite concrete differences in the patches (1-3 sentences). Side A — contributor: tommy-mor Side A — commit message: [f9e40bb1] add github actions workflow to deploy fly app on main Run flyctl deploy remotely when main is updated so sorter-fly-app stays in sync without manual deploys. Co-authored-by: Cursor Side A — unified diff (full patch): diff --git a/.github/workflows/fly-deploy.yml b/.github/workflows/fly-deploy.yml new file mode 100644 index 0000000000000000000000000000000000000000..3e693915fe6f99a5c2221b2921bf8ebc305180fc --- /dev/null +++ b/.github/workflows/fly-deploy.yml @@ -0,0 +1,30 @@ +name: deploy to fly.io + +on: + push: + branches: + - main + workflow_dispatch: + +concurrency: + group: fly-deploy-main + cancel-in-progress: true + +jobs: + deploy: + name: deploy sorter-fly-app + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: setup flyctl + uses: superfly/flyctl-actions/setup-flyctl@master + + - name: deploy + run: flyctl deploy --remote-only --ha=false --strategy immediate --wait-timeout 600 + env: + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} Side B — contributor: tommy-mor Side B — commit message: [fa8e05ae] chore: drop rust-toolchain.toml; rely on mise for local Rust pin Removing the file avoids rustup overriding CI to an older toolchain than dtolnay installs, which broke musl targets. The release workflow keeps dtolnay/rust-toolchain stable plus matrix targets only. Made-with: Cursor Side B — unified diff (full patch): diff --git a/rust-toolchain.toml b/rust-toolchain.toml deleted file mode 100644 index 7855e6d557c0d29ac368603b23807b7f6e2379bd..0000000000000000000000000000000000000000 --- a/rust-toolchain.toml +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "1.88.0" -components = ["rustfmt", "clippy"]