# Proposal: fpagent-installer-multiarch ## Why The hosted installer only ever picks the x86_64 bundle. fingerprint-agent v1.5.0 publishes a 32-bit `-linux-i386` bundle and its own installer accepts i386 hosts, so a 32-bit field laptop running the public one-liner fails with "no compatible bundle" and installs nothing, even though a matching release asset exists. ## What Changes - The installer detects the host architecture (`uname -m` → `x86_64` or `i386`) and selects the matching bundle: the distro-codename bundle when one exists for that architecture, else the generic `-linux-` bundle. - An unsupported architecture fails with a message that names the host machine, and installs nothing. - The version parsed from the asset name accepts the `-linux-i386` suffix, so a 32-bit install records and reports its version the same way x86_64 does. - The installer's help text matches the bundle installer: the systemd service and the self-update timer are on by default, so `--no-service`, `--no-updates` and `--update-base` are documented instead of `--enable-service` being described as required to get a service. ## Capabilities ### New Capabilities (none) ### Modified Capabilities - `fpagent-installer`: bundle selection becomes architecture-aware (not just distro-codename aware), the no-compatible-bundle failure names the host architecture, and the version is derived for every published architecture. ## Impact - `tools/public/fpagent/install.sh`: architecture detection, bundle pick, version regex, help text. - `tools/test/fpagent-install.test.js`: architecture selection and version parsing tests. - `README.md`: the installer section (flags and architectures). - Depends on the `fingerprint-agent` bundle naming `fpagent--linux-.tar.gz`, where `` is `x86_64` or `i386` (v1.5.0 and newer). No change to `tools/server.js`: the server proxies whatever assets the release lists.