{
  "format": 1,
  "project": "x86qw",
  "generated_at": "2026-08-20T16:24:19Z",
  "packages": [
    {
      "component": "core",
      "package": "x86qw-core-id1",
      "version": "0.1.0",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-core-id1-0.1.0.zip",
      "size": 23817305,
      "sha256": "484e2243a2592a53d28bd39771c0e8128bb251e70742a6f2f132dcce4d9ad52a",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-content-core-0.1.0/x86qw-core-id1-0.1.0.zip",
      "license": "id-software-registered-game-data",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw/tree/main/dist/game-data/id1"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-content-core-0.1.0/x86qw-core-id1-0.1.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-core-id1/0.1.0/x86qw-core-id1-0.1.0.zip"
      ],
      "source_revision": "ca32377ea9050dd50f9a71147cbe16c35d698765fd57a826651b4d608e20f07f",
      "mirror_title": "x86QW Content · Dados base 0.1.0",
      "mirror_notes": "Dados base obrigatórios usados pelo instalador x86QW.",
      "mirror_latest": false
    },
    {
      "component": "ezquake",
      "version": "20260616-101233_a86996a",
      "channel": "nightly",
      "platform": "linux",
      "architecture": "x86_64",
      "filename": "20260616-101233_a86996a_ezQuake-x86_64.AppImage",
      "size": 21309944,
      "sha256": "8f5d90316a86c4217cf74c146437c2120ed23c62a06c4b6e1acc4f9e064e46c9",
      "origin_url": "https://builds.quakeworld.nu/ezquake/snapshots/linux/x86_64/20260616-101233_a86996a_ezQuake-x86_64.AppImage",
      "license": "GPL-2.0-only",
      "license_url": "https://github.com/QW-Group/ezquake-source/blob/a86996a3d33dc1bc3fb15bfe7bcadd662b822557/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/ezquake-source/archive/a86996a3d33dc1bc3fb15bfe7bcadd662b822557.tar.gz"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ezquake-nightly-20260616-101233_a86996a/20260616-101233_a86996a_ezQuake-x86_64.AppImage",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ezquake/20260616-101233_a86996a/20260616-101233_a86996a_ezQuake-x86_64.AppImage"
      ],
      "distribution_path": "clients/ezquake/nightly/20260616-101233_a86996a/linux-x86_64/20260616-101233_a86996a_ezQuake-x86_64.AppImage",
      "mirror_title": "x86QW Content · ezQuake nightly 20260616-101233_a86996a",
      "mirror_notes": "Cliente ezQuake nightly 20260616-101233_a86996a preservado pela distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "ezquake",
      "version": "20260616-101233_a86996a",
      "channel": "nightly",
      "platform": "macos",
      "architecture": "universal",
      "filename": "20260616-101233_a86996a_ezQuake-macOS-universal.zip",
      "size": 8628602,
      "sha256": "b6436bcbb274efab7bfcc30ce4cc843eb9b4a7db5d68cbb8dcd1636e753a215c",
      "origin_url": "https://builds.quakeworld.nu/ezquake/snapshots/macOS/universal/20260616-101233_a86996a_ezQuake-macOS-universal.zip",
      "license": "GPL-2.0-only",
      "license_url": "https://github.com/QW-Group/ezquake-source/blob/a86996a3d33dc1bc3fb15bfe7bcadd662b822557/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/ezquake-source/archive/a86996a3d33dc1bc3fb15bfe7bcadd662b822557.tar.gz"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ezquake-nightly-20260616-101233_a86996a/20260616-101233_a86996a_ezQuake-macOS-universal.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ezquake/20260616-101233_a86996a/20260616-101233_a86996a_ezQuake-macOS-universal.zip"
      ],
      "distribution_path": "clients/ezquake/nightly/20260616-101233_a86996a/macos-universal/20260616-101233_a86996a_ezQuake-macOS-universal.zip",
      "mirror_title": "x86QW Content · ezQuake nightly 20260616-101233_a86996a",
      "mirror_notes": "Cliente ezQuake nightly 20260616-101233_a86996a preservado pela distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "ezquake",
      "version": "20260616-101233_a86996a",
      "channel": "nightly",
      "platform": "windows",
      "architecture": "x64",
      "filename": "20260616-101233_a86996a_ezquake.exe",
      "size": 10350080,
      "sha256": "b026fc062d6f0f80db1fae61bd82cbd83def4332e658214e548d84db31cabd44",
      "origin_url": "https://builds.quakeworld.nu/ezquake/snapshots/windows/x64/20260616-101233_a86996a_ezquake.exe",
      "license": "GPL-2.0-only",
      "license_url": "https://github.com/QW-Group/ezquake-source/blob/a86996a3d33dc1bc3fb15bfe7bcadd662b822557/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/ezquake-source/archive/a86996a3d33dc1bc3fb15bfe7bcadd662b822557.tar.gz"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ezquake-nightly-20260616-101233_a86996a/20260616-101233_a86996a_ezquake.exe",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ezquake/20260616-101233_a86996a/20260616-101233_a86996a_ezquake.exe"
      ],
      "distribution_path": "clients/ezquake/nightly/20260616-101233_a86996a/windows-x64/20260616-101233_a86996a_ezquake.exe",
      "mirror_title": "x86QW Content · ezQuake nightly 20260616-101233_a86996a",
      "mirror_notes": "Cliente ezQuake nightly 20260616-101233_a86996a preservado pela distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "ezquake",
      "version": "3.6.9",
      "channel": "stable",
      "platform": "linux",
      "architecture": "x86_64",
      "filename": "ezQuake-linux-x86_64.zip",
      "size": 22268939,
      "sha256": "6d5707bf9be1a8338441265f9bf03154d107488a4fed9eab4c989c29de6573ee",
      "origin_url": "https://github.com/QW-Group/ezquake-source/releases/download/3.6.9/ezQuake-linux-x86_64.zip",
      "license": "GPL-2.0-only",
      "license_url": "https://github.com/QW-Group/ezquake-source/blob/3.6.9/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/ezquake-source/archive/refs/tags/3.6.9.tar.gz"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ezquake-3.6.9/ezQuake-linux-x86_64.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ezquake/3.6.9/ezQuake-linux-x86_64.zip"
      ],
      "distribution_path": "clients/ezquake/stable/3.6.9/linux-x86_64/ezQuake-linux-x86_64.zip",
      "mirror_title": "x86QW Content · ezQuake stable 3.6.9",
      "mirror_notes": "Cliente ezQuake stable 3.6.9 preservado pela distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "ezquake",
      "version": "3.6.9",
      "channel": "stable",
      "platform": "macos",
      "architecture": "universal",
      "filename": "ezQuake-macOS-universal.zip",
      "size": 8560464,
      "sha256": "2ccea8f214c91e5fc92b5cb195c81ac584f75a551d11a58de56e5e7951eec7ed",
      "origin_url": "https://github.com/QW-Group/ezquake-source/releases/download/3.6.9/ezQuake-macOS-universal.zip",
      "license": "GPL-2.0-only",
      "license_url": "https://github.com/QW-Group/ezquake-source/blob/3.6.9/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/ezquake-source/archive/refs/tags/3.6.9.tar.gz"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ezquake-3.6.9/ezQuake-macOS-universal.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ezquake/3.6.9/ezQuake-macOS-universal.zip"
      ],
      "distribution_path": "clients/ezquake/stable/3.6.9/macos-universal/ezQuake-macOS-universal.zip",
      "mirror_title": "x86QW Content · ezQuake stable 3.6.9",
      "mirror_notes": "Cliente ezQuake stable 3.6.9 preservado pela distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "ezquake",
      "version": "3.6.9",
      "channel": "stable",
      "platform": "windows",
      "architecture": "x64",
      "filename": "ezQuake-windows-x64.zip",
      "size": 4135630,
      "sha256": "1814d2c9df12a732a5b2efb8720e67bb94094b422794e5f2550821f17a377f4d",
      "origin_url": "https://github.com/QW-Group/ezquake-source/releases/download/3.6.9/ezQuake-windows-x64.zip",
      "license": "GPL-2.0-only",
      "license_url": "https://github.com/QW-Group/ezquake-source/blob/3.6.9/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/ezquake-source/archive/refs/tags/3.6.9.tar.gz"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ezquake-3.6.9/ezQuake-windows-x64.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ezquake/3.6.9/ezQuake-windows-x64.zip"
      ],
      "distribution_path": "clients/ezquake/stable/3.6.9/windows-x64/ezQuake-windows-x64.zip",
      "mirror_title": "x86QW Content · ezQuake stable 3.6.9",
      "mirror_notes": "Cliente ezQuake stable 3.6.9 preservado pela distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "final-arena",
      "package": "final-arena",
      "version": "1.20+nquake.e4cb23d40aa2+x86qw.4",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "final-arena-1.20+nquake.e4cb23d40aa2+x86qw.4.zip",
      "size": 6984584,
      "sha256": "f21adf0634ef4ddb6e2c7910bd8741ea78e26795d10ebadda52085b7d8440742",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/final-arena-1.20/final-arena-1.20+nquake.e4cb23d40aa2+x86qw.4.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://www.gamers.org/pub/idgames2/planetquake/servers/arena/index.shtm",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
        "https://www.gamers.org/pub/idgames2/planetquake/servers/arena/fasrv12.zip",
        "https://www.gamers.org/pub/idgames2/planetquake/servers/arena/index.shtm"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/final-arena-1.20/final-arena-1.20+nquake.e4cb23d40aa2+x86qw.4.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/final-arena/1.20+nquake.e4cb23d40aa2+x86qw.4/final-arena-1.20+nquake.e4cb23d40aa2+x86qw.4.zip"
      ],
      "mirror_title": "x86QW Content · Final Arena 1.20+nquake.e4cb23d40aa2+x86qw.4",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "release_url": "https://www.gamers.org/pub/idgames2/planetquake/servers/arena/index.shtm",
      "release_notes": "Preserva o cliente oficial 1.20 byte a byte por meio do conteúdo nQuake, mantém temporariamente o gamecode derivado por Rakk porque sua fonte pública não foi localizada, arquiva cliente, servidor e fonte oficiais e aplica somente o perfil de compatibilidade x86QW com plano de teclas impresso ao entrar.",
      "upstream_version": "1.20"
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.0.zip",
      "size": 58767,
      "sha256": "9e9ca4cd531b9f71194ca943a9f284a56768d8c9e2d0c3308b85cab8702f330a",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.0/x86qw-installer-0.1.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.0/x86qw-installer-0.1.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.0/x86qw-installer-0.1.0.zip"
      ],
      "distribution_path": "installer/packages/0.1.0/x86qw-installer-0.1.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.0",
      "release_title": "x86QW Installer 0.1.0",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.0",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.1",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.1.zip",
      "size": 58816,
      "sha256": "7678f82f9b55f231256e8a1cc64928f9207894f5259f1b4fb4f02c03e83cf4df",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.1/x86qw-installer-0.1.1.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.1/x86qw-installer-0.1.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.1/x86qw-installer-0.1.1.zip"
      ],
      "distribution_path": "installer/packages/0.1.1/x86qw-installer-0.1.1.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.1",
      "release_title": "x86QW Installer 0.1.1",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.1",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.10",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.10.zip",
      "size": 66793,
      "sha256": "cd21d7ac8bb349076e325a20ff00c27132446aff3590521db84457cedbaf36e3",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.10/x86qw-installer-0.1.10.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.10/x86qw-installer-0.1.10.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.10/x86qw-installer-0.1.10.zip"
      ],
      "distribution_path": "installer/packages/0.1.10/x86qw-installer-0.1.10.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.10",
      "release_title": "x86QW Installer 0.1.10",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.10",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.11",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.11.zip",
      "size": 68012,
      "sha256": "7f33a56c24717e1a2d1e39fc5f2b3f2d4fca0c71dc416265ce8a125950e45ce1",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.11/x86qw-installer-0.1.11.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.11/x86qw-installer-0.1.11.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.11/x86qw-installer-0.1.11.zip"
      ],
      "distribution_path": "installer/packages/0.1.11/x86qw-installer-0.1.11.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.11",
      "release_title": "x86QW Installer 0.1.11",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.11",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.12",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.12.zip",
      "size": 68105,
      "sha256": "33a7ebc5fc507707d5beb931fb9523546cfc606709d2f0635c8ecac9ee301092",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.12/x86qw-installer-0.1.12.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.12/x86qw-installer-0.1.12.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.12/x86qw-installer-0.1.12.zip"
      ],
      "distribution_path": "installer/packages/0.1.12/x86qw-installer-0.1.12.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.12",
      "release_title": "x86QW Installer 0.1.12",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.12",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.13",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.13.zip",
      "size": 68134,
      "sha256": "27d7af17486cc5ac46edec4ffd49fbf7f2d03b484abbd6e0fd098301485d71df",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.13/x86qw-installer-0.1.13.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.13/x86qw-installer-0.1.13.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.13/x86qw-installer-0.1.13.zip"
      ],
      "distribution_path": "installer/packages/0.1.13/x86qw-installer-0.1.13.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.13",
      "release_title": "x86QW Installer 0.1.13",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.13",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.14",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.14.zip",
      "size": 68007,
      "sha256": "4aba32bbbe29c731932bdd46fe5e289460045f65256246c2fec89779d0f87d4c",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.14/x86qw-installer-0.1.14.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.14/x86qw-installer-0.1.14.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.14/x86qw-installer-0.1.14.zip"
      ],
      "distribution_path": "installer/packages/0.1.14/x86qw-installer-0.1.14.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.14",
      "release_title": "x86QW Installer 0.1.14",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.14",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.15",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.15.zip",
      "size": 68296,
      "sha256": "aab3d4b6526b885b3f1bdc1e9477d0c535c39871c8d5abdd588ec2a3db813f84",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.15/x86qw-installer-0.1.15.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.15/x86qw-installer-0.1.15.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.15/x86qw-installer-0.1.15.zip"
      ],
      "distribution_path": "installer/packages/0.1.15/x86qw-installer-0.1.15.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.15",
      "release_title": "x86QW Installer 0.1.15",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.15",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.19",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.19.zip",
      "size": 79368,
      "sha256": "5a7ca2c779219cf3bbb3eef985c23c060d9e602665df455c6f1ad891af2c807a",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.19/x86qw-installer-0.1.19.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.19/x86qw-installer-0.1.19.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.19/x86qw-installer-0.1.19.zip"
      ],
      "distribution_path": "installer/packages/0.1.19/x86qw-installer-0.1.19.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.19",
      "release_title": "x86QW Installer 0.1.19",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.19",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.2",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.2.zip",
      "size": 59565,
      "sha256": "0b93ae9e3dd3cf2d83ff584e22d7c0e7a3e779fd3654d27d7fc494c40390dbaa",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.2/x86qw-installer-0.1.2.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.2/x86qw-installer-0.1.2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.2/x86qw-installer-0.1.2.zip"
      ],
      "distribution_path": "installer/packages/0.1.2/x86qw-installer-0.1.2.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.2",
      "release_title": "x86QW Installer 0.1.2",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.2",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.20",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.20.zip",
      "size": 79915,
      "sha256": "d30a836693100869e72a56df3d14aa8715bf111a4f1350948f3d34be04134304",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.20/x86qw-installer-0.1.20.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.20/x86qw-installer-0.1.20.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.20/x86qw-installer-0.1.20.zip"
      ],
      "distribution_path": "installer/packages/0.1.20/x86qw-installer-0.1.20.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.20",
      "release_title": "x86QW Installer 0.1.20",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.20",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.21",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.21.zip",
      "size": 80124,
      "sha256": "39495f4098afbc4ecbdfbd102e4daf839168eb38a32b362c87776d704e91a888",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.21/x86qw-installer-0.1.21.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.21/x86qw-installer-0.1.21.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.21/x86qw-installer-0.1.21.zip"
      ],
      "distribution_path": "installer/packages/0.1.21/x86qw-installer-0.1.21.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.21",
      "release_title": "x86QW Installer 0.1.21",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.21",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.25",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.25.zip",
      "size": 82721,
      "sha256": "9c470dfc896cdb18294db51344b0b8a7aa8d982621d7489dbbcd8e916764ba0b",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.25/x86qw-installer-0.1.25.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.25/x86qw-installer-0.1.25.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.25/x86qw-installer-0.1.25.zip"
      ],
      "distribution_path": "installer/packages/0.1.25/x86qw-installer-0.1.25.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.25",
      "release_title": "x86QW Installer 0.1.25",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.25",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.3",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.3.zip",
      "size": 62577,
      "sha256": "e99bcd7b19a0a47058c652323ff31afcab4c4292de3c72d311970b1c8935b59f",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.3/x86qw-installer-0.1.3.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.3/x86qw-installer-0.1.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.3/x86qw-installer-0.1.3.zip"
      ],
      "distribution_path": "installer/packages/0.1.3/x86qw-installer-0.1.3.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.3",
      "release_title": "x86QW Installer 0.1.3",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.3",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.4",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.4.zip",
      "size": 62697,
      "sha256": "1751136be1c074f84590bf8f3b0aeccdb3ac041268b789f440df0c6f9cc61757",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.4/x86qw-installer-0.1.4.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.4/x86qw-installer-0.1.4.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.4/x86qw-installer-0.1.4.zip"
      ],
      "distribution_path": "installer/packages/0.1.4/x86qw-installer-0.1.4.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.4",
      "release_title": "x86QW Installer 0.1.4",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.4",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.5",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.5.zip",
      "size": 62516,
      "sha256": "d2bf438a8cf77cf1f88022c5144538aeb42f1c99e61855f0c28c9d5cd65da631",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.5/x86qw-installer-0.1.5.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.5/x86qw-installer-0.1.5.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.5/x86qw-installer-0.1.5.zip"
      ],
      "distribution_path": "installer/packages/0.1.5/x86qw-installer-0.1.5.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.5",
      "release_title": "x86QW Installer 0.1.5",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.5",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.6",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.6.zip",
      "size": 63081,
      "sha256": "491da3c68f4db50b72652d2bd21ade90d69ced5e0f9442258afe1cda570bbc1a",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.6/x86qw-installer-0.1.6.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.6/x86qw-installer-0.1.6.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.6/x86qw-installer-0.1.6.zip"
      ],
      "distribution_path": "installer/packages/0.1.6/x86qw-installer-0.1.6.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.6",
      "release_title": "x86QW Installer 0.1.6",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.6",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.7",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.7.zip",
      "size": 64976,
      "sha256": "5d490ed3ac2679b1b8b1536e977990d889d1805a2237caffc2b74ebeaf7403a7",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.7/x86qw-installer-0.1.7.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.7/x86qw-installer-0.1.7.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.7/x86qw-installer-0.1.7.zip"
      ],
      "distribution_path": "installer/packages/0.1.7/x86qw-installer-0.1.7.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.7",
      "release_title": "x86QW Installer 0.1.7",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.7",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.8",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.8.zip",
      "size": 64523,
      "sha256": "2490746681d99fe988be18a0713f1f13a92cc0799ab110aeee2f7e7e13d1d0e2",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.8/x86qw-installer-0.1.8.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.8/x86qw-installer-0.1.8.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.8/x86qw-installer-0.1.8.zip"
      ],
      "distribution_path": "installer/packages/0.1.8/x86qw-installer-0.1.8.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.8",
      "release_title": "x86QW Installer 0.1.8",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.8",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.1.9",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.1.9.zip",
      "size": 66480,
      "sha256": "d3193afbb6ccfe0202e3070dfac2a6839419dde83231cb611a33ddebf47a2027",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.9/x86qw-installer-0.1.9.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.1.9/x86qw-installer-0.1.9.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.1.9/x86qw-installer-0.1.9.zip"
      ],
      "distribution_path": "installer/packages/0.1.9/x86qw-installer-0.1.9.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.1.9",
      "release_title": "x86QW Installer 0.1.9",
      "release_notes": "Bootstrap autocontido do instalador público x86QW.",
      "mirror_title": "x86QW Installer 0.1.9",
      "mirror_notes": "Instalador público e atualizador da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.2.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.2.0.zip",
      "size": 100282,
      "sha256": "f4ff969534dc0efeb8c517db1d36fb6b1227a182c59d67bc0372178c857fb870",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.0/x86qw-installer-0.2.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.0/x86qw-installer-0.2.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.2.0/x86qw-installer-0.2.0.zip"
      ],
      "distribution_path": "installer/packages/0.2.0/x86qw-installer-0.2.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.2.0",
      "release_title": "x86QW Installer 0.2.0",
      "release_notes": "# x86QW 0.2.0\n\nRelease de consolidação da plataforma atual, sem incorporar novos runtimes,\njogos, mods ou mapas.\n\n## Destaques\n\n- CI contínua em Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- gate manual e protegido para publicação, com verificação integral e Git LFS;\n- validação segura e independente do sistema para membros PK3/ZIP;\n- senhas por prompt oculto ou arquivo privado, com redaction;\n- preflight, readiness, encerramento coordenado e recuperação de sessões;\n- catálogos declarativos de capacidades, runtimes, jogos e compatibilidade;\n- `play` e `host` sem instalação de payload permanente;\n- dependências independentes para MVDSV, QTV e QWFWD;\n- documentação, site, roadmaps e diagrama sincronizados com o catálogo.\n\n## Migração\n\nInstalações com `.install/state.json` no formato 1 são migradas de forma\nunilateral para o formato 2 durante `install`, `update`, `upgrade` ou `repair`.\nA seleção customizada, os componentes existentes, os fingerprints históricos e\nos arquivos pessoais são preservados. O formato 1 continua aceito durante esta\nlinha de compatibilidade.\n\n## Compatibilidade\n\nPermanecem suportados os cinco jogos atuais, stable e nightly lado a lado, os\nlaunchers shell e Windows e os comandos públicos existentes. MVDSV, QTV e\nQWFWD continuam disponíveis somente nas plataformas que possuem artefato\ndeclarado; serviços não são anunciados para macOS Intel.",
      "mirror_title": "x86QW Installer 0.2.0",
      "mirror_notes": "# x86QW 0.2.0\n\nRelease de consolidação da plataforma atual, sem incorporar novos runtimes,\njogos, mods ou mapas.\n\n## Destaques\n\n- CI contínua em Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- gate manual e protegido para publicação, com verificação integral e Git LFS;\n- validação segura e independente do sistema para membros PK3/ZIP;\n- senhas por prompt oculto ou arquivo privado, com redaction;\n- preflight, readiness, encerramento coordenado e recuperação de sessões;\n- catálogos declarativos de capacidades, runtimes, jogos e compatibilidade;\n- `play` e `host` sem instalação de payload permanente;\n- dependências independentes para MVDSV, QTV e QWFWD;\n- documentação, site, roadmaps e diagrama sincronizados com o catálogo.\n\n## Migração\n\nInstalações com `.install/state.json` no formato 1 são migradas de forma\nunilateral para o formato 2 durante `install`, `update`, `upgrade` ou `repair`.\nA seleção customizada, os componentes existentes, os fingerprints históricos e\nos arquivos pessoais são preservados. O formato 1 continua aceito durante esta\nlinha de compatibilidade.\n\n## Compatibilidade\n\nPermanecem suportados os cinco jogos atuais, stable e nightly lado a lado, os\nlaunchers shell e Windows e os comandos públicos existentes. MVDSV, QTV e\nQWFWD continuam disponíveis somente nas plataformas que possuem artefato\ndeclarado; serviços não são anunciados para macOS Intel.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.2.1",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.2.1.zip",
      "size": 106643,
      "sha256": "269524666c5b89479c18b62abafa093e1a4e99b13302e7c5537354e82dcd746b",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.1/x86qw-installer-0.2.1.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.1/x86qw-installer-0.2.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.2.1/x86qw-installer-0.2.1.zip"
      ],
      "distribution_path": "installer/packages/0.2.1/x86qw-installer-0.2.1.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.2.1",
      "release_title": "x86QW Installer 0.2.1",
      "release_notes": "# x86QW 0.2.1\n\nRelease corretiva do lifecycle e das superfícies de manutenção da plataforma\nconsolidada em `0.2.0`.\n\n## Ajustes\n\n- lock atômico de uma stack por instalação, adquirido antes da recuperação;\n- identidade de controlador e filhos resistente a reutilização de PID;\n- encerramento conservador de órfãos confirmados e preservação de identidade\n  divergente ou inconclusiva;\n- remoção lógica obrigatória das configurações efêmeras sensíveis;\n- upstream QTV coerente com binds IPv4/IPv6 e alerta independente para HTTP\n  exposto;\n- `repair` reconhecido nos launchers, com argumentos ilimitados no Windows;\n- repair de ezQuake stable/nightly, permissões, preparação macOS e metadata\n  parcial sem downgrade ou alteração de configuração pessoal;\n- gate de whitespace aplicado ao intervalo realmente commitado no PR/push;\n- capacidades de instalação limitadas ao conjunto explicitamente habilitado;\n- `compatibility.json` como fonte de verdade para relações de runtime, jogo,\n  serviço e protocolo.\n\n## Compatibilidade e limites\n\nOs comandos, perfis, cinco jogos, stable/nightly e formatos de estado 1 e 2 são\npreservados. Não há runtime, engine, jogo, mod ou mapa novo. Smokes gráficos e\nsmokes nativos de rede que já eram manuais continuam sujeitos a validação\nseparada. A versão `0.2.0` permanece imutável no histórico.",
      "mirror_title": "x86QW Installer 0.2.1",
      "mirror_notes": "# x86QW 0.2.1\n\nRelease corretiva do lifecycle e das superfícies de manutenção da plataforma\nconsolidada em `0.2.0`.\n\n## Ajustes\n\n- lock atômico de uma stack por instalação, adquirido antes da recuperação;\n- identidade de controlador e filhos resistente a reutilização de PID;\n- encerramento conservador de órfãos confirmados e preservação de identidade\n  divergente ou inconclusiva;\n- remoção lógica obrigatória das configurações efêmeras sensíveis;\n- upstream QTV coerente com binds IPv4/IPv6 e alerta independente para HTTP\n  exposto;\n- `repair` reconhecido nos launchers, com argumentos ilimitados no Windows;\n- repair de ezQuake stable/nightly, permissões, preparação macOS e metadata\n  parcial sem downgrade ou alteração de configuração pessoal;\n- gate de whitespace aplicado ao intervalo realmente commitado no PR/push;\n- capacidades de instalação limitadas ao conjunto explicitamente habilitado;\n- `compatibility.json` como fonte de verdade para relações de runtime, jogo,\n  serviço e protocolo.\n\n## Compatibilidade e limites\n\nOs comandos, perfis, cinco jogos, stable/nightly e formatos de estado 1 e 2 são\npreservados. Não há runtime, engine, jogo, mod ou mapa novo. Smokes gráficos e\nsmokes nativos de rede que já eram manuais continuam sujeitos a validação\nseparada. A versão `0.2.0` permanece imutável no histórico.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.2.2",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.2.2.zip",
      "size": 112934,
      "sha256": "c14a2e06887272e4d04b7e1da7a6e6afb4015bc330325aa2b02066dc164a1734",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.2/x86qw-installer-0.2.2.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.2/x86qw-installer-0.2.2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.2.2/x86qw-installer-0.2.2.zip"
      ],
      "distribution_path": "installer/packages/0.2.2/x86qw-installer-0.2.2.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.2.2",
      "release_title": "x86QW Installer 0.2.2",
      "release_notes": "# x86QW 0.2.2\n\nRelease corretiva da concorrência e da finalização de instalações da linha\n`0.2.x`.\n\n## Correções\n\n- lock único por instalação para stacks e todas as operações mutáveis;\n- compatibilidade de leitura com locks de formato 1 da `0.2.1`;\n- recuperação bloqueada por controlador de journal vivo ou inconclusivo;\n- temporários sensíveis sem hash e sem remoção recursiva;\n- liberação de lock tentada independentemente das demais etapas de limpeza;\n- encerramento do grupo POSIX completo e Job Object no Windows;\n- reparos locais de permissão e preparação macOS disponíveis offline;\n- testes de concorrência, ausência de lock, PID reutilizado, descendentes e\n  falhas injetadas na finalização.\n\n## Compatibilidade\n\nOs comandos públicos, perfis, stable/nightly, estados v1/v2, cinco jogos,\ngameplay, configurações pessoais e bundles existentes permanecem compatíveis.\nA `0.2.1` continua imutável no histórico.\n\n## Validação\n\n- validação integral e Git LFS;\n- testes de manutenção e site;\n- matriz Ubuntu, macOS e Windows em Python 3.10 e versão recente;\n- dry-run do Worker;\n- revisão do bundle imutável e dos hashes;\n- gate protegido e aprovação humana separados para publicar.",
      "mirror_title": "x86QW Installer 0.2.2",
      "mirror_notes": "# x86QW 0.2.2\n\nRelease corretiva da concorrência e da finalização de instalações da linha\n`0.2.x`.\n\n## Correções\n\n- lock único por instalação para stacks e todas as operações mutáveis;\n- compatibilidade de leitura com locks de formato 1 da `0.2.1`;\n- recuperação bloqueada por controlador de journal vivo ou inconclusivo;\n- temporários sensíveis sem hash e sem remoção recursiva;\n- liberação de lock tentada independentemente das demais etapas de limpeza;\n- encerramento do grupo POSIX completo e Job Object no Windows;\n- reparos locais de permissão e preparação macOS disponíveis offline;\n- testes de concorrência, ausência de lock, PID reutilizado, descendentes e\n  falhas injetadas na finalização.\n\n## Compatibilidade\n\nOs comandos públicos, perfis, stable/nightly, estados v1/v2, cinco jogos,\ngameplay, configurações pessoais e bundles existentes permanecem compatíveis.\nA `0.2.1` continua imutável no histórico.\n\n## Validação\n\n- validação integral e Git LFS;\n- testes de manutenção e site;\n- matriz Ubuntu, macOS e Windows em Python 3.10 e versão recente;\n- dry-run do Worker;\n- revisão do bundle imutável e dos hashes;\n- gate protegido e aprovação humana separados para publicar.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.2.3",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.2.3.zip",
      "size": 113147,
      "sha256": "05038b71dbd3d6c881986e90e6fb70a0be4aa5a5d6baedd4a59833ca4ace91c2",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.3/x86qw-installer-0.2.3.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.2.3/x86qw-installer-0.2.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.2.3/x86qw-installer-0.2.3.zip"
      ],
      "distribution_path": "installer/packages/0.2.3/x86qw-installer-0.2.3.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.2.3",
      "release_title": "x86QW Installer 0.2.3",
      "release_notes": "# x86QW 0.2.3\n\nRelease corretiva da compatibilidade de journals de sessão da linha `0.2.x`.\n\n## Correção\n\n- aceita journals limpos escritos antes da introdução dos campos\n  `controller`, `type` e `sensitive`;\n- normaliza o formato legado somente em memória, sem reescrever um journal\n  limpo durante `update`, `upgrade` ou outra operação;\n- trata temporários legados sem classificação como sensíveis quando uma\n  recuperação real for necessária;\n- remove hashes de temporários legados classificados como sensíveis antes de\n  persistir o resultado da recuperação.\n\n## Compatibilidade\n\nA correção preserva journals, configurações pessoais, comandos, perfis,\nstable/nightly, jogos e gameplay. Os bundles `0.2.2` e anteriores permanecem\nimutáveis.\n\n## Validação\n\n- reprodução com um journal real criado pela versão anterior;\n- regressão para journal legado limpo sem consulta ao PID registrado;\n- recuperação segura de temporário legado potencialmente sensível;\n- validação integral e matriz Ubuntu, macOS e Windows.",
      "mirror_title": "x86QW Installer 0.2.3",
      "mirror_notes": "# x86QW 0.2.3\n\nRelease corretiva da compatibilidade de journals de sessão da linha `0.2.x`.\n\n## Correção\n\n- aceita journals limpos escritos antes da introdução dos campos\n  `controller`, `type` e `sensitive`;\n- normaliza o formato legado somente em memória, sem reescrever um journal\n  limpo durante `update`, `upgrade` ou outra operação;\n- trata temporários legados sem classificação como sensíveis quando uma\n  recuperação real for necessária;\n- remove hashes de temporários legados classificados como sensíveis antes de\n  persistir o resultado da recuperação.\n\n## Compatibilidade\n\nA correção preserva journals, configurações pessoais, comandos, perfis,\nstable/nightly, jogos e gameplay. Os bundles `0.2.2` e anteriores permanecem\nimutáveis.\n\n## Validação\n\n- reprodução com um journal real criado pela versão anterior;\n- regressão para journal legado limpo sem consulta ao PID registrado;\n- recuperação segura de temporário legado potencialmente sensível;\n- validação integral e matriz Ubuntu, macOS e Windows.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.3.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.3.0.zip",
      "size": 114585,
      "sha256": "929a2a9a57286945454b3e84e7d84ef864b4fba235040bdfeeab154f6eae2e22",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.3.0/x86qw-installer-0.3.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.3.0/x86qw-installer-0.3.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.3.0/x86qw-installer-0.3.0.zip"
      ],
      "distribution_path": "installer/packages/0.3.0/x86qw-installer-0.3.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.3.0",
      "release_title": "x86QW Installer 0.3.0",
      "release_notes": "# x86QW 0.3.0\n\nRelease de bootstrap limpo e reorganização do layout instalado.\n\n## Layout\n\n- substitui `.install/` por `.x86qw/` como plano de controle específico do\n  produto;\n- elimina o depósito instalado `_x86qw/`;\n- instala MVDSV na raiz operacional, QTV em `qtv/`, QWFWD em `qwfwd/` e as\n  licenças em `docs/licenses/`;\n- instala somente o executável da plataforma selecionada;\n- mantém `BUILD.json`, fontes, patches e outras variantes somente na camada de\n  manutenção.\n\n## Compatibilidade\n\nEsta linha usa bootstrap limpo e não migra o layout 0.2.x. Uma instalação\nanterior pode ser mantida em outro diretório apenas para consulta. Jogos,\ngameplay, perfis, stable/nightly e comandos públicos permanecem inalterados.\n\n## Validação\n\n- pacote e zipapp determinísticos;\n- bootstrap completo em destino vazio;\n- asserção de ausência de `_x86qw/`, `platforms/` e `BUILD.json` no destino;\n- matriz Ubuntu, macOS e Windows;\n- publicação explícita após aprovação e verificação do bootstrap público.",
      "mirror_title": "x86QW Installer 0.3.0",
      "mirror_notes": "# x86QW 0.3.0\n\nRelease de bootstrap limpo e reorganização do layout instalado.\n\n## Layout\n\n- substitui `.install/` por `.x86qw/` como plano de controle específico do\n  produto;\n- elimina o depósito instalado `_x86qw/`;\n- instala MVDSV na raiz operacional, QTV em `qtv/`, QWFWD em `qwfwd/` e as\n  licenças em `docs/licenses/`;\n- instala somente o executável da plataforma selecionada;\n- mantém `BUILD.json`, fontes, patches e outras variantes somente na camada de\n  manutenção.\n\n## Compatibilidade\n\nEsta linha usa bootstrap limpo e não migra o layout 0.2.x. Uma instalação\nanterior pode ser mantida em outro diretório apenas para consulta. Jogos,\ngameplay, perfis, stable/nightly e comandos públicos permanecem inalterados.\n\n## Validação\n\n- pacote e zipapp determinísticos;\n- bootstrap completo em destino vazio;\n- asserção de ausência de `_x86qw/`, `platforms/` e `BUILD.json` no destino;\n- matriz Ubuntu, macOS e Windows;\n- publicação explícita após aprovação e verificação do bootstrap público.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.4.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.4.0.zip",
      "size": 123109,
      "sha256": "422807bdef12f93e606352d9406c716cf953f383b2305b21d999e7fe099f4230",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.4.0/x86qw-installer-0.4.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.4.0/x86qw-installer-0.4.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.4.0/x86qw-installer-0.4.0.zip"
      ],
      "distribution_path": "installer/packages/0.4.0/x86qw-installer-0.4.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.4.0",
      "release_title": "x86QW Installer 0.4.0",
      "release_notes": "# x86QW 0.4.0\n\nRelease da navegação moderna e orientada a tarefas da CLI x86QW.\n\n## Navegação\n\n- abre um menu principal ao executar `x86qw.sh` ou `x86qw.cmd` sem argumentos;\n- oferece navegação por setas, `j`/`k`, Enter e Esc;\n- permite buscar jogos, modos, mapas, versões, componentes e servidores com `/`;\n- mantém fallback numerado em ambientes sem navegação interativa;\n- adiciona multisseleção de componentes com Espaço.\n\n## Gameplay e serviços\n\n- apresenta opções específicas de Race, CTF e Frogbots somente quando aplicáveis;\n- orienta a configuração de MVDSV, QTV e QWFWD por menus contextuais;\n- mantém as opções seguras de senha e os preflights já existentes;\n- trata cancelamento sem iniciar jogos ou serviços.\n\n## Compatibilidade\n\nTodos os comandos e flags públicos continuam disponíveis para automação e uso\navançado. Jogos, gameplay, perfis, stable/nightly, PAKs e layout instalado não\nforam alterados.\n\n## Validação\n\n- 284 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- Git LFS, catálogo, zipapp e bundle determinístico;\n- smoke TTY de navegação, busca e cancelamento;\n- dry-run do Worker e publicação explícita após aprovação.",
      "mirror_title": "x86QW Installer 0.4.0",
      "mirror_notes": "# x86QW 0.4.0\n\nRelease da navegação moderna e orientada a tarefas da CLI x86QW.\n\n## Navegação\n\n- abre um menu principal ao executar `x86qw.sh` ou `x86qw.cmd` sem argumentos;\n- oferece navegação por setas, `j`/`k`, Enter e Esc;\n- permite buscar jogos, modos, mapas, versões, componentes e servidores com `/`;\n- mantém fallback numerado em ambientes sem navegação interativa;\n- adiciona multisseleção de componentes com Espaço.\n\n## Gameplay e serviços\n\n- apresenta opções específicas de Race, CTF e Frogbots somente quando aplicáveis;\n- orienta a configuração de MVDSV, QTV e QWFWD por menus contextuais;\n- mantém as opções seguras de senha e os preflights já existentes;\n- trata cancelamento sem iniciar jogos ou serviços.\n\n## Compatibilidade\n\nTodos os comandos e flags públicos continuam disponíveis para automação e uso\navançado. Jogos, gameplay, perfis, stable/nightly, PAKs e layout instalado não\nforam alterados.\n\n## Validação\n\n- 284 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- Git LFS, catálogo, zipapp e bundle determinístico;\n- smoke TTY de navegação, busca e cancelamento;\n- dry-run do Worker e publicação explícita após aprovação.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.4.1",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.4.1.zip",
      "size": 123563,
      "sha256": "0195c56c55f7ffc532694ec31fb1a1ddbd75a7ef005ac8ee8efaf59384a4cce0",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.4.1/x86qw-installer-0.4.1.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.4.1/x86qw-installer-0.4.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.4.1/x86qw-installer-0.4.1.zip"
      ],
      "distribution_path": "installer/packages/0.4.1/x86qw-installer-0.4.1.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.4.1",
      "release_title": "x86QW Installer 0.4.1",
      "release_notes": "# x86QW 0.4.1\n\nRelease corretiva da navegação interativa da CLI x86QW.\n\n## Teclado\n\n- interpreta sequências CSI e SS3 completas produzidas pelas teclas de direção;\n- preserva teclas já enfileiradas, inclusive Enter logo após uma seta;\n- ignora sequências de terminal desconhecidas sem convertê-las em cancelamento;\n- mantém navegação por setas, `j`/`k`, Enter, Esc e fallback numerado.\n\n## Apresentação\n\n- colore a linha inteira da opção selecionada em terminais compatíveis;\n- alinha itens e descrições com `|` como divisor;\n- mostra a explicação da opção selecionada na própria linha;\n- preserva o marcador textual `›` quando cores estiverem desativadas;\n- torna explícita a consequência das respostas `Sim` e `Não` nas confirmações.\n\n## Compatibilidade\n\nTodos os comandos e flags públicos continuam disponíveis. Jogos, gameplay,\nperfis, runtimes, PAKs e layout instalado não foram alterados.\n\n## Validação\n\n- 289 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- regressão PTY para setas, Enter enfileirado, cores, alinhamento e cancelamento;\n- Git LFS, catálogo, zipapp e bundle determinístico;\n- dry-run do Worker e publicação explícita após aprovação.",
      "mirror_title": "x86QW Installer 0.4.1",
      "mirror_notes": "# x86QW 0.4.1\n\nRelease corretiva da navegação interativa da CLI x86QW.\n\n## Teclado\n\n- interpreta sequências CSI e SS3 completas produzidas pelas teclas de direção;\n- preserva teclas já enfileiradas, inclusive Enter logo após uma seta;\n- ignora sequências de terminal desconhecidas sem convertê-las em cancelamento;\n- mantém navegação por setas, `j`/`k`, Enter, Esc e fallback numerado.\n\n## Apresentação\n\n- colore a linha inteira da opção selecionada em terminais compatíveis;\n- alinha itens e descrições com `|` como divisor;\n- mostra a explicação da opção selecionada na própria linha;\n- preserva o marcador textual `›` quando cores estiverem desativadas;\n- torna explícita a consequência das respostas `Sim` e `Não` nas confirmações.\n\n## Compatibilidade\n\nTodos os comandos e flags públicos continuam disponíveis. Jogos, gameplay,\nperfis, runtimes, PAKs e layout instalado não foram alterados.\n\n## Validação\n\n- 289 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- regressão PTY para setas, Enter enfileirado, cores, alinhamento e cancelamento;\n- Git LFS, catálogo, zipapp e bundle determinístico;\n- dry-run do Worker e publicação explícita após aprovação.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.4.2",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.4.2.zip",
      "size": 124242,
      "sha256": "2458a34e50591fc7f1b540d81604977239315b0b1b15b663ca09924cb7014683",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.4.2/x86qw-installer-0.4.2.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.4.2/x86qw-installer-0.4.2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.4.2/x86qw-installer-0.4.2.zip"
      ],
      "distribution_path": "installer/packages/0.4.2/x86qw-installer-0.4.2.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.4.2",
      "release_title": "x86QW Installer 0.4.2",
      "release_notes": "# x86QW 0.4.2\n\nRelease corretiva dos modos locais KTX e da inicialização de Frogbots.\n\n## Modos KTX\n\n- preserva corpos compostos de aliases até a entrada local no servidor;\n- instala somente o evento de entrada correspondente ao usermode escolhido;\n- abre os 24 modos declarados, incluindo as sete variações oficiais;\n- conclui o perfil Practice na primeira entrada, sem aguardar uma recarga que\n  não ocorre;\n- evita conflito de propriedade das cvars Frogbot no ThunderWalker ToT.\n\n## Frogbots\n\n- adiciona automaticamente o bot escolhido nos 22 modos compatíveis;\n- aplica quantidade, habilidade, equipe, arma e vida somente depois que o KTX\n  confirma a conexão local;\n- completa automaticamente o elenco fixo de cada modo e distribui os bots pelas\n  equipes declaradas: `3on3` usa duas equipes de três e `2on2on2` usa três\n  equipes de dois;\n- mantém CTF e Race sem bots, conforme o contrato do KTX 1.47.\n- sorteia a habilidade de cada bot independentemente quando solicitado;\n- oferece nomes KTX Default, One Piece x86QW aleatório e lista pessoal;\n- preserva as skins e cores relacionais padrão do KTX também durante sessões\n  Frogbot, sem sobrescrita visual pelo launcher.\n\n## Interface e controles\n\n- numera todas as opções do menu, alinha descrições em uma coluna cinza e\n  mantém o detalhe do item selecionado na mesma linha;\n- padroniza a legenda em `↑↓ navegar`, `→/Enter selecionar`, `← voltar` e\n  `Esc Sair`;\n- separa voltar ao pai com seta esquerda de encerrar o fluxo com `Esc`;\n- imprime por jogo e por modo apenas ações realmente vinculadas a teclas;\n- organiza a camada KTX mantida pelo projeto em `catalog/`, `config/`,\n  `runtime/`, `source/` e `policy/`, sem alterar a árvore instalada.\n\n## Compatibilidade\n\nComandos, perfis, runtimes, mapas, PAKs e configurações pessoais permanecem\ncompatíveis. A extensão QVM do KTX continua mínima, reproduzível e inerte sem\nas cvars x86QW.\n\n## Validação\n\n- 324 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- bootstrap PowerShell preserva a sessão que executa `irm ... | iex` e mantém\n  visível o código devolvido pelo instalador Python;\n- smoke real dos 24 modos no ezQuake 3.6.9 em janela `1280x720` no macOS;\n- Frogbot confirmado nos 22 modos compatíveis;\n- configurações pessoais preservadas e nenhum processo ou log residual;\n- Git LFS, catálogo, zipapp e bundles determinísticos.",
      "mirror_title": "x86QW Installer 0.4.2",
      "mirror_notes": "# x86QW 0.4.2\n\nRelease corretiva dos modos locais KTX e da inicialização de Frogbots.\n\n## Modos KTX\n\n- preserva corpos compostos de aliases até a entrada local no servidor;\n- instala somente o evento de entrada correspondente ao usermode escolhido;\n- abre os 24 modos declarados, incluindo as sete variações oficiais;\n- conclui o perfil Practice na primeira entrada, sem aguardar uma recarga que\n  não ocorre;\n- evita conflito de propriedade das cvars Frogbot no ThunderWalker ToT.\n\n## Frogbots\n\n- adiciona automaticamente o bot escolhido nos 22 modos compatíveis;\n- aplica quantidade, habilidade, equipe, arma e vida somente depois que o KTX\n  confirma a conexão local;\n- completa automaticamente o elenco fixo de cada modo e distribui os bots pelas\n  equipes declaradas: `3on3` usa duas equipes de três e `2on2on2` usa três\n  equipes de dois;\n- mantém CTF e Race sem bots, conforme o contrato do KTX 1.47.\n- sorteia a habilidade de cada bot independentemente quando solicitado;\n- oferece nomes KTX Default, One Piece x86QW aleatório e lista pessoal;\n- preserva as skins e cores relacionais padrão do KTX também durante sessões\n  Frogbot, sem sobrescrita visual pelo launcher.\n\n## Interface e controles\n\n- numera todas as opções do menu, alinha descrições em uma coluna cinza e\n  mantém o detalhe do item selecionado na mesma linha;\n- padroniza a legenda em `↑↓ navegar`, `→/Enter selecionar`, `← voltar` e\n  `Esc Sair`;\n- separa voltar ao pai com seta esquerda de encerrar o fluxo com `Esc`;\n- imprime por jogo e por modo apenas ações realmente vinculadas a teclas;\n- organiza a camada KTX mantida pelo projeto em `catalog/`, `config/`,\n  `runtime/`, `source/` e `policy/`, sem alterar a árvore instalada.\n\n## Compatibilidade\n\nComandos, perfis, runtimes, mapas, PAKs e configurações pessoais permanecem\ncompatíveis. A extensão QVM do KTX continua mínima, reproduzível e inerte sem\nas cvars x86QW.\n\n## Validação\n\n- 324 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- bootstrap PowerShell preserva a sessão que executa `irm ... | iex` e mantém\n  visível o código devolvido pelo instalador Python;\n- smoke real dos 24 modos no ezQuake 3.6.9 em janela `1280x720` no macOS;\n- Frogbot confirmado nos 22 modos compatíveis;\n- configurações pessoais preservadas e nenhum processo ou log residual;\n- Git LFS, catálogo, zipapp e bundles determinísticos.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.5.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.5.0.zip",
      "size": 132652,
      "sha256": "79ce5e2dcfdf2e3f0c3d03c79c34b7b4ee6ec28408ff6c298e8b7b8159ab352a",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.5.0/x86qw-installer-0.5.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.5.0/x86qw-installer-0.5.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.5.0/x86qw-installer-0.5.0.zip"
      ],
      "distribution_path": "installer/packages/0.5.0/x86qw-installer-0.5.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.5.0",
      "release_title": "x86QW Installer 0.5.0",
      "release_notes": "# x86QW 0.5.0\n\nRelease funcional dos novos menus, perfis declarativos de Frogbots e controles\ncontextuais dos cinco jogos atuais.\n\n## Interface\n\n- organiza os menus por tarefas, numera todas as opções e mantém descrições\n  alinhadas na mesma linha;\n- usa setas e Enter para navegar, seta esquerda para voltar ao menu pai e Esc\n  para sair do fluxo inteiro;\n- corrige a leitura de sequências de setas em terminais interativos;\n- preserva confirmação automática com `--yes` e o fallback numerado.\n\n## KTX e Frogbots\n\n- reúne catálogo, configuração, runtime, fontes e política em contextos\n  separados dentro do componente KTX;\n- oferece nomes `KTX Default`, `x86QW aleatório` e lista pessoal editável;\n- aplica nomes e habilidades aleatórias sem substituir skins, cores ou equipes\n  controladas pelo KTX;\n- completa o elenco conforme cada usermode, inclusive três equipes nos modos\n  `2on2on2`, `3on3on3` e `4on4on4`;\n- carrega os 24 modos declarados e adiciona os bots escolhidos depois da entrada\n  local no servidor;\n- imprime um plano de teclas contextual e vincula F12 para saída direta nos\n  cinco jogos atuais.\n\n## Bootstrap e compatibilidade\n\n- o bootstrap PowerShell devolve o código do instalador sem encerrar a sessão\n  usada por `irm ... | iex`;\n- preserva comandos públicos, perfis, stable/nightly, PAKs, mapas, runtimes e\n  configurações pessoais;\n- publica novas revisões imutáveis de KTX, Final Arena, Pro-X, Team Fortress e\n  Total Destruction 2 sem alterar os pacotes anteriores.\n\n## Validação\n\n- 326 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- smoke real em janela do KTX 4on4 com sete Frogbots no macOS;\n- F12 exercitado em KTX, Final Arena, Pro-X, Team Fortress e TD2;\n- Git LFS, catálogo, zipapp, pacotes e site validados antes da publicação.",
      "mirror_title": "x86QW Installer 0.5.0",
      "mirror_notes": "# x86QW 0.5.0\n\nRelease funcional dos novos menus, perfis declarativos de Frogbots e controles\ncontextuais dos cinco jogos atuais.\n\n## Interface\n\n- organiza os menus por tarefas, numera todas as opções e mantém descrições\n  alinhadas na mesma linha;\n- usa setas e Enter para navegar, seta esquerda para voltar ao menu pai e Esc\n  para sair do fluxo inteiro;\n- corrige a leitura de sequências de setas em terminais interativos;\n- preserva confirmação automática com `--yes` e o fallback numerado.\n\n## KTX e Frogbots\n\n- reúne catálogo, configuração, runtime, fontes e política em contextos\n  separados dentro do componente KTX;\n- oferece nomes `KTX Default`, `x86QW aleatório` e lista pessoal editável;\n- aplica nomes e habilidades aleatórias sem substituir skins, cores ou equipes\n  controladas pelo KTX;\n- completa o elenco conforme cada usermode, inclusive três equipes nos modos\n  `2on2on2`, `3on3on3` e `4on4on4`;\n- carrega os 24 modos declarados e adiciona os bots escolhidos depois da entrada\n  local no servidor;\n- imprime um plano de teclas contextual e vincula F12 para saída direta nos\n  cinco jogos atuais.\n\n## Bootstrap e compatibilidade\n\n- o bootstrap PowerShell devolve o código do instalador sem encerrar a sessão\n  usada por `irm ... | iex`;\n- preserva comandos públicos, perfis, stable/nightly, PAKs, mapas, runtimes e\n  configurações pessoais;\n- publica novas revisões imutáveis de KTX, Final Arena, Pro-X, Team Fortress e\n  Total Destruction 2 sem alterar os pacotes anteriores.\n\n## Validação\n\n- 326 testes de manutenção e quatro testes do site;\n- matriz Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- smoke real em janela do KTX 4on4 com sete Frogbots no macOS;\n- F12 exercitado em KTX, Final Arena, Pro-X, Team Fortress e TD2;\n- Git LFS, catálogo, zipapp, pacotes e site validados antes da publicação.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.5.1",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.5.1.zip",
      "size": 132652,
      "sha256": "eebbaee49443d310ad22d7a9246cfa77452a444b86048db90f527627065e5dd4",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.5.1/x86qw-installer-0.5.1.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.5.1/x86qw-installer-0.5.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.5.1/x86qw-installer-0.5.1.zip"
      ],
      "distribution_path": "installer/packages/0.5.1/x86qw-installer-0.5.1.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.5.1",
      "release_title": "x86QW Installer 0.5.1",
      "release_notes": "# x86QW 0.5.1\n\nCorreção do bootstrap público para instalações Windows sem um Python funcional.\n\n## PowerShell\n\n- testa uma versão real do Python antes de baixar o instalador;\n- aceita `py -3`, `python3` e `python`, nessa ordem;\n- rejeita o alias vazio da Microsoft Store em vez de terminar posteriormente\n  com o código `9009`;\n- exige Python 3.10 ou mais recente e apresenta um comando `winget` acionável\n  quando o requisito não está instalado;\n- mantém o bootstrap legível no Windows PowerShell antigo e restaura a\n  codificação da sessão ao terminar;\n- continua preservando a janela atual e o código de saída do instalador.\n\n## Compatibilidade\n\n- não altera gameplay, pacotes dos cinco jogos, runtimes, PAKs, perfis ou\n  configurações pessoais;\n- preserva integralmente o instalador imutável `0.5.0`.\n\n## Validação\n\n- cobre ausência de Python, falso alias da Microsoft Store, `py -3`, código de\n  saída e permanência da sessão PowerShell;\n- mantém a regressão multiplataforma e os contratos do site.",
      "mirror_title": "x86QW Installer 0.5.1",
      "mirror_notes": "# x86QW 0.5.1\n\nCorreção do bootstrap público para instalações Windows sem um Python funcional.\n\n## PowerShell\n\n- testa uma versão real do Python antes de baixar o instalador;\n- aceita `py -3`, `python3` e `python`, nessa ordem;\n- rejeita o alias vazio da Microsoft Store em vez de terminar posteriormente\n  com o código `9009`;\n- exige Python 3.10 ou mais recente e apresenta um comando `winget` acionável\n  quando o requisito não está instalado;\n- mantém o bootstrap legível no Windows PowerShell antigo e restaura a\n  codificação da sessão ao terminar;\n- continua preservando a janela atual e o código de saída do instalador.\n\n## Compatibilidade\n\n- não altera gameplay, pacotes dos cinco jogos, runtimes, PAKs, perfis ou\n  configurações pessoais;\n- preserva integralmente o instalador imutável `0.5.0`.\n\n## Validação\n\n- cobre ausência de Python, falso alias da Microsoft Store, `py -3`, código de\n  saída e permanência da sessão PowerShell;\n- mantém a regressão multiplataforma e os contratos do site.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.6.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.6.0.zip",
      "size": 148380,
      "sha256": "266a6c9967541ed0857fbbed2f834c920f89dda6738fb5bc43cd9aae5548580c",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.6.0/x86qw-installer-0.6.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.6.0/x86qw-installer-0.6.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.6.0/x86qw-installer-0.6.0.zip"
      ],
      "distribution_path": "installer/packages/0.6.0/x86qw-installer-0.6.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.6.0",
      "release_title": "x86QW Installer 0.6.0",
      "release_notes": "# x86QW 0.6.0\n\nRelease funcional do lifecycle de serviços em segundo plano e da revisão\nintegral dos menus do instalador.\n\n## Serviços\n\n- permite iniciar MVDSV, QTV e QWFWD em primeiro ou segundo plano;\n- adiciona visualização centralizada da stack ativa, seus endpoints e parâmetros\n  públicos;\n- permite solicitar o encerramento coordenado pelo menu ou por `status --stop`;\n- preserva senhas fora da linha de comando, do journal e da saída de status;\n- valida lock, identidade do controlador e journal antes de encerrar processos;\n- mantém logs privados da sessão em segundo plano e remove o lock ao finalizar.\n\n## Interface\n\n- mostra `x86qw.cmd` nos comandos equivalentes do Windows e `./x86qw.sh` em\n  macOS/Linux;\n- evita cortes no plano e no resultado de `update` em terminais estreitos;\n- mostra configurações, resumo e comando seguro antes de jogar ou hospedar;\n- mantém opções numeradas, descrições alinhadas e navegação consistente entre\n  menus pais;\n- inclui as ações de visualizar e encerrar serviços no agrupamento Serviços.\n\n## KTX e gameplay\n\n- mantém os 24 modos declarados e a composição de Frogbots conforme as regras\n  de cada usermode;\n- preserva skins, cores e equipes controladas pelo KTX;\n- mantém os planos de teclas contextuais e o encerramento direto por F12 nos\n  cinco jogos atuais;\n- não incorpora runtime, jogo, mod ou mapa novo.\n\n## Validação\n\n- 362 testes de manutenção e quatro testes do site;\n- smoke real de QTV e QWFWD em segundo plano no macOS, incluindo consulta e\n  encerramento coordenado;\n- matriz CI Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- catálogo, Git LFS, zipapp, bundle imutável e site validados antes da\n  publicação.",
      "mirror_title": "x86QW Installer 0.6.0",
      "mirror_notes": "# x86QW 0.6.0\n\nRelease funcional do lifecycle de serviços em segundo plano e da revisão\nintegral dos menus do instalador.\n\n## Serviços\n\n- permite iniciar MVDSV, QTV e QWFWD em primeiro ou segundo plano;\n- adiciona visualização centralizada da stack ativa, seus endpoints e parâmetros\n  públicos;\n- permite solicitar o encerramento coordenado pelo menu ou por `status --stop`;\n- preserva senhas fora da linha de comando, do journal e da saída de status;\n- valida lock, identidade do controlador e journal antes de encerrar processos;\n- mantém logs privados da sessão em segundo plano e remove o lock ao finalizar.\n\n## Interface\n\n- mostra `x86qw.cmd` nos comandos equivalentes do Windows e `./x86qw.sh` em\n  macOS/Linux;\n- evita cortes no plano e no resultado de `update` em terminais estreitos;\n- mostra configurações, resumo e comando seguro antes de jogar ou hospedar;\n- mantém opções numeradas, descrições alinhadas e navegação consistente entre\n  menus pais;\n- inclui as ações de visualizar e encerrar serviços no agrupamento Serviços.\n\n## KTX e gameplay\n\n- mantém os 24 modos declarados e a composição de Frogbots conforme as regras\n  de cada usermode;\n- preserva skins, cores e equipes controladas pelo KTX;\n- mantém os planos de teclas contextuais e o encerramento direto por F12 nos\n  cinco jogos atuais;\n- não incorpora runtime, jogo, mod ou mapa novo.\n\n## Validação\n\n- 362 testes de manutenção e quatro testes do site;\n- smoke real de QTV e QWFWD em segundo plano no macOS, incluindo consulta e\n  encerramento coordenado;\n- matriz CI Ubuntu, macOS e Windows com Python 3.10 e 3.13;\n- catálogo, Git LFS, zipapp, bundle imutável e site validados antes da\n  publicação.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.0",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.0.zip",
      "size": 155094,
      "sha256": "abdf43ef026d25b9eecae327a559ba81dcd65844e20412d8f367f12d91a6f4af",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.0/x86qw-installer-0.7.0.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.0/x86qw-installer-0.7.0.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.0/x86qw-installer-0.7.0.zip"
      ],
      "distribution_path": "installer/packages/0.7.0/x86qw-installer-0.7.0.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.0",
      "release_title": "x86QW Installer 0.7.0",
      "release_notes": "# x86QW 0.7.0\n\nRelease de consistência dos modos KTX e da integração Frogbot.\n\n## Modos e mapas\n\n- oferece somente mapas que possuam os recursos exigidos pelo modo selecionado:\n  rota Frogbot, rota Race ou entidade CTF;\n- mantém `3on3` como duas equipes de três jogadores e `2on2on2` como três\n  equipes de dois;\n- preserva `3v3` e `2v2v2` como aliases de linha de comando;\n- valida usermodes, configurações de entrada, comandos de ajuda e binds contra\n  o conteúdo real do KTX 1.47.\n\n## Frogbots\n\n- completa elencos fixos conforme a quantidade de jogadores e equipes de cada\n  usermode;\n- aplica habilidade aleatória independentemente a cada bot;\n- mantém perfis de nomes KTX, x86QW aleatório e lista pessoal;\n- corrige identidades repetidas entre aliados e adversários;\n- remove do QVM as antigas cvars experimentais de aparência: skins e cores\n  voltam a seguir integralmente o comportamento do KTX.\n\n## Integridade\n\n- recompila o QVM KTX 1.47 de maneira reproduzível e registra fontes, patches,\n  símbolos e hashes;\n- fortalece o verificador declarativo para detectar mapas, recursos, usermodes,\n  configurações ou comandos inconsistentes antes da publicação;\n- não incorpora runtime, jogo, mod ou mapa novo.\n\n## Validação\n\n- 373 testes de manutenção e quatro testes do site;\n- build determinístico do componente KTX;\n- smoke em janela no macOS com preenchimento de Frogbots, habilidade aleatória,\n  múltiplas equipes e encerramento por F12;\n- matriz CI Ubuntu, macOS e Windows com Python 3.10 e 3.13 obrigatória antes da\n  publicação.",
      "mirror_title": "x86QW Installer 0.7.0",
      "mirror_notes": "# x86QW 0.7.0\n\nRelease de consistência dos modos KTX e da integração Frogbot.\n\n## Modos e mapas\n\n- oferece somente mapas que possuam os recursos exigidos pelo modo selecionado:\n  rota Frogbot, rota Race ou entidade CTF;\n- mantém `3on3` como duas equipes de três jogadores e `2on2on2` como três\n  equipes de dois;\n- preserva `3v3` e `2v2v2` como aliases de linha de comando;\n- valida usermodes, configurações de entrada, comandos de ajuda e binds contra\n  o conteúdo real do KTX 1.47.\n\n## Frogbots\n\n- completa elencos fixos conforme a quantidade de jogadores e equipes de cada\n  usermode;\n- aplica habilidade aleatória independentemente a cada bot;\n- mantém perfis de nomes KTX, x86QW aleatório e lista pessoal;\n- corrige identidades repetidas entre aliados e adversários;\n- remove do QVM as antigas cvars experimentais de aparência: skins e cores\n  voltam a seguir integralmente o comportamento do KTX.\n\n## Integridade\n\n- recompila o QVM KTX 1.47 de maneira reproduzível e registra fontes, patches,\n  símbolos e hashes;\n- fortalece o verificador declarativo para detectar mapas, recursos, usermodes,\n  configurações ou comandos inconsistentes antes da publicação;\n- não incorpora runtime, jogo, mod ou mapa novo.\n\n## Validação\n\n- 373 testes de manutenção e quatro testes do site;\n- build determinístico do componente KTX;\n- smoke em janela no macOS com preenchimento de Frogbots, habilidade aleatória,\n  múltiplas equipes e encerramento por F12;\n- matriz CI Ubuntu, macOS e Windows com Python 3.10 e 3.13 obrigatória antes da\n  publicação.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.1",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.1.zip",
      "size": 157113,
      "sha256": "a0946ffcc8a4e1181dbc55ea08caf54691b18b12e901d12069eb2064b38c0d80",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.1/x86qw-installer-0.7.1.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.1/x86qw-installer-0.7.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.1/x86qw-installer-0.7.1.zip"
      ],
      "distribution_path": "installer/packages/0.7.1/x86qw-installer-0.7.1.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.1",
      "release_title": "x86QW Installer 0.7.1",
      "release_notes": "# x86QW 0.7.1\n\nRelease corretiva do bootstrap e dos launchers instalados.\n\n> Estado: publicada e verificada. A `0.7.1` é a versão `current`; o bundle e a\n> release `0.7.0` permanecem imutáveis no histórico.\n\nBundle: `x86qw-installer-0.7.1.zip` · 157113 bytes · SHA-256\n`a0946ffcc8a4e1181dbc55ea08caf54691b18b12e901d12069eb2064b38c0d80`.\n\n## Python\n\n- exige Python 3.10 ou mais recente antes de qualquer download ou mutação;\n- usa a mesma ordem determinística por plataforma em bootstrap e launcher;\n- gera o launcher com o executável Python realmente usado na instalação;\n- procura um fallback compatível caso esse runtime seja removido;\n- mantém paths com espaços/Unicode e argumentos ilimitados no Windows.\n\n## PowerShell\n\n- executa o bootstrap em escopo próprio sem abrir outro processo ou encerrar a\n  sessão usada por `irm ... | iex`;\n- restaura preferências e codificações do chamador, sem vazar variáveis\n  internas;\n- preserva como efeito global intencional somente o código do instalador em\n  `$LASTEXITCODE`;\n- passou na evidência nativa do Windows PowerShell 5.1.\n\n## Integridade\n\n- calcula o SHA-256 do bundle em streaming no bootstrap Unix;\n- adiciona guarda de versão ao zipapp antes de carregar o gerenciador;\n- preserva integralmente o bundle e a release `0.7.0`.\n\n## Validação concluída\n\n- 393 testes de manutenção e quatro testes do site;\n- 7/7 jobs verdes: Quality gate, Ubuntu, macOS e Windows com Python 3.10 e\n  3.13;\n- `git diff --check`, Git LFS, validação integral e dry-run do Worker;\n- argumentos longos, paths com espaços/Unicode, códigos de saída, ausência de\n  vazamento da sessão PowerShell e rejeição antecipada do Python 3.9.\n\nOs checks portáveis não equivalem a smokes gráficos ou de rede dos runtimes.\nEsses smokes permanecem pendentes onde indicado nos roadmaps.",
      "mirror_title": "x86QW Installer 0.7.1",
      "mirror_notes": "# x86QW 0.7.1\n\nRelease corretiva do bootstrap e dos launchers instalados.\n\n> Estado: publicada e verificada. A `0.7.1` é a versão `current`; o bundle e a\n> release `0.7.0` permanecem imutáveis no histórico.\n\nBundle: `x86qw-installer-0.7.1.zip` · 157113 bytes · SHA-256\n`a0946ffcc8a4e1181dbc55ea08caf54691b18b12e901d12069eb2064b38c0d80`.\n\n## Python\n\n- exige Python 3.10 ou mais recente antes de qualquer download ou mutação;\n- usa a mesma ordem determinística por plataforma em bootstrap e launcher;\n- gera o launcher com o executável Python realmente usado na instalação;\n- procura um fallback compatível caso esse runtime seja removido;\n- mantém paths com espaços/Unicode e argumentos ilimitados no Windows.\n\n## PowerShell\n\n- executa o bootstrap em escopo próprio sem abrir outro processo ou encerrar a\n  sessão usada por `irm ... | iex`;\n- restaura preferências e codificações do chamador, sem vazar variáveis\n  internas;\n- preserva como efeito global intencional somente o código do instalador em\n  `$LASTEXITCODE`;\n- passou na evidência nativa do Windows PowerShell 5.1.\n\n## Integridade\n\n- calcula o SHA-256 do bundle em streaming no bootstrap Unix;\n- adiciona guarda de versão ao zipapp antes de carregar o gerenciador;\n- preserva integralmente o bundle e a release `0.7.0`.\n\n## Validação concluída\n\n- 393 testes de manutenção e quatro testes do site;\n- 7/7 jobs verdes: Quality gate, Ubuntu, macOS e Windows com Python 3.10 e\n  3.13;\n- `git diff --check`, Git LFS, validação integral e dry-run do Worker;\n- argumentos longos, paths com espaços/Unicode, códigos de saída, ausência de\n  vazamento da sessão PowerShell e rejeição antecipada do Python 3.9.\n\nOs checks portáveis não equivalem a smokes gráficos ou de rede dos runtimes.\nEsses smokes permanecem pendentes onde indicado nos roadmaps.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.10",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.10.zip",
      "size": 581288,
      "sha256": "284ea22d82945d0d1b9e06fa41e130813755cdc63d24a34ae334d9a627837b61",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.10/x86qw-installer-0.7.10.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.10/x86qw-installer-0.7.10.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.10/x86qw-installer-0.7.10.zip"
      ],
      "distribution_path": "installer/packages/0.7.10/x86qw-installer-0.7.10.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.10",
      "release_title": "x86QW Installer 0.7.10",
      "release_notes": "# x86QW 0.7.10\n\nHotfix da criação automática do filtro Git seletivo da instalação.\n\n## Correção\n\n- cria `quake-world/.gitignore` automaticamente ao concluir uma instalação;\n- restaura o filtro quando `x86qw update` encontra o conteúdo já atualizado;\n- atualiza o filtro após aplicar updates de componentes;\n- ignora somente os caminhos exatos registrados nos inventories, mantendo\n  arquivos novos visíveis ao Git;\n- mantém `x86qw changes` como comparação por hash capaz de mostrar arquivos\n  padrão modificados ou removidos, que o `.gitignore` sozinho não detecta;\n- preserva `x86qw changes --sync-gitignore` como regeneração manual.\n\nA release 0.7.9 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.10 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED para instalação sem `.gitignore`;\n- regressões para update sem novidades e update com plano aplicado;\n- suíte completa do instalador e comparação de mudanças;\n- gate completo de manutenção, site e contratos portáveis.",
      "mirror_title": "x86QW Installer 0.7.10",
      "mirror_notes": "# x86QW 0.7.10\n\nHotfix da criação automática do filtro Git seletivo da instalação.\n\n## Correção\n\n- cria `quake-world/.gitignore` automaticamente ao concluir uma instalação;\n- restaura o filtro quando `x86qw update` encontra o conteúdo já atualizado;\n- atualiza o filtro após aplicar updates de componentes;\n- ignora somente os caminhos exatos registrados nos inventories, mantendo\n  arquivos novos visíveis ao Git;\n- mantém `x86qw changes` como comparação por hash capaz de mostrar arquivos\n  padrão modificados ou removidos, que o `.gitignore` sozinho não detecta;\n- preserva `x86qw changes --sync-gitignore` como regeneração manual.\n\nA release 0.7.9 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.10 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED para instalação sem `.gitignore`;\n- regressões para update sem novidades e update com plano aplicado;\n- suíte completa do instalador e comparação de mudanças;\n- gate completo de manutenção, site e contratos portáveis.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.11",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.11.zip",
      "size": 581352,
      "sha256": "3ce8e3c31c76d040249119c6dee37fc0829c14ff4d973f58ccdd72598f1bba53",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.11/x86qw-installer-0.7.11.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.11/x86qw-installer-0.7.11.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.11/x86qw-installer-0.7.11.zip"
      ],
      "distribution_path": "installer/packages/0.7.11/x86qw-installer-0.7.11.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.11",
      "release_title": "x86QW Installer 0.7.11",
      "release_notes": "# x86QW 0.7.11\n\nHotfix do dispatcher da CLI permanente instalada.\n\n## Correção\n\n- aceita `x86qw changes` nos launchers Unix e Windows;\n- encaminha `changes` para a CLI Python com o diretório instalado correto;\n- documenta o comando na ajuda de `x86qw.sh` e `x86qw.cmd`;\n- preserva `x86qw changes --sync-gitignore` para regeneração manual do filtro.\n\nA release 0.7.10 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.11 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED reproduzindo `x86qw: comando desconhecido: changes`;\n- execução real do launcher instalado em Unix e Windows;\n- suíte completa, site e contratos portáveis.",
      "mirror_title": "x86QW Installer 0.7.11",
      "mirror_notes": "# x86QW 0.7.11\n\nHotfix do dispatcher da CLI permanente instalada.\n\n## Correção\n\n- aceita `x86qw changes` nos launchers Unix e Windows;\n- encaminha `changes` para a CLI Python com o diretório instalado correto;\n- documenta o comando na ajuda de `x86qw.sh` e `x86qw.cmd`;\n- preserva `x86qw changes --sync-gitignore` para regeneração manual do filtro.\n\nA release 0.7.10 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.11 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED reproduzindo `x86qw: comando desconhecido: changes`;\n- execução real do launcher instalado em Unix e Windows;\n- suíte completa, site e contratos portáveis.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.12",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.12.zip",
      "size": 581623,
      "sha256": "aa6fb98383c16c907a620b7041da03e50faec52fa5033fd66b9ee824bdf7dbb7",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.12/x86qw-installer-0.7.12.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.12/x86qw-installer-0.7.12.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.12/x86qw-installer-0.7.12.zip"
      ],
      "distribution_path": "installer/packages/0.7.12/x86qw-installer-0.7.12.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.12",
      "release_title": "x86QW Installer 0.7.12",
      "release_notes": "# x86QW 0.7.12\n\nHotfix da finalização transacional do `uninstall --purge`.\n\n## Correção\n\n- remove symlinks pertencentes ao quarantine sem seguir seus alvos;\n- finaliza corretamente o cache TUF que contém `metadata/root.json` como link;\n- usa rename exclusivo e identidade de inode no POSIX;\n- usa handle nativo aberto no reparse point no Windows;\n- continua preservando sockets, devices e outros nós especiais não autorizados.\n\nNa 0.7.11, a transação podia ser confirmada e deixar a finalização incompleta\nao encontrar o symlink criado pelo próprio cache TUF. A 0.7.12 elimina essa\nincompatibilidade sem ampliar a fronteira de remoção.\n\nA release 0.7.11 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.12 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED reproduzindo o quarantine preservado;\n- teste de que o link é removido e seu alvo externo permanece intacto;\n- 1.418 testes de manutenção e cinco testes do site;\n- matriz protegida em Ubuntu, macOS e Windows com Python 3.10 e 3.13.",
      "mirror_title": "x86QW Installer 0.7.12",
      "mirror_notes": "# x86QW 0.7.12\n\nHotfix da finalização transacional do `uninstall --purge`.\n\n## Correção\n\n- remove symlinks pertencentes ao quarantine sem seguir seus alvos;\n- finaliza corretamente o cache TUF que contém `metadata/root.json` como link;\n- usa rename exclusivo e identidade de inode no POSIX;\n- usa handle nativo aberto no reparse point no Windows;\n- continua preservando sockets, devices e outros nós especiais não autorizados.\n\nNa 0.7.11, a transação podia ser confirmada e deixar a finalização incompleta\nao encontrar o symlink criado pelo próprio cache TUF. A 0.7.12 elimina essa\nincompatibilidade sem ampliar a fronteira de remoção.\n\nA release 0.7.11 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.12 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED reproduzindo o quarantine preservado;\n- teste de que o link é removido e seu alvo externo permanece intacto;\n- 1.418 testes de manutenção e cinco testes do site;\n- matriz protegida em Ubuntu, macOS e Windows com Python 3.10 e 3.13.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.13",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.13.zip",
      "size": 581883,
      "sha256": "114604400e1fd18c4180624314d4bc8ca9b6d4559ed26cfe8d0a767287f2aa32",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.13/x86qw-installer-0.7.13.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.13/x86qw-installer-0.7.13.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.13/x86qw-installer-0.7.13.zip"
      ],
      "distribution_path": "installer/packages/0.7.13/x86qw-installer-0.7.13.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.13",
      "release_title": "x86QW Installer 0.7.13",
      "release_notes": "# x86QW 0.7.13\n\nHotfix da preparação do ezQuake no macOS.\n\n## Correção\n\n- remove individualmente as preferências antigas `basedir`, `version` e\n  `NSOSPLastRootDirectory` do domínio `com.ezquake.ezQuake`;\n- evita a importação do domínio inteiro, que podia retornar sucesso sem vencer\n  o cache ativo do CFPreferences;\n- confirma que cada chave realmente desapareceu antes de continuar a instalação;\n- restaura o snapshot original se qualquer remoção parcial falhar.\n\nNa 0.7.12, uma instalação limpa podia chegar ao ezQuake stable 3.6.9 e falhar na\netapa `directory-preferences`, mesmo depois de validar o ZIP e os PAKs. A 0.7.13\nfaz a limpeza pela operação nativa por chave e mantém o rollback transacional.\n\nA release 0.7.12 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.13 e para a metadata TUF v11.\n\n## Validação\n\n- regressão RED reproduzindo o sucesso falso da importação com cache CFPreferences;\n- remoção e restauração reais das três preferências em macOS;\n- 1.422 testes de manutenção e cinco testes do site;\n- matriz protegida em Ubuntu, macOS e Windows com Python 3.10 e 3.13.",
      "mirror_title": "x86QW Installer 0.7.13",
      "mirror_notes": "# x86QW 0.7.13\n\nHotfix da preparação do ezQuake no macOS.\n\n## Correção\n\n- remove individualmente as preferências antigas `basedir`, `version` e\n  `NSOSPLastRootDirectory` do domínio `com.ezquake.ezQuake`;\n- evita a importação do domínio inteiro, que podia retornar sucesso sem vencer\n  o cache ativo do CFPreferences;\n- confirma que cada chave realmente desapareceu antes de continuar a instalação;\n- restaura o snapshot original se qualquer remoção parcial falhar.\n\nNa 0.7.12, uma instalação limpa podia chegar ao ezQuake stable 3.6.9 e falhar na\netapa `directory-preferences`, mesmo depois de validar o ZIP e os PAKs. A 0.7.13\nfaz a limpeza pela operação nativa por chave e mantém o rollback transacional.\n\nA release 0.7.12 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.13 e para a metadata TUF v11.\n\n## Validação\n\n- regressão RED reproduzindo o sucesso falso da importação com cache CFPreferences;\n- remoção e restauração reais das três preferências em macOS;\n- 1.422 testes de manutenção e cinco testes do site;\n- matriz protegida em Ubuntu, macOS e Windows com Python 3.10 e 3.13.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.2",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.2.zip",
      "size": 286103,
      "sha256": "7f14caadce174665a24431eab4615833c657ad71a8cbe82f34b66c413857b6f0",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.2/x86qw-installer-0.7.2.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.2/x86qw-installer-0.7.2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.2/x86qw-installer-0.7.2.zip"
      ],
      "distribution_path": "installer/packages/0.7.2/x86qw-installer-0.7.2.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.2",
      "release_title": "x86QW Installer 0.7.2",
      "release_notes": "# x86QW 0.7.2\n\nRelease corretiva proposta para consolidar fronteiras limitadas de entrada de\nbytes remotos, leitura e extração de ZIP, PK3 e PYZ e objetos privados no\nWindows, preservar o bundle stable macOS upstream e avançar as fronteiras\nincrementais de `x86qw_runtime`.\n\n> Estado: **publicada e verificada**. A `0.7.2` é a versão `current`; a `0.7.1`\n> e todas as versões anteriores permanecem imutáveis no histórico.\n\nBundle: `x86qw-installer-0.7.2.zip` · 286103 bytes · SHA-256\n`7f14caadce174665a24431eab4615833c657ad71a8cbe82f34b66c413857b6f0`.\n\n## Gameplay x86QW e KTX\n\n- adiciona um ruleset assistido x86QW selecionável, aplicado antes da\n  configuração pessoal e sem alterar os rulesets competitivos do ezQuake;\n- adiciona ao QVM KTX reproduzível o Coach de Quad opt-in para partidas\n  casuais, sem mudar arma, vida, skins ou cores administradas pelo KTX;\n- preserva os cinco jogos, os 24 modos KTX, os perfis Frogbot e os contratos\n  existentes de linha de comando;\n- atualiza os componentes afetados com versões imutáveis novas, mantendo todas\n  as versões publicadas anteriormente disponíveis e inalteradas.\n\n## Fronteira de download\n\n- centraliza a entrada HTTP Python em `maintenance/tools/downloader.py`;\n- exige HTTPS, limite e deadline para toda resposta;\n- exige também destino, tamanho exato e SHA-256 para artefatos persistentes;\n- centraliza a validação de URLs persistentes do catálogo, manifesto,\n  inventários de releases e upstreams e intake; rejeita credenciais, fragmentos,\n  queries, espaços ou controles;\n- mantém metadados dinâmicos em memória e proíbe a promoção de payload não\n  fixado inclusive na manutenção;\n- remove callback de transporte, opener, relógio, espera e aleatoriedade da API\n  pública; callbacks de progresso/retry permanecem, e cada chamada cria\n  transporte e registro de cancelamento privados;\n- bloqueia stable, nightly e nQuake novos antes de confirmação, staging ou\n  download até que tamanho e SHA-256 tenham sido revisados por `add`;\n- substitui `git ls-remote` e o clone parcial do nQuake por consultas limitadas\n  de referência, commit e árvore recursiva na API oficial do GitHub; rejeita árvore\n  truncada e valida path, tipo, modo, SHA-1 e tamanho de cada entrada;\n- faz `add --dry-run` validar pins, caminhos portáveis, symlinks, colisões,\n  owner, consumer, package e inventários propostos sem baixar ou alterar\n  arquivos; exibe somente origens redigidas e rejeita query persistente;\n- exige `managed: true` para todo remoto persistente e vínculo exato a artefato\n  de release, fonte preservada, pacote público proposto ou referência nQuake;\n  valida namespace, consumidor e identidade lógica de package e mantém caminhos\n  já registrados e bundles do instalador imutáveis;\n- exige que as coordenadas ezQuake coincidam exatamente com\n  `clients/ezquake/<canal>/<versão>/<plataforma>-<arquitetura>/<arquivo>`;\n- limita caminhos a 240 unidades UTF-16 e rejeita caracteres, dispositivos e\n  aliases reservados do Win32;\n- copia fontes locais declaradas no BOM por temporário exclusivo, com modo\n  `0600` no POSIX, confere o plano durante o streaming e usa `fsync` + `replace`,\n  sem escrever por um hardlink do staging sobre o `dist/` vivo;\n- calcula tamanho e SHA-256 durante o streaming;\n- rejeita `Content-Length` inválido, duplicado ou divergente;\n- interrompe respostas sem tamanho declarado ao ultrapassar o limite;\n- usa temporário privado no POSIX e promove somente após validação, `flush`,\n  `fsync` e fechamento.\n\n## Deadlines, retry e mirrors\n\n- usa deadline monotônico cobrindo conexão, redirects, headers, leituras,\n  tentativas e pausas;\n- resolve DNS em subprocesso isolado, com saída limitada e encerramento seguido\n  de coleta no timeout;\n- só libera o resolver para `getaddrinfo` depois de registrar seu handle; uma\n  criação tardia nunca recebe o token e não inicia DNS depois do deadline;\n- conecta candidatos TCP de forma não bloqueante sob o mesmo deadline;\n- interrompe TLS e headers com `shutdown` antes do fechamento do socket;\n- aplica o mesmo encerramento coordenado em interrupção do controlador;\n- rejeita orçamento restante inferior a 500 ms antes de criar worker, resolver\n  ou socket;\n- preserva o timeout completo de conexão/tentativa do bootstrap quando o\n  deadline total ainda contém a margem posterior de limpeza;\n- solicita o encerramento da conexão registrada mesmo quando o prazo termina\n  imediatamente após a inicialização do worker e fecha respostas tardias;\n- oferece `download_mirrors()` com validação prévia e um único orçamento para\n  todas as origens;\n- permite fallback remoto somente por falha de transporte ou integridade;\n- trata falhas de protocolo, limite, armazenamento, política e deadline como\n  terminais, sem mascará-las com outro mirror;\n- repete somente rede transitória e HTTP 408, 425, 429, 500, 502, 503 e 504;\n- aplica backoff exponencial com jitter e respeita `Retry-After` quando ele cabe\n  no orçamento restante.\n\n## Bootstraps\n\n- mantém projeções mínimas antes da existência do zipapp;\n- ignora configuração `.curlrc` herdada com `curl --disable` como primeiro\n  argumento e restringe a origem e os redirects a HTTPS;\n- limita o comando público Unix por `head -c 262145`, valida status e tamanho\n  antes de executar e rejeita prefixo produzido por pipeline com falha ou stream\n  excessivo sem `Content-Length`;\n- compartilha deadline entre tentativas e mirrors;\n- fecha corpos intermediários de redirect sem drená-los;\n- preserva redirects HTTP 308 também no Python 3.10 mínimo suportado;\n- valida tamanho, `Content-Length` e SHA-256 em cada download;\n- preserva equivalência entre as cópias canônica e pública.\n\n## Fronteira de ZIP, PK3 e PYZ\n\n- cria `x86qw_runtime/io/archive.py` como única fronteira de scan, leitura e\n  extração de ZIP, PK3 e PYZ;\n- produz um `ArchivePlan` somente depois de validar envelope, todos os membros,\n  tamanho real, CRC, SHA-256, compressão, tipo e nomes portáveis;\n- rejeita traversal, absolutos, drives, barras invertidas, controles,\n  caracteres e dispositivos reservados no Windows, links, tipos especiais e\n  colisões exatas, de caixa, Unicode ou prefixo;\n- limita quantidade de membros antes da alocação de `ZipInfo`, tamanho por\n  membro, fonte compactada, metadados centrais, total expandido, profundidade,\n  caminho em UTF-16 e razão de compressão;\n- percorre estruturalmente o diretório central antes de `zipfile`, impedindo\n  alocação não limitada ou contagem subestimada no EOCD;\n- copia a fonte para snapshot privado com leitura limitada; pre-scan e\n  `ZipFile` consomem os mesmos bytes imutáveis mesmo sob troca concorrente;\n- aplica apenas modos canônicos `0644` e `0755`, declarados pelo produto;\n- extrai em staging privado, sincroniza arquivos e diretórios e promove sem\n  substituir destino existente;\n- conclui toda revalidação antes da promoção e trata a identidade publicada\n  como commit irreversível, preservando conteúdo pessoal em falhas tardias;\n- migra instalador, gameplay, serviços, ferramentas de manutenção, builders e\n  testes do site para o mesmo contrato;\n- torna a materialização efêmera no Windows reversível por handles, identidade\n  `FILE_ID_128`, promoção sem substituição e remoção do mesmo objeto confirmado,\n  sem depender de hardlink ou `DeleteFileW` por caminho;\n- limita hashes de recuperação ao tamanho exato do membro, preserva journals\n  legados sem tamanho e usa quarentena com segunda validação no cleanup POSIX;\n- remove `unzip` e `Expand-Archive` dos bootstraps candidatos por meio de uma\n  projeção byte a byte do módulo canônico;\n- valida os layouts históricos exatos do instalador sem enfraquecer o contrato\n  moderno de sete membros;\n- faz builders usarem snapshot estável, staging sob raiz explícita e publicação\n  sem substituir artefato, manifesto ou ponteiro concorrente;\n- mantém os 59 ZIP/PK3/PYZ existentes compatíveis e adiciona uma regressão que\n  percorre esse inventário no CI.\n\n## DACL privada no Windows\n\n- cria uma fronteira portável de filesystem privado, com adaptador Win32 em\n  biblioteca padrão e assinaturas `ctypes` explícitas;\n- cria arquivos e diretórios gerenciados com a política de acesso já presente\n  em `SECURITY_ATTRIBUTES`, sem janela entre criação e endurecimento;\n- usa DACL protegida e exatamente duas ACEs de controle total: usuário atual e\n  `LOCAL SYSTEM`; diretórios propagam a política somente aos seus filhos;\n- recusa reparse points, owner inesperado, herança ativa, principal extra,\n  filesystem sem ACL persistente ou resultado de API inconclusivo;\n- aplica a fronteira a `.x86qw/`, sessões, locks, journals, pedidos de parada,\n  logs, configurações sensíveis, temporários, staging, downloads e extrações;\n- faz o bootstrap PowerShell criar o diretório de trabalho privado antes de\n  escrever helper, bundle ou conteúdo extraído;\n- valida arquivos externos de senha pelo mesmo handle, sem alterar owner, DACL,\n  nome ou conteúdo;\n- não solicita elevação; o smoke sob conta padrão permanece no PR 11;\n- preserva um resíduo privado quando a identidade necessária à limpeza não\n  pode mais ser comprovada, em vez de apagar por pathname;\n- formaliza o contrato e seu limite de ameaça no\n  [ADR 0003](../adr/0003-dacl-privada-windows.md).\n\nEssa implementação pertence ao candidato corretivo da PR 4. Os jobs nativos\nWindows com Python 3.10 e 3.13 validaram seu contrato; o smoke de runtime sob\numa conta padrão sem elevação permanece pendente no PR 11. Ela não está\npresente na release pública `0.7.1`.\n\n## Confiança do ezQuake stable no macOS\n\n- preserva exatamente os paths e bytes do bundle stable upstream extraído;\n- não altera `Info.plist`, sandbox, entitlements ou assinatura do stable;\n- impede o canal stable de alcançar a preparação ad hoc, agora exclusiva do\n  nightly;\n- aceita `codesign --verify` apenas como validação de consistência interna;\n- identifica o stable transformado pela 0.7.1 somente pelo artefato, identidade\n  binária e marcador conhecidos;\n- restaura a mesma versão pelo bootstrap com troca transacional e rollback;\n- mantém a CLI instalada sem download de payload e orienta a reexecução do\n  bootstrap;\n- preserva o bookmark compartilhado em update, repair e instalação do segundo\n  canal, decidindo a primeira instalação somente sob o lock;\n- corrige o contexto de plataforma/canal do repair nightly;\n- projeta stable e nightly macOS como `conditional` no catálogo público;\n- registra hashes, decisão e limites no\n  [ADR 0004](../adr/0004-preservar-bundle-upstream-ezquake-stable-macos.md).\n\nPreservar o upstream não o torna Developer ID ou notarizado: o stable 3.6.9\ncontinua ad hoc, sem Team ID ou ticket stapled e rejeitado por `spctl`. O\nnightly mantém a transformação local preexistente. Primeira/segunda abertura,\nbookmark sandbox, Gatekeeper, arm64, Intel e telas com notch permanecem no PR\n11. Esta implementação corretiva não está presente na release pública `0.7.1`.\n\n## Fronteiras incrementais de runtime\n\nO HEAD documental `29d76a48721190aad1203d0986a31d839d62070e` da PR 6:\n\n- mantém `x86qw_runtime` independente de `maintenance`, `dist` e dos\n  entrypoints instalados;\n- centraliza downloader, archive, persistência atômica, filesystem privado,\n  arquivos gerenciados, catálogos, estado, recibos, migrações, transações,\n  navegação, gameplay, Python/locking/processos/ACL de plataforma, lock da\n  instalação e supervisor de processos/sessões;\n- faz manutenção e entrypoints consumirem os símbolos canônicos, preservando\n  fachadas somente onde existe consumidor compatível;\n- publica CLI, PAKs preservados, defaults, reparos, migrações, cleanup e\n  uninstall com inversos retidos até o resultado lógico final;\n- produz um zipapp de exatamente 56 membros: 44 módulos do runtime, quatro\n  entrypoints/fachadas no topo, duas projeções KTX e seis membros gerados;\n- declara origem, consumidor e contrato de cada membro em\n  `maintenance/inventory/installer-runtime-members.json`; o builder deriva a\n  projeção desse manifesto e o teste exige igualdade com o ZIP realmente\n  produzido;\n- remove do artefato módulos de manutenção e fachadas sem consumidor.\n\nO código dessa frente foi integrado ao candidato 0.7.2. `manager.py`, `gameplay.py`\ne `services.py` continuam como raízes de composição, enquanto console, parser,\nnavegação e regras reutilizáveis pertencem ao runtime. Cleanup, uninstall e\npurge usam quarantine reversível até o commit. A regressão local integral e a\nmatriz multiplataforma do candidato foram executadas; os smokes nativos de\nrelease permanecem pendentes nos itens que os exigem.\n\n## Correções adversariais do lifecycle\n\n- serializa em kernel a observação e reclamação do lock por instalação, com\n  `flock` no POSIX e mutex privado no namespace global do Windows;\n- impede duas CLIs de reclamarem em paralelo o mesmo `active.lock` abandonado;\n- rejeita booleanos onde o schema do lock exige inteiros;\n- cria processos Windows suspensos, associa-os ao Job Object antes de executar\n  código do runtime e faz rollback do líder ou da árvore em qualquer falha;\n- preserva o erro operacional quando a remoção de um staging privado também\n  falha, reportando o resíduo sem mascarar a causa original.\n\nEssas correções foram exigidas pela revisão adversarial da PR 4 e foram\nexercitadas na matriz nativa antes de serem consideradas concluídas no código.\n\n## Validação atual do código corretivo\n\nA PR 2 registrou 565 testes de manutenção e cinco testes do site, com matriz\nverde em Ubuntu, macOS e Windows usando Python 3.10 e 3.13. Após integrar a\nfronteira de arquivos da PR 3, a validação local reportou `Ran 695 tests` e\n`OK (skipped=15)` na manutenção, além de cinco testes do site com `OK`, tanto\nno Python 3.10 quanto no Python 3.14. Dos 15 skips locais, quatorze exigem o\nrunner Windows e um é o smoke de rede opt-in. A matriz da PR 3 passou em 7/7\njobs no Ubuntu, macOS e Windows com Python 3.10 e 3.13, incluindo os casos\nnativos Windows de identidade e reparse point. A PR 3 não foi publicada. Esses\nresultados não constituem evidência de release: o candidato imutável futuro\nprecisará ser testado novamente, sem rebuild.\n\nPara a PR 4, a matriz executou 745 testes de manutenção e cinco do site. Os\njobs Windows com Python 3.10 e 3.13 provaram a criação sob herança ampla, a\nremoção dessa herança, os dois principals permitidos, a rejeição de arquivo\nexterno inseguro, o bootstrap, os leases contra rename e a promoção vinculada\nao handle. O run canônico é\n[`30866754435`](https://github.com/x86dx2/x86qw/actions/runs/30866754435).\n\nPara o código corretivo da PR 5, a validação local no macOS executou 765 testes\nde manutenção: 730 aprovados e 35 ignorados. Os cinco testes do site também\npassaram. Dos skips, 34 casos nativos Windows/Windows PowerShell estão\nreservados à matriz e um é o smoke de rede opt-in. O\n`verify`, `git diff --check`, `git lfs fsck` e o dry-run do Worker com 24 assets\ntambém foram aprovados. A matriz canônica da PR 5 é o\n[run 30871046055](https://github.com/x86dx2/x86qw/actions/runs/30871046055),\naprovado em 7/7 jobs: Ubuntu e macOS executaram 765 testes com 35 skips; Windows\nexecutou 765 com 45 skips; os cinco testes do site passaram em todos os jobs.\nEssa matriz ainda não substitui os smokes do candidato imutável.\n\nNo HEAD `29d76a4` da PR 6, 1.190 testes de manutenção passaram com 37 skips\nexplícitos, e os 5 testes do site passaram. Uma suíte focal de 349 testes, com\n6 skips nativos Windows no macOS, comprovou o manifesto e os 56\nmembros, ausência de `maintenance/` no zipapp, grafo sem ciclo, carregamento\ntardio de catálogos, identidade das fachadas, transações, goldens de gameplay,\nlocks e ownership adversarial de arquivos. Essa evidência local não substitui\na matriz final ou os smokes nativos.\n\n- resposta infinita e catálogo excessivo;\n- timeout de conexão, headers, leitura e deadline total;\n- redirect para HTTP;\n- corpo parcial, tamanho divergente e hash incorreto;\n- mirror parcial ou corrompido seguido por mirror íntegro;\n- traversal, colisões portáveis, links, atributos especiais, ZIP bomb, CRC\n  divergente e envelope com prefixo ou sufixo;\n- rollback sem apagar um staging ou destino substituído concorrentemente;\n- os 59 ZIP/PK3/PYZ distribuídos validados pela fronteira canônica;\n- `Retry-After`, backoff, jitter e status permanentes sem retry;\n- falta de espaço, permissão negada, escrita curta e falhas de `flush`, `fsync`\n  e `replace`;\n- matrizes históricas das PRs 2–5 e matriz integrada da PR 64 em Ubuntu, macOS\n  e Windows com Python 3.10 e 3.13;\n- gate adversarial para o Python embutido em PowerShell, `.bat`, variantes\n  shell, shebangs, concatenação/`join`, helpers de argv e imports dinâmicos;\n- validação integral, Git LFS e dry-run do site.\n\n## Limitações que esta release não resolve\n\n- catálogos e metadados dinâmicos ainda não possuem assinatura, expiração,\n  proteção contra rollback/freeze ou rotação de chaves; esse é o escopo do PR 9;\n- comandos de publicação via `gh` e `curl` continuam sob o redesenho imutável\n  do PR 10; eles enviam bytes e não são rotas de ingestão. O `curl` de upload\n  GitLab já começa com `--disable`, exige HTTPS e não segue redirects;\n- uma criação local de processo bloqueada dentro do sistema operacional não é\n  cancelável por thread; o chamador respeita o deadline e o filho tardio é morto\n  antes de DNS/socket, mas a thread daemon aguarda o retorno de `Popen`;\n- um reap patologicamente mais lento que a janela reservada pode terminar na\n  thread daemon depois do retorno; `kill` já foi solicitado e nenhuma nova\n  atividade DNS/socket é permitida;\n- o scanner estático não substitui review de reflexão, código gerado, extensões\n  nativas ou bibliotecas de rede ainda não inventariadas;\n- a DACL privada reduz acesso entre usuários locais comuns, mas não protege\n  contra código executando como o mesmo usuário, administrador que exerça\n  privilégios nativos ou kernel comprometido; o smoke dos runtimes sob uma\n  conta padrão sem elevação permanece no PR 11;\n- a finalização de quarantine usa handle validado no Windows e nome privado\n  imprevisível após rename exclusivo no POSIX; links e tipos especiais são\n  preservados. O POSIX não oferece remoção condicional por inode e não protege\n  contra código hostil executando como o mesmo usuário;\n- a sincronização build-time dos bootstraps usa staging privado e replace\n  atômico sem seguir symlink, mas ainda pressupõe checkout exclusivo por não\n  existir CAS portável de pathname na biblioteca padrão; a PR 10 formalizará\n  essa exclusividade na promoção do candidato;\n- testes portáveis do downloader não equivalem a smokes nativos dos runtimes.\n- o manifesto declarativo do zipapp gera a projeção do builder e é validado\n  contra o arquivo produzido;\n- a regressão integral integrada executou 1.197 testes de manutenção, com 37\n  skips explícitos, e cinco testes do site; a matriz da PR 64 passou em 7/7\n  jobs no Ubuntu, macOS e Windows com Python 3.10 e 3.13.\n\n## Contratos preservados\n\n- nenhum runtime, jogo, mod, mapa ou serviço novo;\n- `0.7.1`, seus hashes, bundles, tag e releases permanecem imutáveis;\n- canal, versão, perfis, configurações pessoais e dados instalados não mudam;\n  o stable legado é deliberadamente restaurado ao bundle upstream integral;\n- gameplay e argumentos existentes permanecem compatíveis; o ruleset assistido\n  e o Coach de Quad são adições opt-in.\n\nEste arquivo registra a evidência do código corretivo e da integração de\ngameplay. O hash do bundle e a verificação dos endpoints públicos são\nregistrados na promoção imutável da `0.7.2`.",
      "mirror_title": "x86QW Installer 0.7.2",
      "mirror_notes": "# x86QW 0.7.2\n\nRelease corretiva proposta para consolidar fronteiras limitadas de entrada de\nbytes remotos, leitura e extração de ZIP, PK3 e PYZ e objetos privados no\nWindows, preservar o bundle stable macOS upstream e avançar as fronteiras\nincrementais de `x86qw_runtime`.\n\n> Estado: **publicada e verificada**. A `0.7.2` é a versão `current`; a `0.7.1`\n> e todas as versões anteriores permanecem imutáveis no histórico.\n\nBundle: `x86qw-installer-0.7.2.zip` · 286103 bytes · SHA-256\n`7f14caadce174665a24431eab4615833c657ad71a8cbe82f34b66c413857b6f0`.\n\n## Gameplay x86QW e KTX\n\n- adiciona um ruleset assistido x86QW selecionável, aplicado antes da\n  configuração pessoal e sem alterar os rulesets competitivos do ezQuake;\n- adiciona ao QVM KTX reproduzível o Coach de Quad opt-in para partidas\n  casuais, sem mudar arma, vida, skins ou cores administradas pelo KTX;\n- preserva os cinco jogos, os 24 modos KTX, os perfis Frogbot e os contratos\n  existentes de linha de comando;\n- atualiza os componentes afetados com versões imutáveis novas, mantendo todas\n  as versões publicadas anteriormente disponíveis e inalteradas.\n\n## Fronteira de download\n\n- centraliza a entrada HTTP Python em `maintenance/tools/downloader.py`;\n- exige HTTPS, limite e deadline para toda resposta;\n- exige também destino, tamanho exato e SHA-256 para artefatos persistentes;\n- centraliza a validação de URLs persistentes do catálogo, manifesto,\n  inventários de releases e upstreams e intake; rejeita credenciais, fragmentos,\n  queries, espaços ou controles;\n- mantém metadados dinâmicos em memória e proíbe a promoção de payload não\n  fixado inclusive na manutenção;\n- remove callback de transporte, opener, relógio, espera e aleatoriedade da API\n  pública; callbacks de progresso/retry permanecem, e cada chamada cria\n  transporte e registro de cancelamento privados;\n- bloqueia stable, nightly e nQuake novos antes de confirmação, staging ou\n  download até que tamanho e SHA-256 tenham sido revisados por `add`;\n- substitui `git ls-remote` e o clone parcial do nQuake por consultas limitadas\n  de referência, commit e árvore recursiva na API oficial do GitHub; rejeita árvore\n  truncada e valida path, tipo, modo, SHA-1 e tamanho de cada entrada;\n- faz `add --dry-run` validar pins, caminhos portáveis, symlinks, colisões,\n  owner, consumer, package e inventários propostos sem baixar ou alterar\n  arquivos; exibe somente origens redigidas e rejeita query persistente;\n- exige `managed: true` para todo remoto persistente e vínculo exato a artefato\n  de release, fonte preservada, pacote público proposto ou referência nQuake;\n  valida namespace, consumidor e identidade lógica de package e mantém caminhos\n  já registrados e bundles do instalador imutáveis;\n- exige que as coordenadas ezQuake coincidam exatamente com\n  `clients/ezquake/<canal>/<versão>/<plataforma>-<arquitetura>/<arquivo>`;\n- limita caminhos a 240 unidades UTF-16 e rejeita caracteres, dispositivos e\n  aliases reservados do Win32;\n- copia fontes locais declaradas no BOM por temporário exclusivo, com modo\n  `0600` no POSIX, confere o plano durante o streaming e usa `fsync` + `replace`,\n  sem escrever por um hardlink do staging sobre o `dist/` vivo;\n- calcula tamanho e SHA-256 durante o streaming;\n- rejeita `Content-Length` inválido, duplicado ou divergente;\n- interrompe respostas sem tamanho declarado ao ultrapassar o limite;\n- usa temporário privado no POSIX e promove somente após validação, `flush`,\n  `fsync` e fechamento.\n\n## Deadlines, retry e mirrors\n\n- usa deadline monotônico cobrindo conexão, redirects, headers, leituras,\n  tentativas e pausas;\n- resolve DNS em subprocesso isolado, com saída limitada e encerramento seguido\n  de coleta no timeout;\n- só libera o resolver para `getaddrinfo` depois de registrar seu handle; uma\n  criação tardia nunca recebe o token e não inicia DNS depois do deadline;\n- conecta candidatos TCP de forma não bloqueante sob o mesmo deadline;\n- interrompe TLS e headers com `shutdown` antes do fechamento do socket;\n- aplica o mesmo encerramento coordenado em interrupção do controlador;\n- rejeita orçamento restante inferior a 500 ms antes de criar worker, resolver\n  ou socket;\n- preserva o timeout completo de conexão/tentativa do bootstrap quando o\n  deadline total ainda contém a margem posterior de limpeza;\n- solicita o encerramento da conexão registrada mesmo quando o prazo termina\n  imediatamente após a inicialização do worker e fecha respostas tardias;\n- oferece `download_mirrors()` com validação prévia e um único orçamento para\n  todas as origens;\n- permite fallback remoto somente por falha de transporte ou integridade;\n- trata falhas de protocolo, limite, armazenamento, política e deadline como\n  terminais, sem mascará-las com outro mirror;\n- repete somente rede transitória e HTTP 408, 425, 429, 500, 502, 503 e 504;\n- aplica backoff exponencial com jitter e respeita `Retry-After` quando ele cabe\n  no orçamento restante.\n\n## Bootstraps\n\n- mantém projeções mínimas antes da existência do zipapp;\n- ignora configuração `.curlrc` herdada com `curl --disable` como primeiro\n  argumento e restringe a origem e os redirects a HTTPS;\n- limita o comando público Unix por `head -c 262145`, valida status e tamanho\n  antes de executar e rejeita prefixo produzido por pipeline com falha ou stream\n  excessivo sem `Content-Length`;\n- compartilha deadline entre tentativas e mirrors;\n- fecha corpos intermediários de redirect sem drená-los;\n- preserva redirects HTTP 308 também no Python 3.10 mínimo suportado;\n- valida tamanho, `Content-Length` e SHA-256 em cada download;\n- preserva equivalência entre as cópias canônica e pública.\n\n## Fronteira de ZIP, PK3 e PYZ\n\n- cria `x86qw_runtime/io/archive.py` como única fronteira de scan, leitura e\n  extração de ZIP, PK3 e PYZ;\n- produz um `ArchivePlan` somente depois de validar envelope, todos os membros,\n  tamanho real, CRC, SHA-256, compressão, tipo e nomes portáveis;\n- rejeita traversal, absolutos, drives, barras invertidas, controles,\n  caracteres e dispositivos reservados no Windows, links, tipos especiais e\n  colisões exatas, de caixa, Unicode ou prefixo;\n- limita quantidade de membros antes da alocação de `ZipInfo`, tamanho por\n  membro, fonte compactada, metadados centrais, total expandido, profundidade,\n  caminho em UTF-16 e razão de compressão;\n- percorre estruturalmente o diretório central antes de `zipfile`, impedindo\n  alocação não limitada ou contagem subestimada no EOCD;\n- copia a fonte para snapshot privado com leitura limitada; pre-scan e\n  `ZipFile` consomem os mesmos bytes imutáveis mesmo sob troca concorrente;\n- aplica apenas modos canônicos `0644` e `0755`, declarados pelo produto;\n- extrai em staging privado, sincroniza arquivos e diretórios e promove sem\n  substituir destino existente;\n- conclui toda revalidação antes da promoção e trata a identidade publicada\n  como commit irreversível, preservando conteúdo pessoal em falhas tardias;\n- migra instalador, gameplay, serviços, ferramentas de manutenção, builders e\n  testes do site para o mesmo contrato;\n- torna a materialização efêmera no Windows reversível por handles, identidade\n  `FILE_ID_128`, promoção sem substituição e remoção do mesmo objeto confirmado,\n  sem depender de hardlink ou `DeleteFileW` por caminho;\n- limita hashes de recuperação ao tamanho exato do membro, preserva journals\n  legados sem tamanho e usa quarentena com segunda validação no cleanup POSIX;\n- remove `unzip` e `Expand-Archive` dos bootstraps candidatos por meio de uma\n  projeção byte a byte do módulo canônico;\n- valida os layouts históricos exatos do instalador sem enfraquecer o contrato\n  moderno de sete membros;\n- faz builders usarem snapshot estável, staging sob raiz explícita e publicação\n  sem substituir artefato, manifesto ou ponteiro concorrente;\n- mantém os 59 ZIP/PK3/PYZ existentes compatíveis e adiciona uma regressão que\n  percorre esse inventário no CI.\n\n## DACL privada no Windows\n\n- cria uma fronteira portável de filesystem privado, com adaptador Win32 em\n  biblioteca padrão e assinaturas `ctypes` explícitas;\n- cria arquivos e diretórios gerenciados com a política de acesso já presente\n  em `SECURITY_ATTRIBUTES`, sem janela entre criação e endurecimento;\n- usa DACL protegida e exatamente duas ACEs de controle total: usuário atual e\n  `LOCAL SYSTEM`; diretórios propagam a política somente aos seus filhos;\n- recusa reparse points, owner inesperado, herança ativa, principal extra,\n  filesystem sem ACL persistente ou resultado de API inconclusivo;\n- aplica a fronteira a `.x86qw/`, sessões, locks, journals, pedidos de parada,\n  logs, configurações sensíveis, temporários, staging, downloads e extrações;\n- faz o bootstrap PowerShell criar o diretório de trabalho privado antes de\n  escrever helper, bundle ou conteúdo extraído;\n- valida arquivos externos de senha pelo mesmo handle, sem alterar owner, DACL,\n  nome ou conteúdo;\n- não solicita elevação; o smoke sob conta padrão permanece no PR 11;\n- preserva um resíduo privado quando a identidade necessária à limpeza não\n  pode mais ser comprovada, em vez de apagar por pathname;\n- formaliza o contrato e seu limite de ameaça no\n  [ADR 0003](../adr/0003-dacl-privada-windows.md).\n\nEssa implementação pertence ao candidato corretivo da PR 4. Os jobs nativos\nWindows com Python 3.10 e 3.13 validaram seu contrato; o smoke de runtime sob\numa conta padrão sem elevação permanece pendente no PR 11. Ela não está\npresente na release pública `0.7.1`.\n\n## Confiança do ezQuake stable no macOS\n\n- preserva exatamente os paths e bytes do bundle stable upstream extraído;\n- não altera `Info.plist`, sandbox, entitlements ou assinatura do stable;\n- impede o canal stable de alcançar a preparação ad hoc, agora exclusiva do\n  nightly;\n- aceita `codesign --verify` apenas como validação de consistência interna;\n- identifica o stable transformado pela 0.7.1 somente pelo artefato, identidade\n  binária e marcador conhecidos;\n- restaura a mesma versão pelo bootstrap com troca transacional e rollback;\n- mantém a CLI instalada sem download de payload e orienta a reexecução do\n  bootstrap;\n- preserva o bookmark compartilhado em update, repair e instalação do segundo\n  canal, decidindo a primeira instalação somente sob o lock;\n- corrige o contexto de plataforma/canal do repair nightly;\n- projeta stable e nightly macOS como `conditional` no catálogo público;\n- registra hashes, decisão e limites no\n  [ADR 0004](../adr/0004-preservar-bundle-upstream-ezquake-stable-macos.md).\n\nPreservar o upstream não o torna Developer ID ou notarizado: o stable 3.6.9\ncontinua ad hoc, sem Team ID ou ticket stapled e rejeitado por `spctl`. O\nnightly mantém a transformação local preexistente. Primeira/segunda abertura,\nbookmark sandbox, Gatekeeper, arm64, Intel e telas com notch permanecem no PR\n11. Esta implementação corretiva não está presente na release pública `0.7.1`.\n\n## Fronteiras incrementais de runtime\n\nO HEAD documental `29d76a48721190aad1203d0986a31d839d62070e` da PR 6:\n\n- mantém `x86qw_runtime` independente de `maintenance`, `dist` e dos\n  entrypoints instalados;\n- centraliza downloader, archive, persistência atômica, filesystem privado,\n  arquivos gerenciados, catálogos, estado, recibos, migrações, transações,\n  navegação, gameplay, Python/locking/processos/ACL de plataforma, lock da\n  instalação e supervisor de processos/sessões;\n- faz manutenção e entrypoints consumirem os símbolos canônicos, preservando\n  fachadas somente onde existe consumidor compatível;\n- publica CLI, PAKs preservados, defaults, reparos, migrações, cleanup e\n  uninstall com inversos retidos até o resultado lógico final;\n- produz um zipapp de exatamente 56 membros: 44 módulos do runtime, quatro\n  entrypoints/fachadas no topo, duas projeções KTX e seis membros gerados;\n- declara origem, consumidor e contrato de cada membro em\n  `maintenance/inventory/installer-runtime-members.json`; o builder deriva a\n  projeção desse manifesto e o teste exige igualdade com o ZIP realmente\n  produzido;\n- remove do artefato módulos de manutenção e fachadas sem consumidor.\n\nO código dessa frente foi integrado ao candidato 0.7.2. `manager.py`, `gameplay.py`\ne `services.py` continuam como raízes de composição, enquanto console, parser,\nnavegação e regras reutilizáveis pertencem ao runtime. Cleanup, uninstall e\npurge usam quarantine reversível até o commit. A regressão local integral e a\nmatriz multiplataforma do candidato foram executadas; os smokes nativos de\nrelease permanecem pendentes nos itens que os exigem.\n\n## Correções adversariais do lifecycle\n\n- serializa em kernel a observação e reclamação do lock por instalação, com\n  `flock` no POSIX e mutex privado no namespace global do Windows;\n- impede duas CLIs de reclamarem em paralelo o mesmo `active.lock` abandonado;\n- rejeita booleanos onde o schema do lock exige inteiros;\n- cria processos Windows suspensos, associa-os ao Job Object antes de executar\n  código do runtime e faz rollback do líder ou da árvore em qualquer falha;\n- preserva o erro operacional quando a remoção de um staging privado também\n  falha, reportando o resíduo sem mascarar a causa original.\n\nEssas correções foram exigidas pela revisão adversarial da PR 4 e foram\nexercitadas na matriz nativa antes de serem consideradas concluídas no código.\n\n## Validação atual do código corretivo\n\nA PR 2 registrou 565 testes de manutenção e cinco testes do site, com matriz\nverde em Ubuntu, macOS e Windows usando Python 3.10 e 3.13. Após integrar a\nfronteira de arquivos da PR 3, a validação local reportou `Ran 695 tests` e\n`OK (skipped=15)` na manutenção, além de cinco testes do site com `OK`, tanto\nno Python 3.10 quanto no Python 3.14. Dos 15 skips locais, quatorze exigem o\nrunner Windows e um é o smoke de rede opt-in. A matriz da PR 3 passou em 7/7\njobs no Ubuntu, macOS e Windows com Python 3.10 e 3.13, incluindo os casos\nnativos Windows de identidade e reparse point. A PR 3 não foi publicada. Esses\nresultados não constituem evidência de release: o candidato imutável futuro\nprecisará ser testado novamente, sem rebuild.\n\nPara a PR 4, a matriz executou 745 testes de manutenção e cinco do site. Os\njobs Windows com Python 3.10 e 3.13 provaram a criação sob herança ampla, a\nremoção dessa herança, os dois principals permitidos, a rejeição de arquivo\nexterno inseguro, o bootstrap, os leases contra rename e a promoção vinculada\nao handle. O run canônico é\n[`30866754435`](https://github.com/x86dx2/x86qw/actions/runs/30866754435).\n\nPara o código corretivo da PR 5, a validação local no macOS executou 765 testes\nde manutenção: 730 aprovados e 35 ignorados. Os cinco testes do site também\npassaram. Dos skips, 34 casos nativos Windows/Windows PowerShell estão\nreservados à matriz e um é o smoke de rede opt-in. O\n`verify`, `git diff --check`, `git lfs fsck` e o dry-run do Worker com 24 assets\ntambém foram aprovados. A matriz canônica da PR 5 é o\n[run 30871046055](https://github.com/x86dx2/x86qw/actions/runs/30871046055),\naprovado em 7/7 jobs: Ubuntu e macOS executaram 765 testes com 35 skips; Windows\nexecutou 765 com 45 skips; os cinco testes do site passaram em todos os jobs.\nEssa matriz ainda não substitui os smokes do candidato imutável.\n\nNo HEAD `29d76a4` da PR 6, 1.190 testes de manutenção passaram com 37 skips\nexplícitos, e os 5 testes do site passaram. Uma suíte focal de 349 testes, com\n6 skips nativos Windows no macOS, comprovou o manifesto e os 56\nmembros, ausência de `maintenance/` no zipapp, grafo sem ciclo, carregamento\ntardio de catálogos, identidade das fachadas, transações, goldens de gameplay,\nlocks e ownership adversarial de arquivos. Essa evidência local não substitui\na matriz final ou os smokes nativos.\n\n- resposta infinita e catálogo excessivo;\n- timeout de conexão, headers, leitura e deadline total;\n- redirect para HTTP;\n- corpo parcial, tamanho divergente e hash incorreto;\n- mirror parcial ou corrompido seguido por mirror íntegro;\n- traversal, colisões portáveis, links, atributos especiais, ZIP bomb, CRC\n  divergente e envelope com prefixo ou sufixo;\n- rollback sem apagar um staging ou destino substituído concorrentemente;\n- os 59 ZIP/PK3/PYZ distribuídos validados pela fronteira canônica;\n- `Retry-After`, backoff, jitter e status permanentes sem retry;\n- falta de espaço, permissão negada, escrita curta e falhas de `flush`, `fsync`\n  e `replace`;\n- matrizes históricas das PRs 2–5 e matriz integrada da PR 64 em Ubuntu, macOS\n  e Windows com Python 3.10 e 3.13;\n- gate adversarial para o Python embutido em PowerShell, `.bat`, variantes\n  shell, shebangs, concatenação/`join`, helpers de argv e imports dinâmicos;\n- validação integral, Git LFS e dry-run do site.\n\n## Limitações que esta release não resolve\n\n- catálogos e metadados dinâmicos ainda não possuem assinatura, expiração,\n  proteção contra rollback/freeze ou rotação de chaves; esse é o escopo do PR 9;\n- comandos de publicação via `gh` e `curl` continuam sob o redesenho imutável\n  do PR 10; eles enviam bytes e não são rotas de ingestão. O `curl` de upload\n  GitLab já começa com `--disable`, exige HTTPS e não segue redirects;\n- uma criação local de processo bloqueada dentro do sistema operacional não é\n  cancelável por thread; o chamador respeita o deadline e o filho tardio é morto\n  antes de DNS/socket, mas a thread daemon aguarda o retorno de `Popen`;\n- um reap patologicamente mais lento que a janela reservada pode terminar na\n  thread daemon depois do retorno; `kill` já foi solicitado e nenhuma nova\n  atividade DNS/socket é permitida;\n- o scanner estático não substitui review de reflexão, código gerado, extensões\n  nativas ou bibliotecas de rede ainda não inventariadas;\n- a DACL privada reduz acesso entre usuários locais comuns, mas não protege\n  contra código executando como o mesmo usuário, administrador que exerça\n  privilégios nativos ou kernel comprometido; o smoke dos runtimes sob uma\n  conta padrão sem elevação permanece no PR 11;\n- a finalização de quarantine usa handle validado no Windows e nome privado\n  imprevisível após rename exclusivo no POSIX; links e tipos especiais são\n  preservados. O POSIX não oferece remoção condicional por inode e não protege\n  contra código hostil executando como o mesmo usuário;\n- a sincronização build-time dos bootstraps usa staging privado e replace\n  atômico sem seguir symlink, mas ainda pressupõe checkout exclusivo por não\n  existir CAS portável de pathname na biblioteca padrão; a PR 10 formalizará\n  essa exclusividade na promoção do candidato;\n- testes portáveis do downloader não equivalem a smokes nativos dos runtimes.\n- o manifesto declarativo do zipapp gera a projeção do builder e é validado\n  contra o arquivo produzido;\n- a regressão integral integrada executou 1.197 testes de manutenção, com 37\n  skips explícitos, e cinco testes do site; a matriz da PR 64 passou em 7/7\n  jobs no Ubuntu, macOS e Windows com Python 3.10 e 3.13.\n\n## Contratos preservados\n\n- nenhum runtime, jogo, mod, mapa ou serviço novo;\n- `0.7.1`, seus hashes, bundles, tag e releases permanecem imutáveis;\n- canal, versão, perfis, configurações pessoais e dados instalados não mudam;\n  o stable legado é deliberadamente restaurado ao bundle upstream integral;\n- gameplay e argumentos existentes permanecem compatíveis; o ruleset assistido\n  e o Coach de Quad são adições opt-in.\n\nEste arquivo registra a evidência do código corretivo e da integração de\ngameplay. O hash do bundle e a verificação dos endpoints públicos são\nregistrados na promoção imutável da `0.7.2`.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.3",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.3.zip",
      "size": 286137,
      "sha256": "41ecb4d82d41c6d4733c6990c5baf40a9062f85ce9faf098d8e8822ad66784d6",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.3/x86qw-installer-0.7.3.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.3/x86qw-installer-0.7.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.3/x86qw-installer-0.7.3.zip"
      ],
      "distribution_path": "installer/packages/0.7.3/x86qw-installer-0.7.3.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.3",
      "release_title": "x86QW Installer 0.7.3",
      "release_notes": "# x86QW 0.7.3\n\nCorreção de manutenção para instalações macOS que atualizam o cliente stable\nupstream.\n\n## macOS stable\n\n- aceita bundles upstream sem entitlements declarados, como o ezQuake stable\n  3.6.9 preservado pela distribuição;\n- continua tratando o stable como não sandboxed quando `codesign` retorna\n  somente diagnóstico e nenhum plist de entitlements;\n- mantém a rejeição de plist de entitlements realmente inválido;\n- não altera assinatura, `Info.plist`, sandbox ou conteúdo do bundle stable.\n\n## Validação\n\n- regressão específica para bundle sem entitlements;\n- suíte de manutenção: 1.198 testes aprovados, 37 skips explícitos;\n- smoke local no bundle instalado `ezQuake Stable.app` confirmou\n  `app_is_sandboxed=False`.\n\n> Estado: **publicada e verificada**. A `0.7.3` é a versão `current`; a `0.7.2`\n> e todas as versões anteriores permanecem imutáveis no histórico.\n\nBundle: `x86qw-installer-0.7.3.zip` · 286137 bytes · SHA-256\n`41ecb4d82d41c6d4733c6990c5baf40a9062f85ce9faf098d8e8822ad66784d6`.",
      "mirror_title": "x86QW Installer 0.7.3",
      "mirror_notes": "# x86QW 0.7.3\n\nCorreção de manutenção para instalações macOS que atualizam o cliente stable\nupstream.\n\n## macOS stable\n\n- aceita bundles upstream sem entitlements declarados, como o ezQuake stable\n  3.6.9 preservado pela distribuição;\n- continua tratando o stable como não sandboxed quando `codesign` retorna\n  somente diagnóstico e nenhum plist de entitlements;\n- mantém a rejeição de plist de entitlements realmente inválido;\n- não altera assinatura, `Info.plist`, sandbox ou conteúdo do bundle stable.\n\n## Validação\n\n- regressão específica para bundle sem entitlements;\n- suíte de manutenção: 1.198 testes aprovados, 37 skips explícitos;\n- smoke local no bundle instalado `ezQuake Stable.app` confirmou\n  `app_is_sandboxed=False`.\n\n> Estado: **publicada e verificada**. A `0.7.3` é a versão `current`; a `0.7.2`\n> e todas as versões anteriores permanecem imutáveis no histórico.\n\nBundle: `x86qw-installer-0.7.3.zip` · 286137 bytes · SHA-256\n`41ecb4d82d41c6d4733c6990c5baf40a9062f85ce9faf098d8e8822ad66784d6`.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.4",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.4.zip",
      "size": 286223,
      "sha256": "37f1372d2252a72ebdacb489ac15aacb45d45cebc5ee537ef158e43ed4e23e7f",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.4/x86qw-installer-0.7.4.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.4/x86qw-installer-0.7.4.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.4/x86qw-installer-0.7.4.zip"
      ],
      "distribution_path": "installer/packages/0.7.4/x86qw-installer-0.7.4.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.4",
      "release_title": "x86QW Installer 0.7.4",
      "release_notes": "# x86QW 0.7.4\n\nRelease corretiva da verdade de plataforma e da matriz de validação do x86QW.\n\n> Estado: candidata preparada em uma PR de release separada. A tag e a\n> publicação pública serão criadas somente após o merge e a etapa remota de\n> publicação autorizada.\n\n## Verdade de plataforma\n\n- separa presença de artefato, suporte declarado e validação executada;\n- conserva o cliente macOS universal como suporte condicional;\n- classifica Linux, Windows, serviços macOS e variantes ainda não submetidas a\n  smoke nativo como preview quando essa é a evidência disponível;\n- registra `portable-contract` para a validação de catálogo, contratos,\n  caminhos e CLI, sem apresentar isso como smoke nativo de runtime;\n- não declara evidência M3, assinatura Developer ID, notarização ou confiança\n  operacional de produção.\n\n## Evidência de entrada\n\n- a correção de plataforma foi integrada pela PR #66 em `db5f7088`;\n- os sete contextos protegidos passaram no head final da PR A;\n- esta PR acrescenta a identidade 0.7.4, os artefatos derivados e a regressão\n  da publicação corretiva.\n\n## Integridade\n\nO bundle 0.7.3 permanece histórico e imutável. O pacote 0.7.4 somente será\nconsiderado público depois que a tag, o asset, os mirrors, o catálogo e os\nbootstraps forem verificados após a publicação.\n\nIdentidade candidata: `x86qw-installer-0.7.4.zip`, 286223 bytes,\nSHA-256 `37f1372d2252a72ebdacb489ac15aacb45d45cebc5ee537ef158e43ed4e23e7f`.",
      "mirror_title": "x86QW Installer 0.7.4",
      "mirror_notes": "# x86QW 0.7.4\n\nRelease corretiva da verdade de plataforma e da matriz de validação do x86QW.\n\n> Estado: candidata preparada em uma PR de release separada. A tag e a\n> publicação pública serão criadas somente após o merge e a etapa remota de\n> publicação autorizada.\n\n## Verdade de plataforma\n\n- separa presença de artefato, suporte declarado e validação executada;\n- conserva o cliente macOS universal como suporte condicional;\n- classifica Linux, Windows, serviços macOS e variantes ainda não submetidas a\n  smoke nativo como preview quando essa é a evidência disponível;\n- registra `portable-contract` para a validação de catálogo, contratos,\n  caminhos e CLI, sem apresentar isso como smoke nativo de runtime;\n- não declara evidência M3, assinatura Developer ID, notarização ou confiança\n  operacional de produção.\n\n## Evidência de entrada\n\n- a correção de plataforma foi integrada pela PR #66 em `db5f7088`;\n- os sete contextos protegidos passaram no head final da PR A;\n- esta PR acrescenta a identidade 0.7.4, os artefatos derivados e a regressão\n  da publicação corretiva.\n\n## Integridade\n\nO bundle 0.7.3 permanece histórico e imutável. O pacote 0.7.4 somente será\nconsiderado público depois que a tag, o asset, os mirrors, o catálogo e os\nbootstraps forem verificados após a publicação.\n\nIdentidade candidata: `x86qw-installer-0.7.4.zip`, 286223 bytes,\nSHA-256 `37f1372d2252a72ebdacb489ac15aacb45d45cebc5ee537ef158e43ed4e23e7f`.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.5",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.5.zip",
      "size": 577437,
      "sha256": "2af9a14729f0aa4dfd3ae8397fa025bc92c7b354ad5df8f1b741406e69414cf6",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.5/x86qw-installer-0.7.5.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.5/x86qw-installer-0.7.5.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.5/x86qw-installer-0.7.5.zip"
      ],
      "distribution_path": "installer/packages/0.7.5/x86qw-installer-0.7.5.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.5",
      "release_title": "x86QW Installer 0.7.5",
      "release_notes": "# x86QW 0.7.5\n\nHotfix do canal autenticado de atualização do x86QW.\n\n## TUF\n\n- incorpora ao instalador a root pública Ed25519 de produção;\n- exige thresholds `2-de-3` para root e targets e `1-de-2` para snapshot e\n  timestamp;\n- autentica o catálogo pelo fluxo root → timestamp → snapshot → targets;\n- publica consistent snapshots em `/api/v1/trust/`;\n- falha de forma fechada quando a cadeia, o catálogo ou as versões divergem.\n\nAs dez chaves privadas não fazem parte do Git, do bundle, dos artefatos de CI\nou do site. A release 0.7.4 permanece histórica e imutável.\n\n## Validação\n\n- testes de threshold, expiração, rollback, equivocation e rotação de root;\n- refresh real com `python-tuf` 7.0.0 sobre a metadata assinada;\n- verificação do hash fixado da root incorporada;\n- inspeção do ZIP para impedir material privado.",
      "mirror_title": "x86QW Installer 0.7.5",
      "mirror_notes": "# x86QW 0.7.5\n\nHotfix do canal autenticado de atualização do x86QW.\n\n## TUF\n\n- incorpora ao instalador a root pública Ed25519 de produção;\n- exige thresholds `2-de-3` para root e targets e `1-de-2` para snapshot e\n  timestamp;\n- autentica o catálogo pelo fluxo root → timestamp → snapshot → targets;\n- publica consistent snapshots em `/api/v1/trust/`;\n- falha de forma fechada quando a cadeia, o catálogo ou as versões divergem.\n\nAs dez chaves privadas não fazem parte do Git, do bundle, dos artefatos de CI\nou do site. A release 0.7.4 permanece histórica e imutável.\n\n## Validação\n\n- testes de threshold, expiração, rollback, equivocation e rotação de root;\n- refresh real com `python-tuf` 7.0.0 sobre a metadata assinada;\n- verificação do hash fixado da root incorporada;\n- inspeção do ZIP para impedir material privado.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.6",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.6.zip",
      "size": 577554,
      "sha256": "ee3ce227fd1e6b604d56cf1c7559b57fe843fd5377fa592c075ba7210ed740c0",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.6/x86qw-installer-0.7.6.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.6/x86qw-installer-0.7.6.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.6/x86qw-installer-0.7.6.zip"
      ],
      "distribution_path": "installer/packages/0.7.6/x86qw-installer-0.7.6.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.6",
      "release_title": "x86QW Installer 0.7.6",
      "release_notes": "# x86QW 0.7.6\n\nHotfix do refresh TUF do instalador público.\n\n## Correção\n\n- preserva o status HTTP 404 recebido ao consultar a próxima versão de\n  `root.json`, permitindo que o cliente TUF encerre normalmente a rotação de\n  root quando não existe uma versão posterior;\n- mantém os limites de download, o catálogo autenticado e o comportamento\n  fail-closed para qualquer outra falha de trust;\n- adiciona regressão que reproduz a conversão de erro feita pelo downloader do\n  instalador.\n\nA release 0.7.5 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.6 e para a nova versão monotônica da metadata TUF.\n\n## Validação\n\n- refresh TUF real usando o domínio público;\n- instalação nova isolada pelo bootstrap público;\n- atualização e verificação pela CLI instalada;\n- hashes conferidos nos mirrors GitHub e GitLab.",
      "mirror_title": "x86QW Installer 0.7.6",
      "mirror_notes": "# x86QW 0.7.6\n\nHotfix do refresh TUF do instalador público.\n\n## Correção\n\n- preserva o status HTTP 404 recebido ao consultar a próxima versão de\n  `root.json`, permitindo que o cliente TUF encerre normalmente a rotação de\n  root quando não existe uma versão posterior;\n- mantém os limites de download, o catálogo autenticado e o comportamento\n  fail-closed para qualquer outra falha de trust;\n- adiciona regressão que reproduz a conversão de erro feita pelo downloader do\n  instalador.\n\nA release 0.7.5 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.6 e para a nova versão monotônica da metadata TUF.\n\n## Validação\n\n- refresh TUF real usando o domínio público;\n- instalação nova isolada pelo bootstrap público;\n- atualização e verificação pela CLI instalada;\n- hashes conferidos nos mirrors GitHub e GitLab.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.7",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.7.zip",
      "size": 577558,
      "sha256": "7a3b0f2551f267e5d9a03ce9e3ac0b1a55b8be1bfc47f075500415624bfa637f",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.7/x86qw-installer-0.7.7.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.7/x86qw-installer-0.7.7.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.7/x86qw-installer-0.7.7.zip"
      ],
      "distribution_path": "installer/packages/0.7.7/x86qw-installer-0.7.7.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.7",
      "release_title": "x86QW Installer 0.7.7",
      "release_notes": "# x86QW 0.7.7\n\nHotfix do perfil Completo para pacotes grandes autenticados.\n\n## Correção\n\n- permite o hashing de arquivos ZIP de componentes com até 512 MiB, o mesmo\n  limite já aplicado ao download e ao arquivo-fonte do extrator;\n- mantém em 128 MiB o limite individual de cada arquivo extraído;\n- corrige a instalação do QRP alta resolução, cujo pacote tem aproximadamente\n  385,4 MiB;\n- adiciona regressão que reproduz a falha `EFBIG` observada no perfil Completo.\n\nA release 0.7.6 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.7 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- suíte completa de manutenção e site;\n- instalação dos 21 componentes pelo perfil Completo;\n- atualização e verificação pela CLI instalada;\n- hashes conferidos nos mirrors GitHub e GitLab.",
      "mirror_title": "x86QW Installer 0.7.7",
      "mirror_notes": "# x86QW 0.7.7\n\nHotfix do perfil Completo para pacotes grandes autenticados.\n\n## Correção\n\n- permite o hashing de arquivos ZIP de componentes com até 512 MiB, o mesmo\n  limite já aplicado ao download e ao arquivo-fonte do extrator;\n- mantém em 128 MiB o limite individual de cada arquivo extraído;\n- corrige a instalação do QRP alta resolução, cujo pacote tem aproximadamente\n  385,4 MiB;\n- adiciona regressão que reproduz a falha `EFBIG` observada no perfil Completo.\n\nA release 0.7.6 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.7 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- suíte completa de manutenção e site;\n- instalação dos 21 componentes pelo perfil Completo;\n- atualização e verificação pela CLI instalada;\n- hashes conferidos nos mirrors GitHub e GitLab.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.8",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.8.zip",
      "size": 577617,
      "sha256": "a594700b634be563c941d99272e017d8da2434417fa82c412666ac1e45db818c",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.8/x86qw-installer-0.7.8.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.8/x86qw-installer-0.7.8.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.8/x86qw-installer-0.7.8.zip"
      ],
      "distribution_path": "installer/packages/0.7.8/x86qw-installer-0.7.8.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.8",
      "release_title": "x86QW Installer 0.7.8",
      "release_notes": "# x86QW 0.7.8\n\nHotfix da inicialização de Frogbots nas partidas KTX locais.\n\n## Correção\n\n- mantém os aliases de gerenciamento de Frogbots no nível superior da\n  configuração efêmera;\n- faz o evento de entrada do KTX chamar um único alias raiz, evitando que o\n  ezQuake descarte a sequência pós-mapa quando a configuração é longa;\n- corrige o comando `3on3on3` com oito bots, habilidade 20, nomes x86QW e mapa\n  `aerowalk`;\n- adiciona regressão automatizada para o comando exato relatado e preserva os\n  fluxos ToT, Practice, Race e CTF.\n\nA release 0.7.7 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.8 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED reproduzindo a cadeia inválida de 23 aliases;\n- seis testes KTX direcionados;\n- suíte completa de componentes modernos;\n- gate completo de manutenção e site;\n- contratos portáveis do GitHub Actions em macOS, Linux e Windows.",
      "mirror_title": "x86QW Installer 0.7.8",
      "mirror_notes": "# x86QW 0.7.8\n\nHotfix da inicialização de Frogbots nas partidas KTX locais.\n\n## Correção\n\n- mantém os aliases de gerenciamento de Frogbots no nível superior da\n  configuração efêmera;\n- faz o evento de entrada do KTX chamar um único alias raiz, evitando que o\n  ezQuake descarte a sequência pós-mapa quando a configuração é longa;\n- corrige o comando `3on3on3` com oito bots, habilidade 20, nomes x86QW e mapa\n  `aerowalk`;\n- adiciona regressão automatizada para o comando exato relatado e preserva os\n  fluxos ToT, Practice, Race e CTF.\n\nA release 0.7.7 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.8 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressão RED reproduzindo a cadeia inválida de 23 aliases;\n- seis testes KTX direcionados;\n- suíte completa de componentes modernos;\n- gate completo de manutenção e site;\n- contratos portáveis do GitHub Actions em macOS, Linux e Windows.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "0.7.9",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-0.7.9.zip",
      "size": 581134,
      "sha256": "fb08bc987641d4bea84c463d8f58b9c93b62595ff42ea0f764d4123814be7e33",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.9/x86qw-installer-0.7.9.zip",
      "license": "x86qw-project-terms",
      "license_url": "https://github.com/x86dx2/x86qw",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-0.7.9/x86qw-installer-0.7.9.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/0.7.9/x86qw-installer-0.7.9.zip"
      ],
      "distribution_path": "installer/packages/0.7.9/x86qw-installer-0.7.9.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-0.7.9",
      "release_title": "x86QW Installer 0.7.9",
      "release_notes": "# x86QW 0.7.9\n\nCorreção da comparação de mudanças locais após uma instalação limpa.\n\n## Correção\n\n- registra os arquivos de configuração pessoal criados pelo instalador em um\n  baseline transacional separado dos componentes gerenciados;\n- faz `x86qw changes` considerar esse baseline, evitando marcar como novos os\n  arquivos padrão acabados de instalar;\n- adiciona `x86qw changes --sync-gitignore` para ignorar somente os arquivos\n  exatos da instalação e manter arquivos novos visíveis ao Git;\n- adota configurações legadas apenas quando os bytes ainda são idênticos ao\n  template, preservando alterações pessoais existentes;\n- mantém a comparação portátil e determinística em Linux, macOS e Windows.\n\nA release 0.7.8 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.9 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressões de instalação limpa, arquivo novo, alterado e removido;\n- regressões de rollback e adoção segura de configurações legadas;\n- gate completo de manutenção e site;\n- contratos portáveis do GitHub Actions com Python 3.10 e 3.13 em macOS, Linux\n  e Windows.",
      "mirror_title": "x86QW Installer 0.7.9",
      "mirror_notes": "# x86QW 0.7.9\n\nCorreção da comparação de mudanças locais após uma instalação limpa.\n\n## Correção\n\n- registra os arquivos de configuração pessoal criados pelo instalador em um\n  baseline transacional separado dos componentes gerenciados;\n- faz `x86qw changes` considerar esse baseline, evitando marcar como novos os\n  arquivos padrão acabados de instalar;\n- adiciona `x86qw changes --sync-gitignore` para ignorar somente os arquivos\n  exatos da instalação e manter arquivos novos visíveis ao Git;\n- adota configurações legadas apenas quando os bytes ainda são idênticos ao\n  template, preservando alterações pessoais existentes;\n- mantém a comparação portátil e determinística em Linux, macOS e Windows.\n\nA release 0.7.8 permanece histórica e imutável. O bootstrap público passa a\napontar para o bundle 0.7.9 e para a versão seguinte da metadata TUF.\n\n## Validação\n\n- regressões de instalação limpa, arquivo novo, alterado e removido;\n- regressões de rollback e adoção segura de configurações legadas;\n- gate completo de manutenção e site;\n- contratos portáveis do GitHub Actions com Python 3.10 e 3.13 em macOS, Linux\n  e Windows.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "1.0.1",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-1.0.1.zip",
      "size": 615583,
      "sha256": "3dbf041485cd959f3394c9fa96d04b16cb186797230bd005103517b0e2b30d35",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.1/x86qw-installer-1.0.1.zip",
      "license": "MIT",
      "license_url": "https://github.com/x86dx2/x86qw/blob/x86qw-installer-1.0.1/LICENSE",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.1/x86qw-installer-1.0.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/1.0.1/x86qw-installer-1.0.1.zip"
      ],
      "distribution_path": "installer/packages/1.0.1/x86qw-installer-1.0.1.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-1.0.1",
      "release_title": "x86QW Installer 1.0.1",
      "release_notes": "# x86QW 1.0.1\n\nFonte e instalador current passam a `1.0.1`. A `0.7.13` permanece no catálogo\ncomo baseline histórica, não como current.\n\n## O que entra\n\n- conserto do `host` dedicado no MVDSV 1.11 (cfg efêmero curto, RCON hex,\n  sem autoexec de `server.cfg` da sessão, `sv_crypt_rcon` religado em bind\n  externo);\n- `status --json`, `doctor` e `ui` aceitam o `--target` injetado pelo launcher;\n- jogos não-KTX sem `--mode` não cancelam no EOF;\n- capacidades já na árvore (`doctor`, perfis, library, presets, UI local)\n  passam a ser 1.0.x; não há linha 1.1 nesta fase.\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags `0.7.13` e `1.0.0` permanecem imutáveis;\n- fixtures de migração `0.7.0–0.7.13` ficam como história, não como current;\n- TUF de produção e evidência nativa M3 do candidato exato continuam gates\n  separados da promoção pública.\n\n## Validação\n\n- testes do `host_spec`, launcher `--target` e não-KTX;\n- `manage.py verify` e a suíte portátil após o corte da fonte.",
      "mirror_title": "x86QW Installer 1.0.1",
      "mirror_notes": "# x86QW 1.0.1\n\nFonte e instalador current passam a `1.0.1`. A `0.7.13` permanece no catálogo\ncomo baseline histórica, não como current.\n\n## O que entra\n\n- conserto do `host` dedicado no MVDSV 1.11 (cfg efêmero curto, RCON hex,\n  sem autoexec de `server.cfg` da sessão, `sv_crypt_rcon` religado em bind\n  externo);\n- `status --json`, `doctor` e `ui` aceitam o `--target` injetado pelo launcher;\n- jogos não-KTX sem `--mode` não cancelam no EOF;\n- capacidades já na árvore (`doctor`, perfis, library, presets, UI local)\n  passam a ser 1.0.x; não há linha 1.1 nesta fase.\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags `0.7.13` e `1.0.0` permanecem imutáveis;\n- fixtures de migração `0.7.0–0.7.13` ficam como história, não como current;\n- TUF de produção e evidência nativa M3 do candidato exato continuam gates\n  separados da promoção pública.\n\n## Validação\n\n- testes do `host_spec`, launcher `--target` e não-KTX;\n- `manage.py verify` e a suíte portátil após o corte da fonte.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "1.0.2",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-1.0.2.zip",
      "size": 615611,
      "sha256": "35e77723276c5bfc0d3f52f7d2a009d2eb8bdfc3c02f43c08409005cc61b58a3",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.2/x86qw-installer-1.0.2.zip",
      "license": "MIT",
      "license_url": "https://github.com/x86dx2/x86qw/blob/x86qw-installer-1.0.2/LICENSE",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.2/x86qw-installer-1.0.2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/1.0.2/x86qw-installer-1.0.2.zip"
      ],
      "distribution_path": "installer/packages/1.0.2/x86qw-installer-1.0.2.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-1.0.2",
      "release_title": "x86QW Installer 1.0.2",
      "release_notes": "# x86QW 1.0.2\n\nFonte e instalador current passam a `1.0.2`. A `1.0.1` e a `0.7.13` permanecem\nno catálogo como históricas, não como current.\n\n## O que entra\n\n- `migrate --dry-run` autentica a linha `1.0.x` (incluindo `1.0.1`/`1.0.2`);\n  uma instalação current deixa de ser tratada como história sem família;\n- `cleanup` finaliza o cache Darwin quando `root.json` do TUF é symlink.\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags `0.7.13`, `1.0.0` e `1.0.1` permanecem imutáveis;\n- fixtures de migração `0.7.0–0.7.13` ficam como história, não como current.\n\n## Validação\n\n- testes de estado/`migrate` para `1.0.1` e de `cleanup` com symlink TUF;\n- harness nativo M3 25/25 no digest exato deste zip.",
      "mirror_title": "x86QW Installer 1.0.2",
      "mirror_notes": "# x86QW 1.0.2\n\nFonte e instalador current passam a `1.0.2`. A `1.0.1` e a `0.7.13` permanecem\nno catálogo como históricas, não como current.\n\n## O que entra\n\n- `migrate --dry-run` autentica a linha `1.0.x` (incluindo `1.0.1`/`1.0.2`);\n  uma instalação current deixa de ser tratada como história sem família;\n- `cleanup` finaliza o cache Darwin quando `root.json` do TUF é symlink.\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags `0.7.13`, `1.0.0` e `1.0.1` permanecem imutáveis;\n- fixtures de migração `0.7.0–0.7.13` ficam como história, não como current.\n\n## Validação\n\n- testes de estado/`migrate` para `1.0.1` e de `cleanup` com symlink TUF;\n- harness nativo M3 25/25 no digest exato deste zip.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "1.0.3",
      "current": false,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-1.0.3.zip",
      "size": 616754,
      "sha256": "5afd32704f27200256eb0519c1da42d32a4aa8034f1332598c71f60271621c3b",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.3/x86qw-installer-1.0.3.zip",
      "license": "MIT",
      "license_url": "https://github.com/x86dx2/x86qw/blob/x86qw-installer-1.0.3/LICENSE",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.3/x86qw-installer-1.0.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/1.0.3/x86qw-installer-1.0.3.zip"
      ],
      "distribution_path": "installer/packages/1.0.3/x86qw-installer-1.0.3.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-1.0.3",
      "release_title": "x86QW Installer 1.0.3",
      "release_notes": "# x86QW 1.0.3\n\nFonte e instalador current passam a `1.0.3`. A `1.0.2`, a `1.0.1`, a `1.0.0`\ne a `0.7.13` permanecem no catálogo como históricas, não como current.\n\n## O que entra\n\n- TUI interativa com hierarquia mais clara, grupos Partida/Instalação,\n  busca visível, seleção sem depender de cor, e Home/End/PageUp/PageDown;\n- o menu pergunta \"O que você quer fazer?\" em vez de um slogan.\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags `0.7.13`, `1.0.0`, `1.0.1` e `1.0.2` permanecem imutáveis;\n- fixtures de migração `0.7.0–0.7.13` ficam como história, não como current.\n\n## Validação\n\n- testes do motor de menu, contratos do menu instalado e alinhamento play/KTX;\n- Validate portátil no corte da fonte.",
      "mirror_title": "x86QW Installer 1.0.3",
      "mirror_notes": "# x86QW 1.0.3\n\nFonte e instalador current passam a `1.0.3`. A `1.0.2`, a `1.0.1`, a `1.0.0`\ne a `0.7.13` permanecem no catálogo como históricas, não como current.\n\n## O que entra\n\n- TUI interativa com hierarquia mais clara, grupos Partida/Instalação,\n  busca visível, seleção sem depender de cor, e Home/End/PageUp/PageDown;\n- o menu pergunta \"O que você quer fazer?\" em vez de um slogan.\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags `0.7.13`, `1.0.0`, `1.0.1` e `1.0.2` permanecem imutáveis;\n- fixtures de migração `0.7.0–0.7.13` ficam como história, não como current.\n\n## Validação\n\n- testes do motor de menu, contratos do menu instalado e alinhamento play/KTX;\n- Validate portátil no corte da fonte.",
      "mirror_latest": false
    },
    {
      "component": "installer",
      "package": "x86qw-installer",
      "version": "1.0.4",
      "current": true,
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "x86qw-installer-1.0.4.zip",
      "size": 617049,
      "sha256": "24a3115db79a60601d4afd48da1ecb06a8ec5a4593f485450b3bd34cc2492011",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.4/x86qw-installer-1.0.4.zip",
      "license": "MIT",
      "license_url": "https://github.com/x86dx2/x86qw/blob/x86qw-installer-1.0.4/LICENSE",
      "source_urls": [
        "https://github.com/x86dx2/x86qw"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.4/x86qw-installer-1.0.4.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/1.0.4/x86qw-installer-1.0.4.zip"
      ],
      "distribution_path": "installer/packages/1.0.4/x86qw-installer-1.0.4.zip",
      "release_url": "https://github.com/x86dx2/x86qw/releases/tag/x86qw-installer-1.0.4",
      "release_title": "x86QW Installer 1.0.4",
      "release_notes": "# x86QW 1.0.4\n\nFonte e instalador current passam a `1.0.4`. A `1.0.3`, a `1.0.2`, a `1.0.1`,\na `1.0.0` e a `0.7.13` permanecem no catálogo como históricas, não como current.\n\n## O que entra\n\n- bootstrap público compatível com Windows PowerShell 5.1, sem transportar\n  programas Python multilinha por `python -c`;\n- cache TUF no Windows usa um arquivo regular autenticado para `root.json`,\n  dispensando privilégio de criação de link simbólico (WinError 1314).\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags anteriores permanecem imutáveis;\n- a validação de SHA-256, tamanho, ZIP e metadata TUF continua fail-closed.\n\n## Validação\n\n- regressão da falha WinError 1314 e autenticação do catálogo;\n- harness nativo do Windows PowerShell 5.1 para materialização do extrator;\n- Validate portátil no corte da fonte.",
      "mirror_title": "x86QW Installer 1.0.4",
      "mirror_notes": "# x86QW 1.0.4\n\nFonte e instalador current passam a `1.0.4`. A `1.0.3`, a `1.0.2`, a `1.0.1`,\na `1.0.0` e a `0.7.13` permanecem no catálogo como históricas, não como current.\n\n## O que entra\n\n- bootstrap público compatível com Windows PowerShell 5.1, sem transportar\n  programas Python multilinha por `python -c`;\n- cache TUF no Windows usa um arquivo regular autenticado para `root.json`,\n  dispensando privilégio de criação de link simbólico (WinError 1314).\n\n## O que não muda\n\n- audiência `owner-only`; `external-public` continua `NO-GO`;\n- pacotes e tags anteriores permanecem imutáveis;\n- a validação de SHA-256, tamanho, ZIP e metadata TUF continua fail-closed.\n\n## Validação\n\n- regressão da falha WinError 1314 e autenticação do catálogo;\n- harness nativo do Windows PowerShell 5.1 para materialização do extrator;\n- Validate portátil no corte da fonte.",
      "mirror_latest": true
    },
    {
      "component": "ktx",
      "package": "ktx",
      "version": "1.47+x86qw.19",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "ktx-1.47+x86qw.19.zip",
      "size": 2542818,
      "sha256": "d2535f65fbeee1a1baf80655d85dcb3cb76c7608d2a5eed86e82ea0d1a9e5b78",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/ktx-1.47-x86qw.19/ktx-1.47+x86qw.19.zip",
      "license": "GPL-2.0",
      "license_url": "https://github.com/QW-Group/ktx/blob/1.47/LICENSE.md",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
        "https://github.com/QW-Group/ktx/archive/refs/tags/1.47.tar.gz",
        "https://github.com/QW-Group/ktx/releases/tag/1.47"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/ktx-1.47-x86qw.19/ktx-1.47+x86qw.19.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/ktx/1.47+x86qw.19/ktx-1.47+x86qw.19.zip"
      ],
      "mirror_title": "x86QW Content · KTX x86QW 1.47+x86qw.19",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_revision": "ce329889f97cc5bacf85b6388d3c5d8f242769fd",
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "release_url": "https://github.com/QW-Group/ktx/releases/tag/1.47",
      "release_notes": "Parte da curadoria KTX do nQuake, preserva seu conteúdo exclusivo e usa os recursos oficiais do KTX 1.47. O QVM reprodutível x86QW acrescenta nomes Frogbot declarativos, habilidade aleatória, balanceamento automático, nomes únicos por função e um Coach de Quad opt-in para partidas casuais. O launcher expõe 24 modos, planos contextuais de teclas sem comandos crus e oferece somente mapas compatíveis com os recursos instalados. Arma, vida e interrupção por morte ficam restritas ao ToT; camisa, calça, skins e cores relacionais continuam sob controle do KTX e da configuração pessoal.",
      "upstream_version": "1.47"
    },
    {
      "component": "mvdsv",
      "package": "mvdsv",
      "version": "1.11+x86qw.3",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "mvdsv-1.11+x86qw.3.zip",
      "size": 1121432,
      "sha256": "dffadf1038f284c55ee525f1df5416da733e66f31f661741a9cf05473bdf87be",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/mvdsv-1.11-x86qw.3/mvdsv-1.11+x86qw.3.zip",
      "license": "GPL-2.0",
      "license_url": "https://github.com/QW-Group/mvdsv/blob/1.11/LICENSE.md",
      "source_urls": [
        "https://github.com/QW-Group/mvdsv/releases/download/1.11/mvdsv-source-with-submodules-1.11.zip",
        "https://github.com/QW-Group/mvdsv/releases/tag/1.11"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/mvdsv-1.11-x86qw.3/mvdsv-1.11+x86qw.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/mvdsv/1.11+x86qw.3/mvdsv-1.11+x86qw.3.zip"
      ],
      "mirror_title": "x86QW Content · MVDSV dedicado 1.11+x86qw.3",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_revision": "a1312d109587fdc62d6373b3ba321926730d08de82ad6a9f4360ca81b9398e31",
      "release_url": "https://github.com/QW-Group/mvdsv/releases/tag/1.11",
      "release_notes": "MVDSV 1.11 oficial para Linux e Windows, mais build macOS arm64 reproduzível do mesmo tag com correção mínima para alargamento dos argumentos QVM de 32 para 64 bits. O bootstrap instala somente o executável da plataforma selecionada no diretório operacional do jogo.",
      "upstream_version": "1.11"
    },
    {
      "component": "nquake",
      "package": "nquake-base-textures",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-base-textures-e4cb23d40aa2.zip",
      "size": 21149469,
      "sha256": "a0cf3404714019d5d554b1e0369346c481b11a15815933b75b41dc232106b532",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-base-textures-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-base-textures-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-base-textures/e4cb23d40aa2/nquake-base-textures-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-bootstrap",
      "version": "e4cb23d40aa2+x86qw.3",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-bootstrap-e4cb23d40aa2+x86qw.3.zip",
      "size": 28334,
      "sha256": "24c6836670679615b4af4899e84b14a3ee74d1b61d00b2db11e805ea257b4f9c",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-bootstrap-e4cb23d40aa2+x86qw.3.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-bootstrap-e4cb23d40aa2+x86qw.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-bootstrap/e4cb23d40aa2+x86qw.3/nquake-bootstrap-e4cb23d40aa2+x86qw.3.zip"
      ],
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
    },
    {
      "component": "nquake",
      "package": "nquake-crosshairs",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-crosshairs-e4cb23d40aa2.zip",
      "size": 14979,
      "sha256": "b20e7dff56aac2da3f7098760f51f19392c8982e17d5566420dab6928517fd21",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-crosshairs-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-crosshairs-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-crosshairs/e4cb23d40aa2/nquake-crosshairs-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-documentation",
      "version": "e4cb23d40aa2+x86qw.1",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-documentation-e4cb23d40aa2+x86qw.1.zip",
      "size": 12936,
      "sha256": "356c69c496d9e9c733f0893d85a8aff6408f80e9a6adc194352a63a5dbf6bdda",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-documentation-e4cb23d40aa2+x86qw.1.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-documentation-e4cb23d40aa2+x86qw.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-documentation/e4cb23d40aa2+x86qw.1/nquake-documentation-e4cb23d40aa2+x86qw.1.zip"
      ],
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
    },
    {
      "component": "nquake",
      "package": "nquake-external-textures",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-external-textures-e4cb23d40aa2.zip",
      "size": 3835861,
      "sha256": "80122cac09d35c2a350112329baff2c2c8243c328ad31871db7eb7db041bf0ea",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-external-textures-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-external-textures-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-external-textures/e4cb23d40aa2/nquake-external-textures-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-maps",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-maps-e4cb23d40aa2.zip",
      "size": 20471003,
      "sha256": "e714bec79c0ceda06924fd20ede9b1a0982f8687f44757333ea08a708b5408a2",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-maps-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-maps-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-maps/e4cb23d40aa2/nquake-maps-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-matchinfo",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-matchinfo-e4cb23d40aa2.zip",
      "size": 7411045,
      "sha256": "4128bf78da99a9721987c01719d7cf7d7013f2020ce3183ee35901be29a7fd01",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-matchinfo-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-matchinfo-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-matchinfo/e4cb23d40aa2/nquake-matchinfo-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-models",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-models-e4cb23d40aa2.zip",
      "size": 4045436,
      "sha256": "dd265bc63b6e3ab92190cecc71d0250283629415a9bd8dda468e56dc1f674be5",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-models-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-models-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-models/e4cb23d40aa2/nquake-models-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-player-skins",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-player-skins-e4cb23d40aa2.zip",
      "size": 14552089,
      "sha256": "01a6db7b338efebb723c7be62c22f1adc56eb43c7d35471f6d1ca4a59f07d6f4",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-player-skins-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-player-skins-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-player-skins/e4cb23d40aa2/nquake-player-skins-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-scoreboard-flags",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-scoreboard-flags-e4cb23d40aa2.zip",
      "size": 368135,
      "sha256": "404f6d6d91cb3969d3a6e162fc804469f6814b59bed71902095dcd0208a9a44e",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-scoreboard-flags-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-scoreboard-flags-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-scoreboard-flags/e4cb23d40aa2/nquake-scoreboard-flags-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-skyboxes",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-skyboxes-e4cb23d40aa2.zip",
      "size": 3988263,
      "sha256": "e9eed3c75b1019c71ef8c180f643db7defb774ffea2373baf35c1bed4f30f8ba",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-skyboxes-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-skyboxes-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-skyboxes/e4cb23d40aa2/nquake-skyboxes-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "nquake-visual-core",
      "version": "e4cb23d40aa2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "nquake-visual-core-e4cb23d40aa2.zip",
      "size": 15351608,
      "sha256": "9d9544519e639ba7d9684a76e2ddab7aea50e3a80fb338100b3bd070e1c5e212",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-visual-core-e4cb23d40aa2.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/nquake-visual-core-e4cb23d40aa2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/nquake-visual-core/e4cb23d40aa2/nquake-visual-core-e4cb23d40aa2.zip"
      ],
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false
    },
    {
      "component": "nquake",
      "package": "qrp-hires",
      "version": "e4cb23d40aa2+x86qw.1",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "qrp-hires-e4cb23d40aa2+x86qw.1.zip",
      "size": 404142106,
      "sha256": "8c03ca97533e2532b0c4dc9b4b4c7f08040a3295f4d99f7210ac043d2457f328",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/qrp-hires-e4cb23d40aa2+x86qw.1.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/qrp-hires-e4cb23d40aa2+x86qw.1.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/qrp-hires/e4cb23d40aa2+x86qw.1/qrp-hires-e4cb23d40aa2+x86qw.1.zip"
      ],
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
    },
    {
      "component": "pro-x",
      "package": "pro-x",
      "version": "1.1+x86qw.5",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "pro-x-1.1+x86qw.5.zip",
      "size": 9081099,
      "sha256": "ddc13030472c2376fcf045880a18495186491ac2e7f5ab378fe432f105e2c46d",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/pro-x-1.1/pro-x-1.1+x86qw.5.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://www.quakeworld.nu/forum/topic/3741/prox-11-released",
      "source_urls": [
        "https://web.archive.org/web/20150217054944id_/http://www.bendarling.net/downloads/prox/prox_11.zip",
        "https://www.quakeworld.nu/forum/topic/3741/prox-11-released"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/pro-x-1.1/pro-x-1.1+x86qw.5.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/pro-x/1.1+x86qw.5/pro-x-1.1+x86qw.5.zip"
      ],
      "mirror_title": "x86QW Content · Pro-X 1.1+x86qw.5",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_revision": "8f68563cd5abec1a1fbf2b1ec2288a96693c7bad12b2ab6ce977451c1ee72010",
      "release_url": "https://www.quakeworld.nu/forum/topic/3741/prox-11-released",
      "release_notes": "Atualiza o Pro-X 0.8b incorporado pelo nQuake para a última versão pública 1.1, reaplica o perfil de gameplay x86QW com plano de teclas impresso ao entrar e fornece um ENT derivado do BSP que remove somente quatro chaves obsoletas noname responsáveis por erros no console.",
      "upstream_version": "1.1"
    },
    {
      "component": "qtv",
      "package": "qtv",
      "version": "0+025ca949aca0+x86qw.2",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "qtv-0+025ca949aca0+x86qw.2.zip",
      "size": 12079424,
      "sha256": "b336e267f27386d32c2c1fae832b29f27c9bebcdc47579ed9a2c7de024457fde",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/qtv-025ca949aca0-x86qw.2/qtv-0+025ca949aca0+x86qw.2.zip",
      "license": "GPL-2.0",
      "license_url": "https://github.com/QW-Group/qtv/blob/025ca949aca06cad6777de0075148ac06a15f4f0/LICENSE",
      "source_urls": [
        "https://github.com/QW-Group/qtv/archive/025ca949aca06cad6777de0075148ac06a15f4f0.tar.gz",
        "https://github.com/QW-Group/qtv/commit/025ca949aca06cad6777de0075148ac06a15f4f0"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/qtv-025ca949aca0-x86qw.2/qtv-0+025ca949aca0+x86qw.2.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/qtv/0+025ca949aca0+x86qw.2/qtv-0+025ca949aca0+x86qw.2.zip"
      ],
      "mirror_title": "x86QW Content · QTV broadcast 0+025ca949aca0+x86qw.2",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_revision": "6742784e05b3222c2d82e18ac0f380218f9e8e8819d7834f0e80af366484f12d",
      "release_url": "https://github.com/QW-Group/qtv/commit/025ca949aca06cad6777de0075148ac06a15f4f0",
      "release_notes": "QTV fixado no commit oficial 025ca949aca0 e compilado de forma reproduzível para Linux amd64, Windows x64 e macOS arm64. O bootstrap instala somente a variante selecionada em qtv/, junto dos recursos e da configuração operacional.",
      "upstream_version": "025ca949aca0"
    },
    {
      "component": "qwfwd",
      "package": "qwfwd",
      "version": "1.30+x86qw.3",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "qwfwd-1.30+x86qw.3.zip",
      "size": 287386,
      "sha256": "ecb10fd2cd6389a6433d29f6a18bcdd1aa9734adc4a6b98b68d6ae44965f9458",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/qwfwd-1.30-x86qw.3/qwfwd-1.30+x86qw.3.zip",
      "license": "GPL-2.0",
      "license_url": "https://github.com/QW-Group/qwfwd/blob/1.30/LICENSE.md",
      "source_urls": [
        "https://github.com/QW-Group/qwfwd/archive/refs/tags/1.30.tar.gz",
        "https://github.com/QW-Group/qwfwd/releases/tag/1.30"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/qwfwd-1.30-x86qw.3/qwfwd-1.30+x86qw.3.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/qwfwd/1.30+x86qw.3/qwfwd-1.30+x86qw.3.zip"
      ],
      "mirror_title": "x86QW Content · QWFWD proxy 1.30+x86qw.3",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_revision": "07f0f9cd2a9f9ff8d054774ba351c34cab6785626476bda27017889fae9cff2a",
      "release_url": "https://github.com/QW-Group/qwfwd/releases/tag/1.30",
      "release_notes": "QWFWD 1.30 oficial para Linux e Windows, mais build macOS arm64 reproduzível do mesmo tag. O bootstrap instala somente a variante selecionada em qwfwd/, junto de sua configuração operacional.",
      "upstream_version": "1.30"
    },
    {
      "component": "td2",
      "package": "total-destruction-2",
      "version": "2.22+x86qw.5",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "total-destruction-2-2.22+x86qw.5.zip",
      "size": 502624,
      "sha256": "c5f0758db64d2d6aaea7d6a760cde055da555e2ecdbe327414213cabe78b4c7c",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/total-destruction-2-2.22/total-destruction-2-2.22+x86qw.5.zip",
      "license": "GPL-2.0-or-later",
      "license_url": "https://arenacamper.ddns.net/repo/quakeworld/quakeworld-TD2.22QW-server_PTBR.tar.gz",
      "source_urls": [
        "https://arenacamper.ddns.net/repo/quakeworld/quakeworld-TD2.22QW-server_PTBR.tar.gz",
        "https://arenacamper.ddns.net/repo/quakeworld/"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/total-destruction-2-2.22/total-destruction-2-2.22+x86qw.5.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/total-destruction-2/2.22+x86qw.5/total-destruction-2-2.22+x86qw.5.zip"
      ],
      "mirror_title": "x86QW Content · Total Destruction 2 2.22+x86qw.5",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_revision": "b0b7632debe931e435008df939bade3791b5d21abfbb66f828790f1996beca93",
      "release_url": "https://arenacamper.ddns.net/repo/quakeworld/",
      "release_notes": "Última distribuição completa TD2QW preservada no dist. O runtime usa gamecode recompilado com correções estritas de compatibilidade: campo wad restaurado, gravação e preferências do jogador preservadas, comandos remotos removidos, plano de teclas impresso ao entrar e referência de som morta eliminada; saw_down.wav continua restaurado do saw.wav byte-idêntico.",
      "upstream_version": "2.22"
    },
    {
      "component": "team-fortress",
      "package": "team-fortress",
      "version": "2.9+nquake.e4cb23d40aa2+x86qw.6",
      "channel": "content",
      "platform": "any",
      "architecture": "any",
      "filename": "team-fortress-2.9+nquake.e4cb23d40aa2+x86qw.6.zip",
      "size": 8566748,
      "sha256": "3fa20ef2e9c099101f418b7ffe3ac89c8fa2fe7c90d7c381d8f534dc4812e9a3",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/team-fortress-2.9/team-fortress-2.9+nquake.e4cb23d40aa2+x86qw.6.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://www.frag-net.com/mod_quake_fortress.html",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
        "https://www.frag-net.com/dl/mods/quake/fortress/tf_29src.zip",
        "https://www.frag-net.com/mod_quake_fortress.html"
      ],
      "redistribution_reviewed": true,
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/team-fortress-2.9/team-fortress-2.9+nquake.e4cb23d40aa2+x86qw.6.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/team-fortress/2.9+nquake.e4cb23d40aa2+x86qw.6/team-fortress-2.9+nquake.e4cb23d40aa2+x86qw.6.zip"
      ],
      "mirror_title": "x86QW Content · Team Fortress 2.9+nquake.e4cb23d40aa2+x86qw.6",
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_latest": false,
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "release_url": "https://www.frag-net.com/mod_quake_fortress.html",
      "release_notes": "Preserva mapas, modelos, sons e LOCs Team Fortress do nQuake, arquiva o cliente completo 2.8 exigido pela atualização server-only 2.9, restaura bounce2.wav de origem KTX verificável e usa gamecode 2.9 recompilado sem binds remotos forçados; controles permanecem no perfil local x86QW e a ajuda aparece somente sob demanda.",
      "upstream_version": "2.9"
    },
    {
      "architecture": "any",
      "channel": "content",
      "component": "x86qw",
      "filename": "x86qw-client-bootstrap-e4cb23d40aa2+x86qw.4.zip",
      "license": "upstream-distfiles-terms",
      "license_url": "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "mirror_latest": false,
      "mirror_notes": "Pacotes de conteúdo versionados da distribuição x86QW.",
      "mirror_title": "x86QW Content · nQuake e4cb23d40aa2",
      "origin_url": "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/x86qw-client-bootstrap-e4cb23d40aa2+x86qw.4.zip",
      "package": "x86qw-client-bootstrap",
      "platform": "any",
      "redistribution_reviewed": true,
      "sha256": "faf466dd54403ec690dc03652bf2ad5dfb88c6fdf3a635d17c102451873c72db",
      "size": 28721,
      "source_commit": "e4cb23d40aa202335b5dafe4e8f1e8d424caac0d",
      "source_urls": [
        "https://github.com/nQuake/distfiles/tree/e4cb23d40aa202335b5dafe4e8f1e8d424caac0d"
      ],
      "urls": [
        "https://github.com/x86dx2/x86qw/releases/download/nquake-e4cb23d40aa202335b5dafe4e8f1e8d424caac0d/x86qw-client-bootstrap-e4cb23d40aa2+x86qw.4.zip",
        "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-client-bootstrap/e4cb23d40aa2+x86qw.4/x86qw-client-bootstrap-e4cb23d40aa2+x86qw.4.zip"
      ],
      "version": "e4cb23d40aa2+x86qw.4"
    }
  ]
}
