Repository navigation
Conversation
Browser Automation reports browser_session_started when a session opens, with its surface (headless or desktop) and whether the app (user) or the CLI agents use (agent) opened it. The server reports plugin_enabled when a disabled plugin is turned on, using plugin_installed's rule that only built-in and curated marketplace plugins carry an id, so install-on-request built-ins that are enabled later are counted. Both respect the usage-data opt-out; privacy copy, configuration docs, and the API audit entry list them. Plugin SDK 0.6.42. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The app never opens sessions, so the old user/agent split described a distinction the code could not make. The CLI now reports agent when it runs inside a thread, as agents' shells do, user when it runs outside any thread, and sdk for direct SDK or RPC calls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fa1efd1a5a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!setInstalledPluginEnabled(deps.db, id, enabled)) return undefined; | ||
| if (enabled && before && !before.enabled) { | ||
| deps.telemetry.capture( | ||
| pluginEnabledTelemetryEvent(id, provenanceForRow(before)), |
There was a problem hiding this comment.
Validate telemetry identity before enabling the plugin
When a catalog row has provenance = "catalog" but a null catalogEntryId—a state the database schema permits—provenanceForRow(before) throws here after setInstalledPluginEnabled has already persisted enabled = true. The enable request then fails before loadOne, CLI-skill synchronization, and change notification, leaving the database enabled while the running service still treats the plugin as disabled; a restart can subsequently activate it despite the reported failure. Build and validate the telemetry event before the write, or prevent telemetry construction from interrupting the enable flow.
Useful? React with 👍 / 👎.
Re-enabling the plugin in that test now also reports plugin_enabled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Building the event can throw for a corrupt catalog row, after the enable is already committed. The capture is now guarded and logged at debug, so the plugin still loads and the change is still announced. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…owser-automation-telemetry-thr_gqshddt6w2
…owser-automation-telemetry-thr_gqshddt6w2
…owser-automation-telemetry-thr_gqshddt6w2
…owser-automation-telemetry-thr_gqshddt6w2
|
Superseded by #5439 on main-based native stack #5440. The replacement preserves this implementation and review history, excluding the five Tips RPC classifications reserved for #4991. Final replacement CI is green at 207404a; local event-shape evidence and approved identical Plugin Guide screenshots are linked there. This PR is closed without merging; its branch and history remain. |
Human comments
What was wrong
Plugin usage lacks consistent coverage across tools, commands, RPC actions, and panels.
What changed
feature_usedevent through shared invocation boundaries and explicit panel opens.How you verified
40972c58.654570f7; no unresolved P0/P1 findings. P2 findings remain follow-ups.useRpcactions count once but currently reportunknown/apiinstead ofperson/web; this is a recorded P2 attribution follow-up.Other recorded P2 follow-ups
Screenshots
Before:
41e9b51b0fa4545dbfd8eb5a1a8d6d0b027f79ea· After:40972c5893b7dfdbbf427ea7b5673df9bd345c34· 2× density, same fixture and light theme.Plugin Guide screenshots approved by brsbl for
40972c5893b7dfdbbf427ea7b5673df9bd345c34.BB-Thread: Retention measurement
BB-Thread-ID: thr_gqshddt6w2