feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(connections): Harmoniqs Cloud is connectable where Pasqal is - #92

Merged
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy
Jul 29, 2026
Merged

feat(connections): Harmoniqs Cloud is connectable where Pasqal is#92
jack-champagne merged 2 commits into
local/amicodefrom
rchari/harmoniqs-cloud-copy

Conversation

@Rchari1

@Rchari1Rchari1 commented Jul 28, 2026

Copy link
Copy Markdown
Member

The reports

  1. "where is our harmoniqs cloud, where can I put an API key in"
  2. "I literally tried to switch to piccolissimo and it did not ask me for an API key"
  3. "it's not a prompt that should ask, it should be integrated in like how pasqal is connected"

Why both happened

Both trace to amicode#200, and neither was a broken wire.

statusTabConnections()filtered company-compute out of the Connections tab and connectionTitle() renamed it "Solver API key", moving the whole connect flow inside the solver capsule's collapsed card. The reasoning was sound in isolation — one credential for one service, not a second product. The effect was not: Pasqal Cloud rendered as a connectable service in the place that lists clouds, and ours did not. So people went looking for Harmoniqs Cloud exactly where Pasqal is, and found nothing.

Report 2 has a different cause and is not a bug: with a valid key on file hpClickAction("connected") returns "activate", so clicking HP switches immediately instead of re-asking. Correct — but the status dot lived inside the collapsed card, so the row had no way to say "you're already connected," and a successful switch was indistinguishable from a no-op. (Verified live: the server reported company-compute → state: "connected", identity raghav-internal.)

Changes

  • statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card beside Pasqal Cloud, using the base-url-token form (Service URL + API key) the tab already supported for non-Pasqal ids — so this un-hides a working flow rather than building a new one. Kept as a function so there's still one obvious place to filter a genuinely internal connection later.
  • connectionTitle() → "Harmoniqs Cloud". In a list whose other entry is "Pasqal Cloud", "Solver API key" read as a settings field rather than our service — and Harmoniqs Cloud is the name every downstream refusal already uses (amico-run's local-launch refusal, the hpc gate).
  • The solver row states its connection stateCONNECTED / CHECK KEY / ADD KEY. Text rather than a bare dot: Kate's idiom is that the dot accompanies words, words survive colour-blindness and a screenshot, and it says what a click will do.
  • HP row tooltips name Harmoniqs Cloud, and the connected one states the consequence: every solve on this solver runs there.

Not changed

The wire id stays company-compute — renaming it would break the credential route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry points (tab and capsule) write the same credential, so connecting in either shows up in both.

Testing

ui: 57 pass. turbo typecheck: 23/23. Strings verified present in the built darwin-arm64 binary, which is vendored and serving the running dev host.

The two filter tests that pinned #200's removal are rewritten to pin the opposite, with the regression spelled out — including that a compute-only list must still render a card rather than hit the empty state.

Reviewer note

This reverses a deliberate #200 decision (Kate's, on presentation grounds). Worth a look from her: the disagreement is only about where the credential is entered, not about the one-credential model, and the capsule affordance is untouched.

@Rchari1Rchari1 changed the title style(capsule): the HP row names Harmoniqs Cloudfeat(connections): Harmoniqs Cloud is connectable where Pasqal isJul 28, 2026
Rchari1and others added 2 commits July 28, 2026 18:51
The solver row said "API key connected" and "Runs in the cloud" — which cloud
was never stated, on the one control where a user commits to a paid service.
Every refusal they can hit downstream now says "Harmoniqs Cloud" (amico-run's
local-launch refusal, the hpc gate), so the control that sends them there should
use the same name.
The connected tooltip also states the consequence — every solve on this solver
runs there — since that is the thing users were guessing about.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reported: "where is our harmoniqs cloud, where can I put an API key in" — and
separately, switching to Piccolissimo + Altissimo appeared to do nothing.
Both trace to amicode#200. It filtered company-compute OUT of the Connections
tab and renamed it "Solver API key", moving the whole connect flow inside the
solver capsule's collapsed card. The reasoning was sound in isolation (one
credential for one service, not a second product), but the result was that
Pasqal Cloud rendered as a connectable service in the place that lists clouds
and OURS did not. Users went looking for it exactly where Pasqal is.
- statusTabConnections() no longer filters. Harmoniqs Cloud renders as a card
beside Pasqal Cloud, with the base-url-token form (Service URL + API key) the
tab already supported for non-Pasqal ids — so this is un-hiding a working
flow, not building a new one. Kept as a function so there is still one obvious
place to filter a genuinely internal connection later.
- connectionTitle() returns "Harmoniqs Cloud". In a list whose other entry is
"Pasqal Cloud", "Solver API key" read as a settings field rather than our
service — and Harmoniqs Cloud is the name every downstream refusal already
uses (amico-run's local-launch refusal, the hpc gate).
- The solver row now states its connection state (CONNECTED / CHECK KEY / ADD
KEY). With a key already on file, clicking HP correctly activates without
re-asking — but the status dot lived inside the collapsed card, so the row had
no way to say so and a successful switch was indistinguishable from a no-op.
Text rather than a bare dot: Kate's idiom is that the dot accompanies words,
and words survive colour-blindness and a screenshot. It also says what a click
will do.
The wire id stays company-compute — renaming it would break the credential
route, the status cache, and CONNECTION_IDS for no user-visible gain. Both entry
points write the same credential, so connecting in either shows up in both.
ui: 57 pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagneforce-pushed the rchari/harmoniqs-cloud-copy branch from 7eab475 to 67bfdf7CompareJuly 28, 2026 22:52
@jack-champagne
jack-champagne merged commit 95e915e into local/amicodeJul 29, 2026
1 of 5 checks passed
Sign up for freeto 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

@Rchari1@jack-champagne