') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Address SDK-288 plugin tracing issues by Qard · Pull Request #32 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Address SDK-288 plugin tracing issues - #32

Merged
Stephen Belanger (Qard) merged 7 commits into
mainfrom
t3code/prioritize-sdk-288-issues
Aug 27, 2026
Merged

Address SDK-288 plugin tracing issues#32
Stephen Belanger (Qard) merged 7 commits into
mainfrom
t3code/prioritize-sdk-288-issues

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • migrate legacy tracing routes and make nested OpenCode/Pi routes canonical (SDK-271)
  • fix Claude managed-run hook settings and OpenCode log uploads (SDK-283, SDK-287)
  • document the Claude Cowork tracing/MCP support boundary (SDK-285, SDK-286)
  • add bt trace doctor <agent> and redacted daemon-owned diagnostics (SDK-273)
  • represent saved-profile and invocation-environment authentication explicitly without persisting credentials (SDK-272)
  • isolate environment-authenticated managed runs from a stale shared daemon

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-features --all-targets -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check

Real external-agent tests remain ignored locally because the required agent credentials are unavailable; mock inference, ingest, translator, pipeline, package, and hook-forwarder tests passed.

Linear: SDK-288

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/prioritize-sdk-288-issues branch 2 times, most recently from 2637d02 to 42eab9fCompareAugust 26, 2026 14:30
@Qard
Stephen Belanger (Qard) marked this pull request as draft August 26, 2026 14:35
@Qard
Stephen Belanger (Qard)force-pushed the t3code/prioritize-sdk-288-issues branch from 42eab9f to 88fdbd8CompareAugust 26, 2026 14:37
@Qard
Stephen Belanger (Qard)force-pushed the t3code/prioritize-sdk-288-issues branch from 88fdbd8 to f4c9dc0CompareAugust 26, 2026 15:28
@Qard
Stephen Belanger (Qard) marked this pull request as ready for review August 27, 2026 14:54
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@Qard
Stephen Belanger (Qard) merged commit face71d into mainAug 27, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/prioritize-sdk-288-issues branch August 27, 2026 14:54
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

@Qard@realark