quickhatch 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quickhatch-0.1.0/.github/CODEOWNERS +4 -0
- quickhatch-0.1.0/.github/FUNDING.yml +3 -0
- quickhatch-0.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +74 -0
- quickhatch-0.1.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- quickhatch-0.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +36 -0
- quickhatch-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- quickhatch-0.1.0/.github/workflows/ci.yml +31 -0
- quickhatch-0.1.0/.github/workflows/full-matrix.yml +40 -0
- quickhatch-0.1.0/.github/workflows/publish-pypi.yml +51 -0
- quickhatch-0.1.0/.github/workflows/release.yml +74 -0
- quickhatch-0.1.0/.gitignore +31 -0
- quickhatch-0.1.0/.pre-commit-config.yaml +19 -0
- quickhatch-0.1.0/CHANGELOG.md +126 -0
- quickhatch-0.1.0/CODE_OF_CONDUCT.md +49 -0
- quickhatch-0.1.0/CONTRIBUTING.md +137 -0
- quickhatch-0.1.0/GOVERNANCE.md +41 -0
- quickhatch-0.1.0/INSTRUCTIONS.md +73 -0
- quickhatch-0.1.0/LICENSE +50 -0
- quickhatch-0.1.0/PKG-INFO +295 -0
- quickhatch-0.1.0/README.md +195 -0
- quickhatch-0.1.0/SECURITY.md +67 -0
- quickhatch-0.1.0/docs/ARCHITECTURE.md +174 -0
- quickhatch-0.1.0/docs/arch-install-example.sh +86 -0
- quickhatch-0.1.0/docs/internal/agent-state.md +115 -0
- quickhatch-0.1.0/docs/internal/app-package-partial-success-test-design.md +210 -0
- quickhatch-0.1.0/docs/internal/live-model-gauntlet-gemini-3.1-flash-lite-holdout.md +75 -0
- quickhatch-0.1.0/docs/internal/live-model-gauntlet-gemini-3.1-flash-lite.md +122 -0
- quickhatch-0.1.0/docs/internal/vm-certification-arm64-2026-06-02.md +68 -0
- quickhatch-0.1.0/docs/model-recommendations.md +61 -0
- quickhatch-0.1.0/docs/screenshots/kde-plasma-after-migration.png +0 -0
- quickhatch-0.1.0/docs/testing-in-vm.md +108 -0
- quickhatch-0.1.0/docs/troubleshooting.md +156 -0
- quickhatch-0.1.0/pyproject.toml +96 -0
- quickhatch-0.1.0/scripts/live_model_gauntlet.py +825 -0
- quickhatch-0.1.0/src/quickhatch/__init__.py +11 -0
- quickhatch-0.1.0/src/quickhatch/__main__.py +6 -0
- quickhatch-0.1.0/src/quickhatch/ai/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/ai/install_primer.py +337 -0
- quickhatch-0.1.0/src/quickhatch/ai/instruction_gen.py +231 -0
- quickhatch-0.1.0/src/quickhatch/ai/model_list.py +140 -0
- quickhatch-0.1.0/src/quickhatch/ai/recipe_apply.py +178 -0
- quickhatch-0.1.0/src/quickhatch/analysis/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/analysis/app_catalog.py +628 -0
- quickhatch-0.1.0/src/quickhatch/analysis/app_mapper.py +193 -0
- quickhatch-0.1.0/src/quickhatch/analysis/distro_engine.py +84 -0
- quickhatch-0.1.0/src/quickhatch/analysis/driver_check.py +83 -0
- quickhatch-0.1.0/src/quickhatch/bridge/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/bridge/display.py +136 -0
- quickhatch-0.1.0/src/quickhatch/bridge/server.py +886 -0
- quickhatch-0.1.0/src/quickhatch/cli.py +1188 -0
- quickhatch-0.1.0/src/quickhatch/config.py +463 -0
- quickhatch-0.1.0/src/quickhatch/console.py +59 -0
- quickhatch-0.1.0/src/quickhatch/data/app_alternatives.json +222 -0
- quickhatch-0.1.0/src/quickhatch/data/app_catalog.generated.json +90774 -0
- quickhatch-0.1.0/src/quickhatch/data/app_catalog.overrides.json +54159 -0
- quickhatch-0.1.0/src/quickhatch/data/distros.json +110 -0
- quickhatch-0.1.0/src/quickhatch/data/driver_db.json +18 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-1amsimp1e-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-2kabhishek-dots2k.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-2ssk-dot-files.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-3d3f-ii-sddm-theme.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-acaibowlz-niri-setup.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ad1822-hyprdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-adriankarlen-bar-wezterm.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ahmad9059-hyprflux.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-allaman-nvim.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-anotherhadi-nixy.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-artart222-codeart.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ascaniolamp-hyprlain.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ashish0kumar-windots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-athxrvx-idempotentsystems.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-avivace-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-avtzis-awesome-linux-ricing.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ayamir-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ayamir-nvimdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-aymanlyesri-archeclipse.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-benmezger-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-bertof-nix-rice.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-bluemancz-hyprmod.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-caelestia-dots-shell.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-caioax-lyne-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-cebem1nt-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-christianlempa-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-command-z-z-arch-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-cosmicnvim-cosmicnvim.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-crissnb-dynamic-island-sketchybar.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-cxorz-dotfiles-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-cybersnake223-hypr.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-cybrcore-cybrdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-danihek-hellwal.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-danihek-themecord.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-darkkal44-qylock.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-datsfilipe-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-deathbeam-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-debuggyo-exo.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-denisse-dev-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-deridray-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-diinki-diinki-aero.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-diinki-diinki-retrofuture.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-diinki-linux-retroism.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-dikiaap-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-dileep-kishore-nixos-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-dmadisetti-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-driesvints-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-dusklinux-dusky.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-dustinlyons-nixos-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-dybdeskarphet-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ecosse3-nvim.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-edu-flores-linux-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-elifouts-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-elkowar-yolk.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-elpritchos-omadora.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-elysiaos-elysiaos.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-end-4-dots-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-endeavouros-team-endeavouros-i3wm-setup.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-exploitoverload-pwnixos.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-felipecrs-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-firestreaker2-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-flyingcakes85-lovebites.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-folke-dot.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-frogprog09-my-linux.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-frost-phoenix-nixos-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-gabrieltenma-dotfiles-gnm.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-gf3-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-gh0stzk-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-gnuunixchad-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-gpakosz-tmux.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-gvolpe-nix-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-haaarshsingh-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-hancore-linux-waybar-themes.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-heapbytes-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-heisenburgh-pixarch.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-hlissner-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-hyprland-community-hyprls.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ikz87-dots-2-0.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-iogamaster-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-issmirnov-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-jakoolit-arch-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-jakoolit-fedora-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-jakoolit-hyprland-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-jakoolit-opensuse-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-javalsai-lidm.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-jessfraz-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-jguer-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-johackim-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-justus0405-i3wm-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-keyitdev-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-keyitdev-sddm-astronaut-theme.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-klaxalk-linux-setup.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-koeqaife-hyprland-material-you.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-kutsan-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-lolei-razer-cli.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-m4xshen-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-madic-creates-sway-de.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-marcusmix-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-martins3-my-linux-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mastermindzh-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mathix420-free-the-web-apps.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mattmc3-antidote.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-maytermux-mytermux.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-meain-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-meowrch-meowrch.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-misterio77-nix-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mrusme-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mrusme-gomphotherium.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mubin-thinks-minimal-wm-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mutewinter-dot-vim.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-myamusashi-vast-shell.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-mylinuxforwork-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-n6v26r-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-neurarian-matshell.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-nickjj-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-nicknisi-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-nicksp-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-nix-darwin-nix-darwin.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-noctalia-dev-noctalia-shell.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-nocturnussx-hyprland-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-notmugil-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-notneelpatel-wallpaperthemeconverter.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-nwg-piotr-nwg-shell-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-opensuse-opensuseway.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-orhun-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-oughie-clock-rs.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ozwaldorf-lutgen-rs.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-pablonoya-awesomewm-configuration.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-pazl27-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-pinpox-base16-universal-manager.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-potamides-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-prasanthrangan-hyprdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-qxb3-conf.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-qxb3-fum.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-r0naldoom-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ray-x-nvim.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-rayhaanfay-xfce-creation-of-adam.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-redyf-nixdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-retrozinndev-colorshell.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-riccardopp-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ryan4yin-nix-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ryan4yin-nix-darwin-kickstarter.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-s4nkalp-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-s4nkalp-modus.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sangrokjung-claude-forge.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-saschagrunert-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sbalghari-sbdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-schmeekygeek-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sejjy-mechabar.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sekiryl-hyprdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sh1zicus-dots-hyprland.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-shell-ninja-hyprconf-v2.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-shell-ninja-hyprconf.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-shikikan-neko08-nyartix-rice.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-siduck-chadwm.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-simonvic-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sirethanator-hyprland-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-sly-harvey-nixos.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-snowarch-inir.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-swarsel-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-swaykh-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-szorfein-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-szorfein-dots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-techdufus-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-tsm-061-ctos.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-vallen217-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-victorsosamx-vshyprland-manager.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-victorsosamx-vswaybar-studio.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-viegphunt-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-vyrx-dev-symphony.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-xero-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-xnm1-linux-nixos-hyprland-config-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-youwes09-ateon.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-yunfachi-nix-config.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-yurihikari-garuda-hyprdots.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-zemmsoares-awesome-rices.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-zhaleff-blacknode.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-ziap-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/github-zproger-bspwm-dotfiles.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/gnome-12dampb.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/hyprland-1b4izs2.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/hyprland-1fp86p7.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/hyprland-1inxosk.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/hyprland-1jtjljz.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/hyprland-1jv48oq.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/i3wm-m7w790.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/unixporn-1k7c8i1.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/unixporn-1kcebee.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/unixporn-5crgng.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/unixporn-nhomed.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery/unixporn-r5ot7x.webp +0 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery.json +8850 -0
- quickhatch-0.1.0/src/quickhatch/data/gallery_descriptions.json +426 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/_index.json +253 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/alpine.md +118 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/arch.md +30 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/artix.md +69 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/bazzite.md +61 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/cachyos.md +53 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/common-pre-reboot-rules.md +200 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/debian.md +73 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/elementary.md +67 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/endeavouros.md +39 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/families/arch-family.md +294 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/families/debian-family.md +147 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/families/fedora-family.md +240 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/fedora-silverblue.md +78 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/fedora.md +51 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/garuda.md +90 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/gentoo.md +160 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/kali.md +97 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/kde-neon.md +61 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/linux-mint.md +49 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/manjaro.md +80 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/mx-linux.md +65 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/nixos.md +135 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/nobara.md +55 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/opensuse-leap.md +44 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/opensuse-tumbleweed.md +143 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/parrot.md +70 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/pop-os.md +80 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/rhel-clones.md +78 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/ubuntu.md +99 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/void.md +121 -0
- quickhatch-0.1.0/src/quickhatch/data/install_primers/zorin.md +49 -0
- quickhatch-0.1.0/src/quickhatch/export/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/gallery/__init__.py +15 -0
- quickhatch-0.1.0/src/quickhatch/gallery/build.py +91 -0
- quickhatch-0.1.0/src/quickhatch/gallery/common.py +492 -0
- quickhatch-0.1.0/src/quickhatch/gallery/components.py +475 -0
- quickhatch-0.1.0/src/quickhatch/gallery/curate.py +398 -0
- quickhatch-0.1.0/src/quickhatch/gallery/dedupe.py +93 -0
- quickhatch-0.1.0/src/quickhatch/gallery/describe.py +204 -0
- quickhatch-0.1.0/src/quickhatch/gallery/extract.py +467 -0
- quickhatch-0.1.0/src/quickhatch/gallery/filter.py +492 -0
- quickhatch-0.1.0/src/quickhatch/gallery/library.py +35 -0
- quickhatch-0.1.0/src/quickhatch/gallery/llm_extract.py +495 -0
- quickhatch-0.1.0/src/quickhatch/gallery/scrape.py +278 -0
- quickhatch-0.1.0/src/quickhatch/gallery/verify.py +60 -0
- quickhatch-0.1.0/src/quickhatch/gui/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/gui/app.html +5212 -0
- quickhatch-0.1.0/src/quickhatch/gui/index.html +38 -0
- quickhatch-0.1.0/src/quickhatch/gui/server.py +8775 -0
- quickhatch-0.1.0/src/quickhatch/media/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/media/iso_download.py +94 -0
- quickhatch-0.1.0/src/quickhatch/media/usb_writer.py +184 -0
- quickhatch-0.1.0/src/quickhatch/scanners/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/scanners/apps.py +458 -0
- quickhatch-0.1.0/src/quickhatch/scanners/files.py +118 -0
- quickhatch-0.1.0/src/quickhatch/scanners/hardware.py +713 -0
- quickhatch-0.1.0/src/quickhatch/scanners/settings.py +286 -0
- quickhatch-0.1.0/src/quickhatch/secrets.py +86 -0
- quickhatch-0.1.0/src/quickhatch/setup/__init__.py +65 -0
- quickhatch-0.1.0/src/quickhatch/setup/attempts.py +199 -0
- quickhatch-0.1.0/src/quickhatch/setup/audit.py +1245 -0
- quickhatch-0.1.0/src/quickhatch/setup/capabilities.py +1617 -0
- quickhatch-0.1.0/src/quickhatch/setup/certify.py +527 -0
- quickhatch-0.1.0/src/quickhatch/setup/debugtools.py +139 -0
- quickhatch-0.1.0/src/quickhatch/setup/facts.py +646 -0
- quickhatch-0.1.0/src/quickhatch/setup/failure.py +137 -0
- quickhatch-0.1.0/src/quickhatch/setup/families/__init__.py +39 -0
- quickhatch-0.1.0/src/quickhatch/setup/families/arch.py +44 -0
- quickhatch-0.1.0/src/quickhatch/setup/families/base.py +362 -0
- quickhatch-0.1.0/src/quickhatch/setup/families/debian.py +80 -0
- quickhatch-0.1.0/src/quickhatch/setup/families/fedora.py +83 -0
- quickhatch-0.1.0/src/quickhatch/setup/families/ubuntu.py +54 -0
- quickhatch-0.1.0/src/quickhatch/setup/fuzz.py +478 -0
- quickhatch-0.1.0/src/quickhatch/setup/health.py +869 -0
- quickhatch-0.1.0/src/quickhatch/setup/operations.py +91 -0
- quickhatch-0.1.0/src/quickhatch/setup/orchestrator.py +11042 -0
- quickhatch-0.1.0/src/quickhatch/setup/planner.py +1470 -0
- quickhatch-0.1.0/src/quickhatch/setup/preflight.py +1479 -0
- quickhatch-0.1.0/src/quickhatch/setup/release_smoke.py +297 -0
- quickhatch-0.1.0/src/quickhatch/setup/replay.py +1126 -0
- quickhatch-0.1.0/src/quickhatch/setup/resolver.py +342 -0
- quickhatch-0.1.0/src/quickhatch/setup/runlog.py +281 -0
- quickhatch-0.1.0/src/quickhatch/setup/support_bundle.py +594 -0
- quickhatch-0.1.0/src/quickhatch/setup/types.py +281 -0
- quickhatch-0.1.0/src/quickhatch/wizard/__init__.py +1 -0
- quickhatch-0.1.0/src/quickhatch/wizard/additional.py +36 -0
- quickhatch-0.1.0/src/quickhatch/wizard/ai_setup.py +292 -0
- quickhatch-0.1.0/src/quickhatch/wizard/bridge.py +231 -0
- quickhatch-0.1.0/src/quickhatch/wizard/compatibility.py +99 -0
- quickhatch-0.1.0/src/quickhatch/wizard/distro.py +110 -0
- quickhatch-0.1.0/src/quickhatch/wizard/export.py +579 -0
- quickhatch-0.1.0/src/quickhatch/wizard/questionnaire.py +132 -0
- quickhatch-0.1.0/src/quickhatch/wizard/scan.py +75 -0
- quickhatch-0.1.0/src/quickhatch/wizard/ssh.py +172 -0
- quickhatch-0.1.0/src/quickhatch/wizard/usb.py +252 -0
- quickhatch-0.1.0/src/quickhatch/wizard/vm_verify.py +1473 -0
- quickhatch-0.1.0/src/quickhatch/wizard/welcome.py +43 -0
- quickhatch-0.1.0/tests/__init__.py +0 -0
- quickhatch-0.1.0/tests/conftest.py +25 -0
- quickhatch-0.1.0/tests/fixtures/app_mapping_scenarios.yaml +490 -0
- quickhatch-0.1.0/tests/fixtures/app_partial_success_scenarios.yaml +2768 -0
- quickhatch-0.1.0/tests/fixtures/configure_existing_command_groups.yaml +1564 -0
- quickhatch-0.1.0/tests/fixtures/design_feedback_scenarios.yaml +2660 -0
- quickhatch-0.1.0/tests/fixtures/desktop_session_scenarios.yaml +3046 -0
- quickhatch-0.1.0/tests/fixtures/driver_uncertainty_scenarios.yaml +3067 -0
- quickhatch-0.1.0/tests/fixtures/final_audit_repair_scenarios.yaml +2608 -0
- quickhatch-0.1.0/tests/fixtures/live_model_gauntlet_holdout_requests.yaml +382 -0
- quickhatch-0.1.0/tests/fixtures/live_model_gauntlet_requests.yaml +736 -0
- quickhatch-0.1.0/tests/fixtures/mode_awareness_scenarios.yaml +268 -0
- quickhatch-0.1.0/tests/fixtures/model_contract_scenarios.yaml +1290 -0
- quickhatch-0.1.0/tests/fixtures/model_reliability_scenarios.yaml +1057 -0
- quickhatch-0.1.0/tests/fixtures/preflight_command_corpus.yaml +3866 -0
- quickhatch-0.1.0/tests/fixtures/provider_model_diversity_scenarios.yaml +211 -0
- quickhatch-0.1.0/tests/fixtures/reboot_reconnect_scenarios.yaml +2004 -0
- quickhatch-0.1.0/tests/fixtures/repair_loop_scenarios.yaml +1356 -0
- quickhatch-0.1.0/tests/fixtures/repair_suggestion_quality_scenarios.yaml +635 -0
- quickhatch-0.1.0/tests/fixtures/research_grounding_scenarios.yaml +494 -0
- quickhatch-0.1.0/tests/fixtures/stop_abort_scenarios.yaml +2445 -0
- quickhatch-0.1.0/tests/fixtures/support_bundle_diagnostics_scenarios.yaml +3704 -0
- quickhatch-0.1.0/tests/fixtures/theme_design_mapping_scenarios.yaml +449 -0
- quickhatch-0.1.0/tests/test_advise_on_failure.py +168 -0
- quickhatch-0.1.0/tests/test_analysis_agent.py +129 -0
- quickhatch-0.1.0/tests/test_app_catalog_builder.py +242 -0
- quickhatch-0.1.0/tests/test_app_catalog_contract.py +144 -0
- quickhatch-0.1.0/tests/test_app_catalog_promotion.py +252 -0
- quickhatch-0.1.0/tests/test_app_mapper.py +354 -0
- quickhatch-0.1.0/tests/test_block_stickiness.py +144 -0
- quickhatch-0.1.0/tests/test_bridge_state.py +571 -0
- quickhatch-0.1.0/tests/test_checkpoint_path.py +349 -0
- quickhatch-0.1.0/tests/test_cli.py +381 -0
- quickhatch-0.1.0/tests/test_configure_existing_command_groups.py +221 -0
- quickhatch-0.1.0/tests/test_execute_search.py +131 -0
- quickhatch-0.1.0/tests/test_export_bundle.py +107 -0
- quickhatch-0.1.0/tests/test_flag_escalation.py +156 -0
- quickhatch-0.1.0/tests/test_gallery_build.py +44 -0
- quickhatch-0.1.0/tests/test_gallery_common.py +19 -0
- quickhatch-0.1.0/tests/test_gallery_curate.py +232 -0
- quickhatch-0.1.0/tests/test_gallery_dedupe.py +36 -0
- quickhatch-0.1.0/tests/test_gallery_endpoint.py +88 -0
- quickhatch-0.1.0/tests/test_gallery_extract.py +69 -0
- quickhatch-0.1.0/tests/test_gallery_filter.py +286 -0
- quickhatch-0.1.0/tests/test_gallery_llm_extract.py +223 -0
- quickhatch-0.1.0/tests/test_gui_e2e.py +352 -0
- quickhatch-0.1.0/tests/test_gui_endpoints.py +1135 -0
- quickhatch-0.1.0/tests/test_hardware_reasoning.py +54 -0
- quickhatch-0.1.0/tests/test_install_primer.py +297 -0
- quickhatch-0.1.0/tests/test_linux_desktop_gui_contract.py +226 -0
- quickhatch-0.1.0/tests/test_live_env.py +227 -0
- quickhatch-0.1.0/tests/test_live_model_gauntlet_runner.py +378 -0
- quickhatch-0.1.0/tests/test_model_reliability_scenarios.py +88 -0
- quickhatch-0.1.0/tests/test_parsers.py +175 -0
- quickhatch-0.1.0/tests/test_pre_reboot_checks.py +155 -0
- quickhatch-0.1.0/tests/test_preflight_capability_policy.py +327 -0
- quickhatch-0.1.0/tests/test_preflight_command_corpus.py +491 -0
- quickhatch-0.1.0/tests/test_prompt_builders.py +310 -0
- quickhatch-0.1.0/tests/test_provider_routing.py +145 -0
- quickhatch-0.1.0/tests/test_recipe_apply.py +45 -0
- quickhatch-0.1.0/tests/test_regression_bugsweep.py +375 -0
- quickhatch-0.1.0/tests/test_regression_bugsweep_v2.py +909 -0
- quickhatch-0.1.0/tests/test_regression_bugsweep_v4.py +187 -0
- quickhatch-0.1.0/tests/test_release_smoke.py +184 -0
- quickhatch-0.1.0/tests/test_scanners_smoke.py +290 -0
- quickhatch-0.1.0/tests/test_secret_pattern_hygiene.py +84 -0
- quickhatch-0.1.0/tests/test_secrets.py +51 -0
- quickhatch-0.1.0/tests/test_setup_agent.py +293 -0
- quickhatch-0.1.0/tests/test_setup_app_mapping.py +524 -0
- quickhatch-0.1.0/tests/test_setup_app_partial_success.py +801 -0
- quickhatch-0.1.0/tests/test_setup_attempts.py +39 -0
- quickhatch-0.1.0/tests/test_setup_capabilities.py +498 -0
- quickhatch-0.1.0/tests/test_setup_certify.py +426 -0
- quickhatch-0.1.0/tests/test_setup_debugtools.py +128 -0
- quickhatch-0.1.0/tests/test_setup_design_feedback_loop.py +576 -0
- quickhatch-0.1.0/tests/test_setup_desktop_audit.py +739 -0
- quickhatch-0.1.0/tests/test_setup_desktop_session.py +682 -0
- quickhatch-0.1.0/tests/test_setup_driver_uncertainty.py +672 -0
- quickhatch-0.1.0/tests/test_setup_facts.py +516 -0
- quickhatch-0.1.0/tests/test_setup_facts_refresh.py +453 -0
- quickhatch-0.1.0/tests/test_setup_families.py +342 -0
- quickhatch-0.1.0/tests/test_setup_final_audit.py +358 -0
- quickhatch-0.1.0/tests/test_setup_final_audit_repair_loop.py +492 -0
- quickhatch-0.1.0/tests/test_setup_fuzz.py +22 -0
- quickhatch-0.1.0/tests/test_setup_health.py +35 -0
- quickhatch-0.1.0/tests/test_setup_mode_awareness.py +307 -0
- quickhatch-0.1.0/tests/test_setup_model_contract.py +407 -0
- quickhatch-0.1.0/tests/test_setup_orchestrator.py +10850 -0
- quickhatch-0.1.0/tests/test_setup_planner.py +949 -0
- quickhatch-0.1.0/tests/test_setup_preflight.py +1097 -0
- quickhatch-0.1.0/tests/test_setup_provider_model_diversity.py +574 -0
- quickhatch-0.1.0/tests/test_setup_reboot_reconnect.py +611 -0
- quickhatch-0.1.0/tests/test_setup_repair_loop_control.py +669 -0
- quickhatch-0.1.0/tests/test_setup_repair_suggestion_quality.py +318 -0
- quickhatch-0.1.0/tests/test_setup_replay.py +646 -0
- quickhatch-0.1.0/tests/test_setup_research_grounding.py +470 -0
- quickhatch-0.1.0/tests/test_setup_resolver.py +155 -0
- quickhatch-0.1.0/tests/test_setup_runlog.py +160 -0
- quickhatch-0.1.0/tests/test_setup_stage_routing.py +402 -0
- quickhatch-0.1.0/tests/test_setup_stop_abort.py +552 -0
- quickhatch-0.1.0/tests/test_setup_theme_design_mapping.py +435 -0
- quickhatch-0.1.0/tests/test_stall_detector.py +88 -0
- quickhatch-0.1.0/tests/test_support_bundle.py +313 -0
- quickhatch-0.1.0/tests/test_support_bundle_diagnostics.py +272 -0
- quickhatch-0.1.0/tests/test_untested_modules_smoke.py +367 -0
- quickhatch-0.1.0/tests/test_vm_verify.py +1211 -0
- quickhatch-0.1.0/tools/build_app_catalog.py +412 -0
- quickhatch-0.1.0/tools/promote_app_catalog_suggestions.py +342 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Something isn't working as expected
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for reporting! Please give us enough info to reproduce.
|
|
9
|
+
|
|
10
|
+
**Security issues:** do NOT use this form — see [SECURITY.md](https://github.com/JanBartos6/QuickHatch/blob/main/SECURITY.md).
|
|
11
|
+
|
|
12
|
+
- type: input
|
|
13
|
+
id: version
|
|
14
|
+
attributes:
|
|
15
|
+
label: QuickHatch version
|
|
16
|
+
placeholder: e.g. 0.1.0 (run `python -m quickhatch --version` if available, or check the GUI footer)
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- type: input
|
|
21
|
+
id: os
|
|
22
|
+
attributes:
|
|
23
|
+
label: Host OS
|
|
24
|
+
description: The machine running QuickHatch
|
|
25
|
+
placeholder: e.g. Windows 11 23H2
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
|
|
29
|
+
- type: input
|
|
30
|
+
id: target
|
|
31
|
+
attributes:
|
|
32
|
+
label: Target Linux distro (if relevant)
|
|
33
|
+
placeholder: e.g. Arch Linux 2026.04, fresh install in VirtualBox
|
|
34
|
+
|
|
35
|
+
- type: dropdown
|
|
36
|
+
id: ai_provider
|
|
37
|
+
attributes:
|
|
38
|
+
label: AI provider
|
|
39
|
+
options:
|
|
40
|
+
- LM Studio (local)
|
|
41
|
+
- Ollama (local)
|
|
42
|
+
- Claude API (Anthropic)
|
|
43
|
+
- OpenAI API
|
|
44
|
+
- Codex CLI
|
|
45
|
+
- Other / N/A
|
|
46
|
+
validations:
|
|
47
|
+
required: true
|
|
48
|
+
|
|
49
|
+
- type: input
|
|
50
|
+
id: model
|
|
51
|
+
attributes:
|
|
52
|
+
label: Model name
|
|
53
|
+
placeholder: e.g. google/gemma-4-26b-a4b, claude-sonnet-4-6, gpt-4o
|
|
54
|
+
|
|
55
|
+
- type: textarea
|
|
56
|
+
id: what_happened
|
|
57
|
+
attributes:
|
|
58
|
+
label: What happened?
|
|
59
|
+
description: What did you do, what did you expect, what actually happened?
|
|
60
|
+
validations:
|
|
61
|
+
required: true
|
|
62
|
+
|
|
63
|
+
- type: textarea
|
|
64
|
+
id: logs
|
|
65
|
+
attributes:
|
|
66
|
+
label: Relevant logs
|
|
67
|
+
description: Agent output, console errors, terminal output. Paste as text or attach a file.
|
|
68
|
+
render: shell
|
|
69
|
+
|
|
70
|
+
- type: textarea
|
|
71
|
+
id: extra
|
|
72
|
+
attributes:
|
|
73
|
+
label: Anything else
|
|
74
|
+
description: Screenshots, hypotheses, related issues — drop them here.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Security vulnerability
|
|
4
|
+
url: mailto:appdeveloper.honza@gmail.com
|
|
5
|
+
about: Please email instead of opening a public issue.
|
|
6
|
+
- name: Question or general discussion
|
|
7
|
+
url: https://github.com/JanBartos6/QuickHatch/discussions
|
|
8
|
+
about: Use Discussions for "how do I…" or "is this a good idea?"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Suggest a new capability or improvement
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Have an idea? Tell us the problem first, then your proposed solution.
|
|
9
|
+
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: problem
|
|
12
|
+
attributes:
|
|
13
|
+
label: What problem are you trying to solve?
|
|
14
|
+
description: Describe the user-facing pain point. Don't jump straight to the solution.
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
|
|
18
|
+
- type: textarea
|
|
19
|
+
id: solution
|
|
20
|
+
attributes:
|
|
21
|
+
label: Proposed solution
|
|
22
|
+
description: How would you like QuickHatch to handle this?
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: alternatives
|
|
28
|
+
attributes:
|
|
29
|
+
label: Alternatives considered
|
|
30
|
+
description: Other ways to solve this. Why is your proposal better?
|
|
31
|
+
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: extra
|
|
34
|
+
attributes:
|
|
35
|
+
label: Additional context
|
|
36
|
+
description: Mockups, links, related tools.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!-- Thanks for contributing! -->
|
|
2
|
+
|
|
3
|
+
## What this changes
|
|
4
|
+
|
|
5
|
+
<!-- One or two sentences. What's different after this PR? -->
|
|
6
|
+
|
|
7
|
+
## Why
|
|
8
|
+
|
|
9
|
+
<!-- The motivating problem. Link an issue if there is one. -->
|
|
10
|
+
|
|
11
|
+
## How to verify
|
|
12
|
+
|
|
13
|
+
<!-- Steps a reviewer can run. "I tested X and Y" or "Run pytest". -->
|
|
14
|
+
|
|
15
|
+
## Checklist
|
|
16
|
+
|
|
17
|
+
- [ ] `pytest` passes locally
|
|
18
|
+
- [ ] `ruff check src/ tests/` is clean
|
|
19
|
+
- [ ] `ruff format --check src/ tests/` is clean
|
|
20
|
+
- [ ] `CHANGELOG.md` updated under `## [Unreleased]` if this is user-visible
|
|
21
|
+
- [ ] No secrets, API keys, or paths from your real machine in the diff
|
|
22
|
+
- [ ] I have the right to submit this work and agree to the contribution ownership/license terms in `CONTRIBUTING.md`
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ci-${{ github.workflow }}-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
check:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.11"
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: |
|
|
24
|
+
python -m pip install --upgrade pip
|
|
25
|
+
pip install -e ".[dev]"
|
|
26
|
+
- name: Ruff check
|
|
27
|
+
run: ruff check src/ tests/
|
|
28
|
+
- name: Ruff format check
|
|
29
|
+
run: ruff format --check src/ tests/
|
|
30
|
+
- name: Run pytest
|
|
31
|
+
run: pytest -q
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Full test matrix
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
concurrency:
|
|
7
|
+
group: full-test-matrix-${{ github.ref }}
|
|
8
|
+
cancel-in-progress: true
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
full-test:
|
|
12
|
+
name: full test (${{ matrix.os }}, py${{ matrix.python-version }})
|
|
13
|
+
runs-on: ${{ matrix.os }}
|
|
14
|
+
strategy:
|
|
15
|
+
fail-fast: true
|
|
16
|
+
matrix:
|
|
17
|
+
include:
|
|
18
|
+
- os: ubuntu-latest
|
|
19
|
+
python-version: "3.10"
|
|
20
|
+
- os: ubuntu-latest
|
|
21
|
+
python-version: "3.11"
|
|
22
|
+
- os: ubuntu-latest
|
|
23
|
+
python-version: "3.12"
|
|
24
|
+
- os: ubuntu-latest
|
|
25
|
+
python-version: "3.13"
|
|
26
|
+
- os: windows-latest
|
|
27
|
+
python-version: "3.11"
|
|
28
|
+
- os: macos-latest
|
|
29
|
+
python-version: "3.11"
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v4
|
|
32
|
+
- uses: actions/setup-python@v5
|
|
33
|
+
with:
|
|
34
|
+
python-version: ${{ matrix.python-version }}
|
|
35
|
+
- name: Install dependencies
|
|
36
|
+
run: |
|
|
37
|
+
python -m pip install --upgrade pip
|
|
38
|
+
pip install -e ".[dev]"
|
|
39
|
+
- name: Run pytest
|
|
40
|
+
run: pytest -v
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
tag:
|
|
7
|
+
description: "Release tag to publish, for example v0.1.0"
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
id-token: write
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
publish-pypi:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
environment:
|
|
19
|
+
name: pypi
|
|
20
|
+
url: https://pypi.org/p/quickhatch
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
ref: ${{ inputs.tag }}
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.11"
|
|
30
|
+
|
|
31
|
+
- name: Install build deps
|
|
32
|
+
run: |
|
|
33
|
+
python -m pip install --upgrade pip
|
|
34
|
+
pip install build
|
|
35
|
+
|
|
36
|
+
- name: Build sdist + wheel
|
|
37
|
+
run: python -m build
|
|
38
|
+
|
|
39
|
+
- name: Check tag matches package version
|
|
40
|
+
run: |
|
|
41
|
+
TAG="${{ inputs.tag }}"
|
|
42
|
+
VERSION="${TAG#v}"
|
|
43
|
+
PKG=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
|
|
44
|
+
if [ "$VERSION" != "$PKG" ]; then
|
|
45
|
+
echo "Tag $TAG does not match pyproject.toml version $PKG"; exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
- name: Publish to PyPI
|
|
49
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
50
|
+
with:
|
|
51
|
+
skip-existing: true
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*.*.*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
with:
|
|
17
|
+
fetch-depth: 0 # so changelog generation can see history
|
|
18
|
+
|
|
19
|
+
- uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.11"
|
|
22
|
+
|
|
23
|
+
- name: Install build deps
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install build
|
|
27
|
+
|
|
28
|
+
- name: Build sdist + wheel
|
|
29
|
+
run: python -m build
|
|
30
|
+
|
|
31
|
+
- name: Check tag matches package version
|
|
32
|
+
run: |
|
|
33
|
+
TAG="${GITHUB_REF#refs/tags/v}"
|
|
34
|
+
PKG=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
|
|
35
|
+
if [ "$TAG" != "$PKG" ]; then
|
|
36
|
+
echo "Tag v$TAG does not match pyproject.toml version $PKG"; exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
- name: Upload artifact
|
|
40
|
+
uses: actions/upload-artifact@v4
|
|
41
|
+
with:
|
|
42
|
+
name: dist
|
|
43
|
+
path: dist/
|
|
44
|
+
|
|
45
|
+
github-release:
|
|
46
|
+
needs: build
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v4
|
|
50
|
+
- uses: actions/download-artifact@v4
|
|
51
|
+
with:
|
|
52
|
+
name: dist
|
|
53
|
+
path: dist/
|
|
54
|
+
- name: Extract release notes from CHANGELOG
|
|
55
|
+
id: notes
|
|
56
|
+
run: |
|
|
57
|
+
TAG="${GITHUB_REF#refs/tags/}"
|
|
58
|
+
VERSION="${TAG#v}"
|
|
59
|
+
# Capture from "## [VERSION]" up to the next "## ["
|
|
60
|
+
awk -v v="$VERSION" '
|
|
61
|
+
index($0, "## [" v "]") == 1 { capture=1; next }
|
|
62
|
+
capture && /^## \[/ { exit }
|
|
63
|
+
capture { print }
|
|
64
|
+
' CHANGELOG.md > release-notes.md
|
|
65
|
+
if [ ! -s release-notes.md ]; then
|
|
66
|
+
echo "Release $TAG" > release-notes.md
|
|
67
|
+
fi
|
|
68
|
+
- name: Create GitHub release
|
|
69
|
+
uses: softprops/action-gh-release@v2
|
|
70
|
+
with:
|
|
71
|
+
files: dist/*
|
|
72
|
+
body_path: release-notes.md
|
|
73
|
+
generate_release_notes: false
|
|
74
|
+
prerelease: true
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.pyc
|
|
3
|
+
*.pyo
|
|
4
|
+
*.egg-info/
|
|
5
|
+
.pytest_cache/
|
|
6
|
+
.ruff_cache/
|
|
7
|
+
.tmp/
|
|
8
|
+
dist/
|
|
9
|
+
build/
|
|
10
|
+
.quickhatch-checkpoint.json
|
|
11
|
+
*.iso
|
|
12
|
+
.env
|
|
13
|
+
.quickhatch/
|
|
14
|
+
|
|
15
|
+
# Agent temp files
|
|
16
|
+
.quickhatch-prompt.txt
|
|
17
|
+
.quickhatch-agent-cmd.sh
|
|
18
|
+
.quickhatch-agent-cmd.ps1
|
|
19
|
+
.quickhatch-server*.log
|
|
20
|
+
.codex_tmp_*
|
|
21
|
+
.scrape-cache/
|
|
22
|
+
|
|
23
|
+
# IDE / editor
|
|
24
|
+
.vscode/
|
|
25
|
+
.idea/
|
|
26
|
+
*.swp
|
|
27
|
+
*.swo
|
|
28
|
+
.DS_Store
|
|
29
|
+
|
|
30
|
+
# Claude Code working files
|
|
31
|
+
.claude/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v5.0.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: trailing-whitespace
|
|
6
|
+
- id: end-of-file-fixer
|
|
7
|
+
- id: check-yaml
|
|
8
|
+
- id: check-toml
|
|
9
|
+
- id: check-added-large-files
|
|
10
|
+
args: ["--maxkb=512"]
|
|
11
|
+
- id: check-merge-conflict
|
|
12
|
+
- id: detect-private-key
|
|
13
|
+
|
|
14
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
15
|
+
rev: v0.7.4
|
|
16
|
+
hooks:
|
|
17
|
+
- id: ruff
|
|
18
|
+
args: [--fix]
|
|
19
|
+
- id: ruff-format
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to QuickHatch will be documented here. Format loosely
|
|
4
|
+
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
|
+
|
|
6
|
+
## [Unreleased]
|
|
7
|
+
|
|
8
|
+
No changes yet.
|
|
9
|
+
|
|
10
|
+
## [0.1.0] - 2026-06-12
|
|
11
|
+
|
|
12
|
+
First public alpha release.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Added community recipe gallery with about 100 curated Linux desktop
|
|
17
|
+
configurations.
|
|
18
|
+
- Added host-side post-install data transfer for the "keep this PC on" path:
|
|
19
|
+
selected local files or folders are copied over SSH into
|
|
20
|
+
`~/QuickHatch-Imported-Windows`, while external-drive and cloud methods stay
|
|
21
|
+
guided/manual.
|
|
22
|
+
- Fresh installs now use `password` as the temporary first-login password,
|
|
23
|
+
remove the QuickHatch NOPASSWD sudo drop-in at the end of setup, and mark the
|
|
24
|
+
installed user account to require a real password change on first login.
|
|
25
|
+
- Added a strict Linux desktop GUI contract test suite for promised theme,
|
|
26
|
+
icon, cursor, wallpaper, and desktop-effect elements. Strict desktop runs now
|
|
27
|
+
require each promised element to have a concrete expected value or an explicit
|
|
28
|
+
manual-follow-up reason before success can be claimed.
|
|
29
|
+
- Documented contribution and fork licensing terms, made commercial-use contact
|
|
30
|
+
language visible in the README, added sponsorship links, and noted the June 4,
|
|
31
|
+
2026 real-PC Arch install driven by Gemini 3.1 Flash Lite.
|
|
32
|
+
- Added commercial licensing contact email, stronger source-available license
|
|
33
|
+
terms, contribution assignment/licensing language, CODEOWNERS, and governance
|
|
34
|
+
notes for maintainer-controlled merges to `main`.
|
|
35
|
+
- Added secret-pattern hygiene coverage so release sources fail tests if
|
|
36
|
+
provider-token-shaped strings are introduced into tracked release files.
|
|
37
|
+
- Gallery Phase 1.5: loosened the Reddit filter so r/unixporn and DE-specific
|
|
38
|
+
subs contribute entries. The previous "median + 1 stdev" upvote gate was
|
|
39
|
+
replaced with per-subreddit absolute floors (500 for r/unixporn, 30-100 for
|
|
40
|
+
DE subs) combined with a top-40%-of-bucket rule. Reddit entries with no
|
|
41
|
+
detectable OSI license are admitted with `license_status: "unknown"` and a
|
|
42
|
+
"No license" chip in the gallery; apply logic skips them so QuickHatch does
|
|
43
|
+
not copy unlicensed work.
|
|
44
|
+
|
|
45
|
+
### Highlights
|
|
46
|
+
|
|
47
|
+
- Two modes: "Migrate from Windows" for fresh Linux installs on a target
|
|
48
|
+
machine, and "Customize Linux" for tuning an existing install.
|
|
49
|
+
- Agentic SSH setup loop: the LLM picks one command, sees exit code plus
|
|
50
|
+
stdout/stderr, and decides the next step. It adapts to errors such as missing
|
|
51
|
+
packages, low disk space, and failed verifications.
|
|
52
|
+
- Live web and image search: the analysis phase can fetch DuckDuckGo results so
|
|
53
|
+
the model gets current context on driver support, app alternatives, and
|
|
54
|
+
desktop environment screenshots.
|
|
55
|
+
- End-to-end verified on Arch Linux on a real PC on June 4, 2026, driven by
|
|
56
|
+
Gemini 3.1 Flash Lite.
|
|
57
|
+
- Web GUI with stepper navigation, agent feed, technical log, apps step with
|
|
58
|
+
search and compatibility badges, error states, and toast notifications.
|
|
59
|
+
|
|
60
|
+
### Wizard
|
|
61
|
+
|
|
62
|
+
- Welcome -> AI setup -> Preferences -> Scan -> Apps & Data -> Notes ->
|
|
63
|
+
Analysis -> Bootable USB -> SSH key -> Export -> Remote setup.
|
|
64
|
+
- Scans Windows hardware, installed apps, settings, file summary, fonts,
|
|
65
|
+
browser profiles, and disk layout.
|
|
66
|
+
- Apps step shows scanned apps grouped by category, searchable, with native,
|
|
67
|
+
alternative, or unknown compatibility badges.
|
|
68
|
+
- Apps & Data includes a structured data-transfer choice.
|
|
69
|
+
- Generates a sectioned migration plan covering distro, apps, drivers, desktop,
|
|
70
|
+
migration steps, and quick-reference summary.
|
|
71
|
+
- Re-runs analysis when the user gives feedback to the agent.
|
|
72
|
+
|
|
73
|
+
### AI providers
|
|
74
|
+
|
|
75
|
+
- Claude API.
|
|
76
|
+
- OpenAI API.
|
|
77
|
+
- LM Studio, with auto-detection of loaded models via
|
|
78
|
+
`localhost:1234/v1/models`.
|
|
79
|
+
- Ollama via `localhost:11434`.
|
|
80
|
+
- Codex CLI launched in a separate terminal.
|
|
81
|
+
|
|
82
|
+
### Remote setup
|
|
83
|
+
|
|
84
|
+
- SSH-based agent loop with Stop button.
|
|
85
|
+
- Test-connection button to verify SSH before launch.
|
|
86
|
+
- `host:port` format supported for the IP input.
|
|
87
|
+
- Setup agent reads the analysis suggestions as the blueprint instead of
|
|
88
|
+
re-planning from scratch.
|
|
89
|
+
- Final audit and support-bundle paths redact secret-bearing values before
|
|
90
|
+
exposing run artifacts.
|
|
91
|
+
|
|
92
|
+
### Repo and tooling
|
|
93
|
+
|
|
94
|
+
- 2663 pytest tests covering parsers, BridgeState, app mapping, prompt builders,
|
|
95
|
+
search execution, setup orchestration, desktop GUI contracts, support bundle
|
|
96
|
+
redaction, release smoke checks, and HTTP endpoints.
|
|
97
|
+
- GitHub Actions CI runs Ruff lint, Ruff format check, and pytest on normal
|
|
98
|
+
pushes and pull requests.
|
|
99
|
+
- Manual "Full test matrix" workflow covers supported OS/Python combinations.
|
|
100
|
+
- GitHub Actions release workflow builds artifacts and creates a GitHub Release
|
|
101
|
+
on `v*.*.*` tags, with PyPI trusted publishing configured in the workflow.
|
|
102
|
+
- `.pre-commit-config.yaml` for Ruff and standard hygiene hooks.
|
|
103
|
+
- `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md`, issue templates,
|
|
104
|
+
PR template, `GOVERNANCE.md`, `.github/CODEOWNERS`, and funding metadata.
|
|
105
|
+
- Docs: `docs/ARCHITECTURE.md`, `docs/testing-in-vm.md`,
|
|
106
|
+
`docs/model-recommendations.md`, and `docs/troubleshooting.md`.
|
|
107
|
+
- Source-available personal-use license with commercial use by separate written
|
|
108
|
+
arrangement.
|
|
109
|
+
|
|
110
|
+
### Known limitations
|
|
111
|
+
|
|
112
|
+
- Data transfer is method-dependent. If the Windows/host PC stays online during
|
|
113
|
+
remote setup, QuickHatch can copy selected scanned folders to the installed
|
|
114
|
+
Linux user after setup. External-drive and cloud-sync methods remain
|
|
115
|
+
guided/manual.
|
|
116
|
+
- No automated USB flashing. The "Bootable USB" step is a guided walkthrough;
|
|
117
|
+
use Rufus, Ventoy, or balenaEtcher yourself.
|
|
118
|
+
- GPU passthrough is not handled in VirtualBox testing.
|
|
119
|
+
- Wayland plus VirtualBox mouse integration can be flaky without Guest
|
|
120
|
+
Additions.
|
|
121
|
+
- The setup agent requires SSH key authentication. Password-only SSH is not
|
|
122
|
+
supported.
|
|
123
|
+
- Arch is the most tested distro. Fedora and Ubuntu should work; other distros
|
|
124
|
+
are at your own risk.
|
|
125
|
+
- Current modes are Windows-to-fresh-Linux migration and existing-Linux
|
|
126
|
+
customization. Distro-to-distro switching is not implemented.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behavior that contributes to a positive environment for our community include:
|
|
12
|
+
|
|
13
|
+
* Demonstrating empathy and kindness toward other people
|
|
14
|
+
* Being respectful of differing opinions, viewpoints, and experiences
|
|
15
|
+
* Giving and gracefully accepting constructive feedback
|
|
16
|
+
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
|
17
|
+
* Focusing on what is best not just for us as individuals, but for the overall community
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behavior include:
|
|
20
|
+
|
|
21
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
22
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
23
|
+
* Public or private harassment
|
|
24
|
+
* Publishing others' private information, such as a physical or email address, without their explicit permission
|
|
25
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
|
|
33
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces.
|
|
34
|
+
|
|
35
|
+
## Enforcement
|
|
36
|
+
|
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
38
|
+
reported to appdeveloper.honza@gmail.com. Do not publish reports containing
|
|
39
|
+
personal information in public issues or discussions. All complaints will be
|
|
40
|
+
reviewed and investigated promptly and fairly.
|
|
41
|
+
|
|
42
|
+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
|
43
|
+
|
|
44
|
+
## Attribution
|
|
45
|
+
|
|
46
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
|
47
|
+
|
|
48
|
+
[homepage]: https://www.contributor-covenant.org
|
|
49
|
+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|