installer: flip from @armoriq/sdk-dev to @armoriq/sdk (production)#10
Merged
Conversation
Everything dev → main promotion has landed: - conmap-auto main: ProductSlug + parseProduct allowlist include 'armorcopilot' (PR #260 merged 2026-06-05) - armorIQ-Frontend main: DeviceApproval.tsx PRODUCT_DISPLAY has armorcopilot entry - armoriq-sdk-customer-ts main: @armoriq/sdk@0.3.8 published with --product flag + branded callback page Flip the installer to point at production artifacts: - @armoriq/sdk-dev → @armoriq/sdk (npm install -g, npx fallback, node_modules existence check, success banner, header comment) - armoriq-dev CLI → armoriq CLI (header comment, install_armoriq_cli output label) - DASHBOARD_URL: dev.armoriq.ai → platform.armoriq.ai - connect_to_armoriq priority: armoriq (prod) first, then armoriq-dev (legacy), then npx @armoriq/sdk Also fixes a long-standing double-browser-tab bug in connect_to_armoriq: the previous `login --help | grep '--product'` probe accidentally ran the full device-code flow as a side effect (SDK has no per-subcommand --help handler), so pressing Y at the connect prompt opened two browser tabs with two unrelated device codes. Dropped the probe, now always passes --product as a flag AND exports ARMORIQ_PRODUCT as a fallback. Single CLI call, single browser tab. (Same fix as PR #9, applied directly to this consolidated PR.) Legacy fallback paths to armoriq-dev / @armoriq/sdk-dev are kept so users with the dev SDK still globally installed don't break. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ion) Issue: users with the Python armoriq-sdk PyPI package installed (e.g. in a conda env) have an `armoriq` binary that PATH-shadows the npm-installed @armoriq/sdk's binary. The installer's `command -v armoriq` check resolved to the Python armoriq, which has its own older un-branded device-auth callback page. Result: even with @armoriq/sdk@0.3.8 installed globally, the user saw the bare pre-rebrand "Authorized" card. Fix: route the login call through `npx -p @armoriq/sdk armoriq login`. The -p flag pins the package source and uses its bin path for the invocation, regardless of what's on the shell's PATH. We always run the SDK we just installed. Legacy fallback to armoriq-dev kept for users still on @armoriq/sdk-dev. Detection signature on user's machine that triggered this: $ which armoriq /opt/homebrew/anaconda3/bin/armoriq <-- Python SDK from conda $ npm ls -g @armoriq/sdk@0.3.8 <-- our npm SDK, never invoked Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pulkit7070
approved these changes
Jun 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Everything ArmorCopilot-related has landed on each repo's
main:armoriq-sdk-customer-tsmain@armoriq/sdk@0.3.8published with --product flag + branded callback page (commits651bf9b,842484a)conmap-automainProductSlugunion +parseProduct()allowlist include'armorcopilot'(PR #260 merged 2026-06-05)armorIQ-FrontendmainDeviceApproval.tsxPRODUCT_DISPLAYhas armorcopilot entrySo the installer can now point at production artifacts.
Changes
@armoriq/sdk-dev@latest@armoriq/sdk@latestarmoriq-dev→armoriq→ npxarmoriq(prod) →armoriq-dev(legacy fallback) → npxnpx @armoriq/sdk-dev loginnpx @armoriq/sdk loginDASHBOARD_URLhttps://dev.armoriq.aihttps://platform.armoriq.ai@armoriq/sdk-dev@armoriq/sdk@armoriq/sdk-dev (latest)@armoriq/sdk (latest)Bonus: fixed the double browser-tab bug (rolled in)
Long-standing bug: pressing Y at the connect prompt opened two browser tabs with two unrelated device codes. Root cause was a
login --help | grep '--product'probe that accidentally ran the full device-code flow as a side effect (the SDK'sloginsubcommand has no per-subcommand--helphandler — it parses--helpas an unknown flag and proceeds). The grep then failed, the script fell into the env-var fallback branch, and ranlogina second time.Fix: dropped the probe, always pass
--productas a flag, alsoexport ARMORIQ_PRODUCTas a belt-and-braces fallback. One CLI call, one device code, one browser tab.This is the same fix that was in PR #9. PR #9 stayed open while we were still on dev refs; this PR consolidates both changes into one merge.
Legacy fallbacks kept
Users who still have
@armoriq/sdk-devglobally installed (noarmoriqbin on PATH) keep working:node_modules/@armoriq/sdk-devis still accepted as "deps already present"armoriq-devCLI is checked as a second-priority fallback afterarmoriqAfter merge
armoriq-landing/public/install_armorcopilot.shsohttps://armoriq.ai/install_armorcopilot.shserves the new behavior.Test plan
rm -rf ~/.armoriq/armorCopilot ~/.copilot/armorcopilot ~/.armoriq/credentials.jsonnpm uninstall -g @armoriq/sdk-dev @armoriq/sdk(start from scratch)@armoriq/sdk@latestglobally.platform.armoriq.ai/auth/device?...&product=armorcopilot.platform.armoriq.ai(notdev.armoriq.ai).🤖 Generated with Claude Code