suppressed noisy defaults read failures for missing preference keys,
fixed unsafe/empty test expressions that caused test: argument expected,
corrected the gettext app domain from APP=name to APP=zoitechat.
Improved launcher behavior for architecture mismatches (Bad CPU type in executable) by detecting exit 126 and printing a clear hint plus file output for ZoiteChat-bin.
Updated osx/makebundle.sh so bundling is more Intel/Apple Silicon friendly:
dynamically resolves/writes prefix and prefix:enchant (Homebrew Intel vs Apple Silicon layouts),
still adapts enchant data path (share/enchant vs share/enchant-2),
prints bundled binary architecture after bundling so mismatches are immediately visible.
Extended macOS debugging docs with a dedicated “Bad CPU type in executable” section and explicit Intel (x86_64) build commands.
Added a fallback that removes the enchant <data> copy stanza entirely when neither share directory exists, preventing the exact Cannot find source to copy bundler failure you reported.
Raised LSMinimumSystemVersion to 11.0.
Aligned CFBundleIdentifier with project naming (net.zoite.Zoitechat).
Kept version placeholders (@VERSION@) in CFBundleGetInfoString, CFBundleShortVersionString, and CFBundleVersion so they map cleanly via template substitution.
Confirmed icon/document declarations still point to zoitechat.icns and zct/hct extensions.
Made Info.plist generation deterministic in bundling workflow by updating osx/makebundle.sh:
Force script execution from its own directory for stable relative paths.
Always render Info.plist from Info.plist.in before bundling.
Use a single explicit version source: VERSION env var or fallback to meson.build project version.
Use LC_ALL=C substitution and atomic temp-file move for stable output behavior.