Skip to content

[aidan] feat/affiliate-filenames: bind installs from stamped filenames#124

Merged
ciregenz merged 4 commits into
eric/devfrom
agent/installer-filename-attribution
Jul 13, 2026
Merged

[aidan] feat/affiliate-filenames: bind installs from stamped filenames#124
ciregenz merged 4 commits into
eric/devfrom
agent/installer-filename-attribution

Conversation

@abccodes

@abccodes abccodes commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Affiliate installs can lose referral attribution after download, and the desktop's two per-install ids (analytics installation_id vs affiliate app_install_id) never met — so affiliate data only joined to analytics through an optional sign-in.

[ac2f8e3]: Adds first-launch filename attribution in Electron by scanning recent stamped installers, binding known affiliate hashes before opening the welcome fallback, and recording ref_bind_method='affiliate_filename_hash'.

[c7004c9]: Unifies the install identity. Electron resolves ONE id before spawning the Python backend (install.json app_install_id → existing settings installation_id → fresh uuid) and exports it as OPENSWARM_INSTALLATION_ID; the backend adopts it when it has no installation_id yet. The affiliate id and the analytics install_id are now the same value, so affiliate refs join directly to telemetry with no sign-in required. The frontend app_install_id forwarding through sign-in flows is dropped; the desktop auth router forwards settings.installation_id as install_id on signin-activate instead.

[1e1d0d3]: Fixes the Downloads scan rejecting freshly-written/future-mtime installers (60s skew tolerance) and adds Windows + all-artifact-shape test coverage; the ambiguity test now genuinely exercises the ambiguity branch.

Pairs with openswarm-ai/openswarm-cloud#5 and openswarm-ai/landing-page#5.

@abccodes
abccodes changed the base branch from main to eric/dev July 10, 2026 09:46
@abccodes
abccodes force-pushed the agent/installer-filename-attribution branch from e4b6f5f to ac2f8e3 Compare July 10, 2026 10:01
@abccodes
abccodes marked this pull request as ready for review July 10, 2026 10:07
…d python backend

Electron resolves ONE install id before spawning the backend (install.json
app_install_id -> python settings installation_id -> fresh uuid) and exports
it as OPENSWARM_INSTALLATION_ID; the backend adopts it when settings has no
installation_id yet. The affiliate app_install_id and the analytics
install_id are now the same value, so affiliate refs join directly to
telemetry with no sign-in required. Drops the frontend app_install_id
forwarding through sign-in flows; the desktop auth router forwards
settings.installation_id as install_id instead.
@abccodes
abccodes force-pushed the agent/installer-filename-attribution branch from c8f374d to c7004c9 Compare July 11, 2026 01:09
abccodes added 2 commits July 10, 2026 18:51
…all artifact shapes

The Downloads scan rejected any file whose mtime was newer than the scan's
Date.now() snapshot (sub-ms fs timestamps, NTP stepping the clock back), and
the ambiguity test was green only because both fixtures were skipped by that
guard. Allow 60s of future skew, add a win32 end-to-end bind test, and cover
every stamped artifact name (mac arm64/x64 dmg, windows setup exe, linux
AppImages) plus unstamped negatives in the parser test.
@ciregenz
ciregenz merged commit 026d491 into eric/dev Jul 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants