Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add Google Antigravity tracing integration by Qard · Pull Request #18 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add Google Antigravity tracing integration by Qard · Pull Request #18 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', '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('^' + ".*" + ' Add Google Antigravity tracing integration by Qard · Pull Request #18 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark
, '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" + ' Add Google Antigravity tracing integration by Qard · Pull Request #18 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark
, '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('^' + ".*" + ' Add Google Antigravity tracing integration by Qard · Pull Request #18 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark
, '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); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add Google Antigravity tracing integration by Qard · Pull Request #18 · braintrustdata/braintrust-coding-agent-plugins · GitHub
Skip to content

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

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

Add Google Antigravity tracing integration - #18

Merged
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration
Aug 28, 2026
Merged

Add Google Antigravity tracing integration#18
Stephen Belanger (Qard) merged 4 commits into
mainfrom
t3code/assess-antigravity-integration

Conversation

@Qard

@QardStephen Belanger (Qard) commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a thin, fail-open Google Antigravity hook plugin for PreInvocation, PostInvocation, PostToolUse, and Stop
  • add a daemon translator that combines lifecycle hooks with bounded transcript_full.jsonl records to produce session, turn, LLM, and tool spans
  • preserve deterministic replay and correct multi-turn resume behavior when Antigravity resets its process-local invocation counter
  • allow resumed sessions to extend an already-ended root span and route explicit project IDs without registering a project name
  • add Antigravity to the shared bt trace enable and bt trace disable commands introduced by SDK-237 Add tracing enable and disable commands #29
  • publish the native Antigravity plugin to a generated distribution repository and install it through agy plugin install
  • add release automation plus post-deploy install, validation, and uninstall smoke coverage

Why

Antigravity's hook payloads provide model/tool lifecycle boundaries, while its full transcript contains the message and tool content needed for useful traces. Combining both sources makes the core integration feasible without changing Antigravity's permission behavior.

PreToolUse is intentionally omitted because its response participates in authorization. The adapter remains credential-free and fails open; authentication and destination routing stay in the bt host.

Setup behavior

bt trace enable antigravity installs or refreshes the published plugin from braintrustdata/braintrust-antigravity-plugin through Antigravity's native agy plugin install flow and persists the selected non-secret Braintrust route. Antigravity loads the plugin's own hooks.json; setup removes the legacy manually registered root hook entry to prevent duplicate delivery. bt trace setup antigravity remains available through #29's compatibility alias.

bt trace disable antigravity does not require Braintrust auth or destination selection. It uninstalls the managed plugin, removes any legacy Braintrust root hook entry, and removes the Braintrust-owned route file through #29's shared disable path.

Distribution

src/plugins/antigravity/content is the source of truth for the generated braintrustdata/braintrust-antigravity-plugin repository. The Antigravity manifest has no version field, so releases are versioned with monorepo and distribution-repository tags. The shared production and test release workflows now support Antigravity, and the post-deploy smoke workflow installs the GitHub repository using the latest agy, validates the installed plugin and hooks, and uninstalls it cleanly.

The live distribution repository now exists and is intentionally empty; the first production Antigravity release will populate its main branch with the generated plugin.

Live validation

A real Antigravity 1.1.12 session was delivered automatically through the daemon to the existing coding-agents project:

https://www.braintrust.dev/app/Braintrust%20SDKs/p/c77f5203-f2ef-4ed6-8f45-049d082bc5f0/logs?r=47982939-b057-5e9d-a4c1-b5a60425f0c3&s=47982939-b057-5e9d-a4c1-b5a60425f0c3

The resulting trace contains:

  • Turn 1 with an LLM tool request, successful list_dir span, and final LLM response
  • Turn 2 with its own correctly parented LLM span and response
  • a session root whose duration extends through Turn 2

The setup lifecycle was exercised through a locally built real bt host and installed agy CLI in an isolated Antigravity home. Initial enable, repeated enable, JSON output, route persistence, plugin discovery, and shared disable all passed without touching the user's active Antigravity configuration.

The published artifact shape was also installed directly from this PR's GitHub tree with agy 1.1.17, validated as a native hook plugin, listed, and uninstalled successfully.

Validation

  • make test
  • cargo test --manifest-path bt-daemon/Cargo.toml --all-features --locked
  • cargo clippy --manifest-path bt-daemon/Cargo.toml --all-targets --all-features --locked -- -D warnings
  • cargo fmt --manifest-path bt-daemon/Cargo.toml -- --check
  • actionlint on the release and Antigravity smoke workflows
  • DRY_RUN=1 DIST_REPO=braintrustdata/test-coding-agent-dist src/plugins/antigravity/publish.sh
  • DRY_RUN=1 DIST_REPO=braintrustdata/braintrust-antigravity-plugin src/plugins/antigravity/publish.sh against the empty production repository
  • isolated local and GitHub-backed agy plugin install, validate, list, and uninstall lifecycle with agy 1.1.17
  • git diff --check

The all-feature test run passed; four unrelated real-agent tests remained intentionally ignored because they require their respective installed CLIs or built extensions.

Current scope

This establishes the core hooks, translator, persistent setup, and production distribution path. Managed-run injection, historical import/attach, and Windows support remain follow-up work. After this repository change merges, the released bt CLI still needs its bt-daemon revision bumped to expose Antigravity in the shared commands.

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch 3 times, most recently from cf174ab to e6d2c36CompareAugust 18, 2026 13:36
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e6d2c36 to a2ef920CompareAugust 21, 2026 16:09
@Qard
Stephen Belanger (Qard) changed the base branch from main to t3code/add-trace-enable-disableAugust 21, 2026 16:09
Base automatically changed from t3code/add-trace-enable-disable to mainAugust 24, 2026 11:49
@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from a2ef920 to e89bfeeCompareAugust 24, 2026 11:51

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

are we going to make a repo for this?

@Qard
Stephen Belanger (Qard)force-pushed the t3code/assess-antigravity-integration branch from e89bfee to c2083f8CompareAugust 27, 2026 18:10
@Qard
Stephen Belanger (Qard) merged commit 18866d1 into mainAug 28, 2026
20 checks passed
@Qard
Stephen Belanger (Qard) deleted the t3code/assess-antigravity-integration branch August 28, 2026 14:31
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.

3 participants

@Qard@AbhiPrasad@realark