fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e 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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, '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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, '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 \u003e 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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, '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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, '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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, '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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner
, '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

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false) - #116

Merged
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch
Jul 9, 2026
Merged

fix(inspector): don't auto-launch the Run Inspector (default autoOpen → false)#116
kateebonner merged 2 commits into
mainfrom
kate/inspector-no-autolaunch

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

What

Flip the contributed default of amicode.inspector.autoOpen from true to false so the Run Inspector panel no longer auto-launches when a solve starts. It stays fully reachable on demand.

Why

The inspector auto-reveals on every solve today. Every auto-reveal path is already gated behind autoOpenEnabled() (run_inspector.ts), whose code fallback is false, and the surrounding comments state the intent is "off by default so a starting solve never steals focus." But package.json contributed the setting with "default": true — and VS Code returns the contributed default, not the code fallback, whenever the user hasn't set the key. So the setting was effectively on in every install, contradicting the code's stated intent.

This is a one-line behavioral fix (default + description). No src changes: the four gated reveal paths (sse_client.ts amico-tool completion, runs_manager.ts run selection + new-live-run auto-follow, run_inspector.ts warming-up focus) all become no-ops by default, matching the existing comments.

On-demand entry points (unchanged)

The inspector still opens via:

  • the status-bar item, and
  • the Amicode: Open Run Inspector command (amicode.openInspector, unconditional — bypasses the gate).

A follow-up will add an in-chat "Inspect Run" button (opencode side) that routes through the same amicode.openInspector command, which is already allowlisted in the chat bridge.

Users who opted in

Anyone who explicitly set amicode.inspector.autoOpen: true keeps auto-launch — only the untouched default changes.

Verification

⚠️ Build/test gates were not run in the authoring environment (no node/pnpm toolchain available). Please run before merge:

  • pnpm --filter amicode-v2 typecheck
  • pnpm --filter amicode-v2 test

🤖 Generated with Claude Code

The Run Inspector auto-launches on every solve today because the
contributed setting default is `true`, while the code (autoOpenEnabled(),
run_inspector.ts) and its comments assume `false`. VS Code returns the
contributed package.json default, not the code fallback, so the panel
steals focus whenever a solve starts.
Flip the contributed default to false so the inspector no longer
auto-launches; it stays reachable on demand via the status-bar item and
the "Amicode: Open Run Inspector" command (and, once the opencode-side
button lands, the in-chat "Inspect Run" button). No src changes — every
auto-reveal path is already gated on autoOpenEnabled().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner

Copy link
Copy Markdown
ContributorAuthor

Verification gates now run green (toolchain bootstrapped locally):

  • pnpm install → ok (pnpm 9.15.9)
  • pnpm --filter amicode-v2 typecheck (tsc --noEmit) → exit 0
  • pnpm --filter amicode-v2 test435 passed, 3 skipped, 0 failed

Confirms the default flip doesn't affect any code path — every auto-reveal path was already gated on autoOpenEnabled().

…button press
The autoOpen default flip stops the extension from auto-revealing on solve
start, but VS Code independently restores webview panels that were open in a
prior session — so the Run Inspector still reappeared on window load,
regardless of the setting.
Gate the `amicode.runInspector` view behind a `when: amicode.inspectorRevealed`
context key. That key starts false on every window load and is never persisted,
so VS Code has no visible view to restore — the panel can't come back on its
own. Route every reveal path (open command, run picker, demo replay, and the
opted-in autoOpen auto-reveal) through a single revealInspector() that flips
the key on, then focuses. The inspector now materializes only on a deliberate
open and never via VS Code's view-state restoration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kateebonner
kateebonner merged commit 18c256b into mainJul 9, 2026
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.

1 participant

@kateebonner