kinjo 0.3.8

Kinjo: mDNS TUI and commands launch for local network services
Documentation
{
  description = "kinjo — TUI browser and command launcher for DNS-SD services";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

  outputs = { self, nixpkgs }:
    let
      systems = [ "x86_64-linux" "aarch64-linux" ];
      forAllSystems = f: nixpkgs.lib.genAttrs systems
        (system: f nixpkgs.legacyPackages.${system});
    in {
      packages = forAllSystems (pkgs: rec {
        kinjo = pkgs.callPackage ./package.nix { };
        default = kinjo;
      });

      # An overlay is a single function (final: prev: { ... }) — NOT per-system —
      # so it lives at the top level, a sibling of packages/apps/devShells.
      # Build via final.callPackage so overlay users get kinjo built against
      # *their* nixpkgs, not this flake's locked copy.
      overlays.default = final: _prev: {
        kinjo = final.callPackage ./package.nix { };
      };

      apps = forAllSystems (pkgs: {
        default = {
          type = "app";
          program = nixpkgs.lib.getExe self.packages.${pkgs.stdenv.hostPlatform.system}.kinjo;
        };
      });

      devShells = forAllSystems (pkgs: {
        default = pkgs.mkShell {
          # rust-toolchain.toml pins Rust 1.94, but that's a rustup convention —
          # nixpkgs' cargo/rustc don't read it, so this shell (and the package
          # build) intentionally track nixpkgs' Rust to keep nixpkgs as the only
          # flake input. `nix develop` may hand you a newer Rust than CI's 1.94.
          packages = with pkgs; [ cargo rustc clippy rustfmt rust-analyzer ];
        };
      });
    };
}