Skip to content

feat(agent): track Agent GUI engagement#1081

Draft
chovy-ai wants to merge 1 commit into
mainfrom
agent/agent-gui-engagement-analytics
Draft

feat(agent): track Agent GUI engagement#1081
chovy-ai wants to merge 1 commit into
mainfrom
agent/agent-gui-engagement-analytics

Conversation

@chovy-ai

@chovy-ai chovy-ai commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add true Agent chat panel exposure tracking after 1 second at 50% visibility
  • track first composer focus with pointer, keyboard, or programmatic modality
  • track first privacy-safe content entry per panel visit for text, images, and large text
  • wire the analytics contract into workspace and standalone Agent GUI surfaces
  • document ownership, exposure semantics, deduplication, and privacy constraints

Privacy

No prompt text, file names, file paths, mention URIs, or attachment payloads are collected. Events contain only IDs, enums, booleans, provider/surface metadata, and a per-visit correlation ID.

Validation

  • pnpm check:changed (9/9 lanes)
  • pnpm check:agent-activity-runtime-boundaries
  • pnpm check:renderer-boundaries
  • pnpm lint:ts
  • pnpm --filter @tutti-os/agent-gui typecheck
  • pnpm --filter @tutti-os/desktop typecheck
  • focused Agent GUI analytics/editor tests (65 passed)
  • full Agent GUI suite (2245 passed)
  • full Desktop suite (1316 passed, 2 skipped)
  • pnpm --filter @tutti-os/desktop build
  • pre-push pnpm check:full (16/16 tasks)

Summary by cubic

Adds privacy-safe Agent GUI engagement analytics that track true chat-panel exposure, composer focus modality, and the first user-entered content per visible visit. Events are wired through the desktop analytics pipeline for both workspace and standalone Agent surfaces.

  • New Features
    • Emits agent.chat_panel_exposed, agent.chat_input_focused, and agent.chat_input_content_entered.
    • Exposure requires active node, document visible/focused, and ≥50% in viewport for 1s; previews excluded; interactions buffered and emitted post-exposure with a shared panelVisitId.
    • Focus preserves modality: pointer, keyboard, or programmatic.
    • Content reports only the first user-entered text, image, or large_text per visit; ignores prefill/controlled hydration.
    • Introduces optional engagementAnalytics callbacks in @tutti-os/agent-gui; desktop host constructs reporters and passes them to workspace and standalone_agent surfaces.
    • Privacy: no prompt text, file names/paths, mention URIs, or attachment payloads are sent; only IDs/enums/booleans and surface metadata.

Written for commit 40ba47c. Summary will update on new commits.

Review in cubic

Signed-off-by: chovy <chovy@chovydeMac-mini.local>
Sign up for free to 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