Skip to content

stdiod logout-login conserves client installation id. windows build fix - #82

Merged
dimitriosGX merged 2 commits into
mainfrom
dk-devid
Aug 31, 2026
Merged

stdiod logout-login conserves client installation id. windows build fix#82
dimitriosGX merged 2 commits into
mainfrom
dk-devid

Conversation

@dimitriosGX

@dimitriosGX dimitriosGX commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary by cubic

Logout now keeps the client installation id, so logging out and back in re-binds to the machine's existing device record instead of silently creating a new one that orphans the servers bound to the old device. Also fixes a Windows build warning.

Changes

  • --new-device on sealgate-stdiod login requests a fresh device record for machine hand-offs or wedged records; it's rejected with --api-key, where no device record exists to replace.
  • install-beeper.sh gains --new-device, which implies --relogin, and passes it through to the dry-run preview.
  • The id logout keeps no longer counts as a backend binding, so --backend <other> still overrides a logged-out config.
  • Gated an unused import in proc_tests.rs so the crate builds on Windows.

Written for commit 7cc73ab. Summary will update on new commits.

Review in cubic

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 4 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread crates/stdiod/crates/sealgate-stdiod/src/cli/logout.rs
Comment thread crates/stdiod/crates/sealgate-stdiod/src/cli/login.rs Outdated
Comment thread crates/stdiod/scripts/install-beeper.sh
Comment thread crates/stdiod/scripts/install-beeper.sh
Comment thread crates/stdiod/crates/sealgate-stdiod/src/cli/logout.rs

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="crates/stdiod/crates/sealgate-stdiod/src/config.rs">

<violation number="1" location="crates/stdiod/crates/sealgate-stdiod/src/config.rs:351">
P3: The new doc comment says the function is true when the config "still holds something the saved backend issued," but the function still counts `device_id` and `sealgate_secret_key`, both of which can be user-supplied rather than backend-issued (`device_id`'s own field doc says "or a legacy override"; `sealgate_secret_key` is a per-user secret the caller passes via `--sealgate-secret-key`). The claim is only accurate once those are cleared, as the logout flow happens to do. This is a readability/consistency nitpick with no functional impact in the logout scenario, but the wording overstates which values are excluded.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

}

impl PersistedConfig {
/// True when the config still holds something the saved backend issued.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The new doc comment says the function is true when the config "still holds something the saved backend issued," but the function still counts device_id and sealgate_secret_key, both of which can be user-supplied rather than backend-issued (device_id's own field doc says "or a legacy override"; sealgate_secret_key is a per-user secret the caller passes via --sealgate-secret-key). The claim is only accurate once those are cleared, as the logout flow happens to do. This is a readability/consistency nitpick with no functional impact in the logout scenario, but the wording overstates which values are excluded.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At crates/stdiod/crates/sealgate-stdiod/src/config.rs, line 351:

<comment>The new doc comment says the function is true when the config "still holds something the saved backend issued," but the function still counts `device_id` and `sealgate_secret_key`, both of which can be user-supplied rather than backend-issued (`device_id`'s own field doc says "or a legacy override"; `sealgate_secret_key` is a per-user secret the caller passes via `--sealgate-secret-key`). The claim is only accurate once those are cleared, as the logout flow happens to do. This is a readability/consistency nitpick with no functional impact in the logout scenario, but the wording overstates which values are excluded.</comment>

<file context>
@@ -348,9 +348,13 @@ impl Resolved {
 }
 
 impl PersistedConfig {
+    /// True when the config still holds something the saved backend issued.
+    ///
+    /// Not client_installation_id: logout keeps that, so counting it would make
</file context>

@dimitriosGX
dimitriosGX merged commit 614c3cc into main Aug 31, 2026
5 checks passed
@dimitriosGX
dimitriosGX deleted the dk-devid branch August 31, 2026 16:01
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.

1 participant